Fix issue: node's services won't save when clearing all the services and add default services back to the node. Set core node's services to default services (instead of leaving it empty) when a new node is created.

This commit is contained in:
Huy Pham 2020-04-30 12:48:51 -07:00
parent b7adbd289c
commit 4037da49c2
2 changed files with 14 additions and 9 deletions

View file

@ -815,6 +815,10 @@ class CoreClient:
if NodeUtils.is_custom(node_type, model): if NodeUtils.is_custom(node_type, model):
services = NodeUtils.get_custom_node_services(self.app.guiconfig, model) services = NodeUtils.get_custom_node_services(self.app.guiconfig, model)
node.services[:] = services node.services[:] = services
else:
services = self.default_services.get(model, None)
if services:
node.services[:] = services
logging.info( logging.info(
"add node(%s) to session(%s), coordinates(%s, %s)", "add node(%s) to session(%s), coordinates(%s, %s)",
node.name, node.name,

View file

@ -153,18 +153,19 @@ class NodeServiceDialog(Dialog):
) )
def click_save(self): def click_save(self):
# if node is custom type or current services are not the default services then core_node = self.canvas_node.core_node
# set core node services and add node to modified services node set # custom type node or CORE node with custom services
if ( if (
self.canvas_node.core_node.model not in self.app.core.default_services core_node.model not in self.app.core.default_services
or self.current_services or self.current_services != self.app.core.default_services[core_node.model]
!= self.app.core.default_services[self.canvas_node.core_node.model]
): ):
self.canvas_node.core_node.services[:] = self.current_services core_node.services[:] = self.current_services
self.app.core.modified_service_nodes.add(self.canvas_node.core_node.id) self.app.core.modified_service_nodes.add(core_node.id)
# custom services CORE node but modified back to having default services
# or just CORE nodes that don't get any change
else: else:
if len(self.canvas_node.core_node.services) > 0: core_node.services[:] = self.current_services
self.canvas_node.core_node.services[:] = [] self.app.core.modified_service_nodes.discard(core_node.id)
self.destroy() self.destroy()
def click_cancel(self): def click_cancel(self):