mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-12 06:28:59 +08:00
Fix occasional crash when entering profiles section.
Make QualityManagementModel into a singleton. part of CURA-6600
This commit is contained in:
parent
c333e980dc
commit
c71660cc11
@ -221,8 +221,9 @@ class CuraApplication(QtApplication):
|
|||||||
self._cura_scene_controller = None
|
self._cura_scene_controller = None
|
||||||
self._machine_error_checker = None
|
self._machine_error_checker = None
|
||||||
|
|
||||||
self._machine_settings_manager = MachineSettingsManager(self, parent = self)
|
self._machine_settings_manager = MachineSettingsManager(self, parent=self)
|
||||||
self._material_management_model = MaterialManagementModel()
|
self._material_management_model = MaterialManagementModel()
|
||||||
|
self._quality_management_model = None
|
||||||
|
|
||||||
self._discovered_printer_model = DiscoveredPrintersModel(self, parent = self)
|
self._discovered_printer_model = DiscoveredPrintersModel(self, parent = self)
|
||||||
self._first_start_machine_actions_model = FirstStartMachineActionsModel(self, parent = self)
|
self._first_start_machine_actions_model = FirstStartMachineActionsModel(self, parent = self)
|
||||||
@ -981,6 +982,12 @@ class CuraApplication(QtApplication):
|
|||||||
def getMaterialManagementModel(self):
|
def getMaterialManagementModel(self):
|
||||||
return self._material_management_model
|
return self._material_management_model
|
||||||
|
|
||||||
|
@pyqtSlot(result=QObject)
|
||||||
|
def getQualityManagementModel(self):
|
||||||
|
if not self._quality_management_model:
|
||||||
|
self._quality_management_model = QualityManagementModel()
|
||||||
|
return self._quality_management_model
|
||||||
|
|
||||||
def getSimpleModeSettingsManager(self, *args):
|
def getSimpleModeSettingsManager(self, *args):
|
||||||
if self._simple_mode_settings_manager is None:
|
if self._simple_mode_settings_manager is None:
|
||||||
self._simple_mode_settings_manager = SimpleModeSettingsManager()
|
self._simple_mode_settings_manager = SimpleModeSettingsManager()
|
||||||
@ -1059,7 +1066,7 @@ class CuraApplication(QtApplication):
|
|||||||
qmlRegisterType(FavoriteMaterialsModel, "Cura", 1, 0, "FavoriteMaterialsModel")
|
qmlRegisterType(FavoriteMaterialsModel, "Cura", 1, 0, "FavoriteMaterialsModel")
|
||||||
qmlRegisterType(GenericMaterialsModel, "Cura", 1, 0, "GenericMaterialsModel")
|
qmlRegisterType(GenericMaterialsModel, "Cura", 1, 0, "GenericMaterialsModel")
|
||||||
qmlRegisterType(MaterialBrandsModel, "Cura", 1, 0, "MaterialBrandsModel")
|
qmlRegisterType(MaterialBrandsModel, "Cura", 1, 0, "MaterialBrandsModel")
|
||||||
qmlRegisterType(QualityManagementModel, "Cura", 1, 0, "QualityManagementModel")
|
qmlRegisterSingletonType(QualityManagementModel, "Cura", 1, 0, "QualityManagementModel", self.getQualityManagementModel)
|
||||||
qmlRegisterSingletonType(MaterialManagementModel, "Cura", 1, 5, "MaterialManagementModel", self.getMaterialManagementModel)
|
qmlRegisterSingletonType(MaterialManagementModel, "Cura", 1, 5, "MaterialManagementModel", self.getMaterialManagementModel)
|
||||||
|
|
||||||
qmlRegisterType(DiscoveredPrintersModel, "Cura", 1, 0, "DiscoveredPrintersModel")
|
qmlRegisterType(DiscoveredPrintersModel, "Cura", 1, 0, "DiscoveredPrintersModel")
|
||||||
|
@ -17,13 +17,10 @@ Item
|
|||||||
property QtObject qualityManager: CuraApplication.getQualityManager()
|
property QtObject qualityManager: CuraApplication.getQualityManager()
|
||||||
property var resetEnabled: false // Keep PreferencesDialog happy
|
property var resetEnabled: false // Keep PreferencesDialog happy
|
||||||
property var extrudersModel: CuraApplication.getExtrudersModel()
|
property var extrudersModel: CuraApplication.getExtrudersModel()
|
||||||
|
property var qualityManagementModel: CuraApplication.getQualityManagementModel()
|
||||||
|
|
||||||
UM.I18nCatalog { id: catalog; name: "cura"; }
|
UM.I18nCatalog { id: catalog; name: "cura"; }
|
||||||
|
|
||||||
Cura.QualityManagementModel {
|
|
||||||
id: qualitiesModel
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: titleLabel
|
id: titleLabel
|
||||||
anchors {
|
anchors {
|
||||||
@ -40,7 +37,7 @@ Item
|
|||||||
|
|
||||||
property var currentItem: {
|
property var currentItem: {
|
||||||
var current_index = qualityListView.currentIndex;
|
var current_index = qualityListView.currentIndex;
|
||||||
return (current_index == -1) ? null : qualitiesModel.getItem(current_index);
|
return (current_index == -1) ? null : base.qualityManagementModel.getItem(current_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
property var currentItemName: hasCurrentItem ? base.currentItem.name : ""
|
property var currentItemName: hasCurrentItem ? base.currentItem.name : ""
|
||||||
@ -195,7 +192,7 @@ Item
|
|||||||
// This connection makes sure that we will switch to the correct quality after the model gets updated
|
// This connection makes sure that we will switch to the correct quality after the model gets updated
|
||||||
Connections
|
Connections
|
||||||
{
|
{
|
||||||
target: qualitiesModel
|
target: base.qualityManagementModel
|
||||||
onItemsChanged:
|
onItemsChanged:
|
||||||
{
|
{
|
||||||
var toSelectItemName = base.currentItem == null ? "" : base.currentItem.name;
|
var toSelectItemName = base.currentItem == null ? "" : base.currentItem.name;
|
||||||
@ -208,9 +205,9 @@ Item
|
|||||||
if (toSelectItemName != "")
|
if (toSelectItemName != "")
|
||||||
{
|
{
|
||||||
// Select the required quality name if given
|
// Select the required quality name if given
|
||||||
for (var idx = 0; idx < qualitiesModel.count; ++idx)
|
for (var idx = 0; idx < base.qualityManagementModel.count; ++idx)
|
||||||
{
|
{
|
||||||
var item = qualitiesModel.getItem(idx);
|
var item = base.qualityManagementModel.getItem(idx);
|
||||||
if (item.name == toSelectItemName)
|
if (item.name == toSelectItemName)
|
||||||
{
|
{
|
||||||
// Switch to the newly created profile if needed
|
// Switch to the newly created profile if needed
|
||||||
@ -282,7 +279,7 @@ Item
|
|||||||
id: importDialog
|
id: importDialog
|
||||||
title: catalog.i18nc("@title:window", "Import Profile")
|
title: catalog.i18nc("@title:window", "Import Profile")
|
||||||
selectExisting: true
|
selectExisting: true
|
||||||
nameFilters: qualitiesModel.getFileNameFilters("profile_reader")
|
nameFilters: base.qualityManagementModel.getFileNameFilters("profile_reader")
|
||||||
folder: CuraApplication.getDefaultPath("dialog_profile_path")
|
folder: CuraApplication.getDefaultPath("dialog_profile_path")
|
||||||
onAccepted:
|
onAccepted:
|
||||||
{
|
{
|
||||||
@ -308,7 +305,7 @@ Item
|
|||||||
id: exportDialog
|
id: exportDialog
|
||||||
title: catalog.i18nc("@title:window", "Export Profile")
|
title: catalog.i18nc("@title:window", "Export Profile")
|
||||||
selectExisting: false
|
selectExisting: false
|
||||||
nameFilters: qualitiesModel.getFileNameFilters("profile_writer")
|
nameFilters: base.qualityManagementModel.getFileNameFilters("profile_writer")
|
||||||
folder: CuraApplication.getDefaultPath("dialog_profile_path")
|
folder: CuraApplication.getDefaultPath("dialog_profile_path")
|
||||||
onAccepted:
|
onAccepted:
|
||||||
{
|
{
|
||||||
@ -390,16 +387,16 @@ Item
|
|||||||
{
|
{
|
||||||
id: qualityListView
|
id: qualityListView
|
||||||
|
|
||||||
model: qualitiesModel
|
model: base.qualityManagementModel
|
||||||
|
|
||||||
Component.onCompleted:
|
Component.onCompleted:
|
||||||
{
|
{
|
||||||
var selectedItemName = Cura.MachineManager.activeQualityOrQualityChangesName;
|
var selectedItemName = Cura.MachineManager.activeQualityOrQualityChangesName;
|
||||||
|
|
||||||
// Select the required quality name if given
|
// Select the required quality name if given
|
||||||
for (var idx = 0; idx < qualitiesModel.count; idx++)
|
for (var idx = 0; idx < base.qualityManagementModel.count; idx++)
|
||||||
{
|
{
|
||||||
var item = qualitiesModel.getItem(idx);
|
var item = base.qualityManagementModel.getItem(idx);
|
||||||
if (item.name == selectedItemName)
|
if (item.name == selectedItemName)
|
||||||
{
|
{
|
||||||
currentIndex = idx;
|
currentIndex = idx;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user