fix right click service on custom nodes with empty services, load services to custom node when drawn on canvas, show current services for custom node's service dialog

This commit is contained in:
Huy Pham 2020-01-27 13:20:31 -08:00
parent b3463f1fb7
commit 09cc65646f
3 changed files with 23 additions and 3 deletions

View file

@ -7,6 +7,7 @@ from typing import TYPE_CHECKING, Any, Set
from core.gui.dialogs.dialog import Dialog
from core.gui.dialogs.serviceconfig import ServiceConfigDialog
from core.gui.nodeutils import NodeUtils
from core.gui.themes import FRAME_PAD, PADX, PADY
from core.gui.widgets import CheckboxList, ListboxScroll
@ -35,10 +36,14 @@ class NodeServiceDialog(Dialog):
services = canvas_node.core_node.services
model = canvas_node.core_node.model
if len(services) == 0:
services = set(self.app.core.default_services[model])
if not NodeUtils.is_custom(canvas_node.core_node.model):
services = set(self.app.core.default_services[model])
else:
services = set(
NodeUtils.get_custom_node_services(self.app.guiconfig, model)
)
else:
services = set(services)
self.current_services = services
self.draw()
@ -137,7 +142,8 @@ class NodeServiceDialog(Dialog):
def click_save(self):
if (
self.current_services
self.canvas_node.core_node.model not in self.app.core.default_services
or self.current_services
!= self.app.core.default_services[self.canvas_node.core_node.model]
):
self.canvas_node.core_node.services[:] = self.current_services