From 1c81174baf0dc3403783a33b2de566ff825c54a6 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 2 Sep 2019 16:47:35 +0200 Subject: [PATCH] Fix crashing upon creating QualityManagementModel and MaterialManagementModel The C++ object should be kept alive in QML. Contributes to issue CURA-6600. --- cura/CuraApplication.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index b704fb35b2..f42f8b2798 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -221,8 +221,8 @@ class CuraApplication(QtApplication): self._cura_scene_controller = None self._machine_error_checker = None - self._machine_settings_manager = MachineSettingsManager(self, parent=self) - self._material_management_model = MaterialManagementModel() + self._machine_settings_manager = MachineSettingsManager(self, parent = self) + self._material_management_model = None self._quality_management_model = None self._discovered_printer_model = DiscoveredPrintersModel(self, parent = self) @@ -980,12 +980,14 @@ class CuraApplication(QtApplication): @pyqtSlot(result = QObject) def getMaterialManagementModel(self): + if not self._material_management_model: + self._material_management_model = MaterialManagementModel(parent = self) return self._material_management_model - @pyqtSlot(result=QObject) + @pyqtSlot(result = QObject) def getQualityManagementModel(self): if not self._quality_management_model: - self._quality_management_model = QualityManagementModel() + self._quality_management_model = QualityManagementModel(parent = self) return self._quality_management_model def getSimpleModeSettingsManager(self, *args):