From bd714f947a241243813fd71c6f30414c7a3d6f0e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 9 Aug 2019 13:40:11 +0200 Subject: [PATCH] Register container tree to be built once all metadata is in So if we ever change the order of initialisation this stays working. Contributes to issue CURA-6600. --- cura/CuraApplication.py | 5 ++--- cura/Machines/ContainerTree.py | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index e764e10fec..5af33b82c9 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -511,6 +511,8 @@ class CuraApplication(QtApplication): self.showSplashMessage(self._i18n_catalog.i18nc("@info:progress", "Loading machines...")) + self._container_registry.allMetadataLoaded.connect(ContainerRegistry.getInstance) + with self._container_registry.lockFile(): self._container_registry.loadAllMetadata() @@ -732,9 +734,6 @@ class CuraApplication(QtApplication): def run(self): super().run() - Logger.log("i", "Building container tree.") - ContainerTree.getInstance() - Logger.log("i", "Initializing machine manager") self._machine_manager = MachineManager(self, parent = self) diff --git a/cura/Machines/ContainerTree.py b/cura/Machines/ContainerTree.py index 4aca86c393..129bcba5e8 100644 --- a/cura/Machines/ContainerTree.py +++ b/cura/Machines/ContainerTree.py @@ -1,6 +1,7 @@ # Copyright (c) 2019 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from UM.Logger import Logger from UM.Settings.ContainerRegistry import ContainerRegistry # To listen to containers being added. from UM.Settings.DefinitionContainer import DefinitionContainer from UM.Settings.Interfaces import ContainerInterface @@ -30,6 +31,7 @@ class ContainerTree: ## Builds the initial container tree. def _loadAll(self): + Logger.log("i", "Building container tree.") all_stacks = ContainerRegistry.getInstance().findContainerStacks() for stack in all_stacks: definition_id = stack.definition.getId()