mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-16 19:28:07 -06:00
Change SettingVisibilityPresetsModel to non-singleton
CURA-5088
This commit is contained in:
parent
1f2602a2f4
commit
83175b00c2
5 changed files with 34 additions and 40 deletions
|
@ -65,6 +65,8 @@ from cura.Machines.Models.QualityManagementModel import QualityManagementModel
|
||||||
from cura.Machines.Models.QualitySettingsModel import QualitySettingsModel
|
from cura.Machines.Models.QualitySettingsModel import QualitySettingsModel
|
||||||
from cura.Machines.Models.MachineManagementModel import MachineManagementModel
|
from cura.Machines.Models.MachineManagementModel import MachineManagementModel
|
||||||
|
|
||||||
|
from cura.Machines.Models.SettingVisibilityPresetsModel import SettingVisibilityPresetsModel
|
||||||
|
|
||||||
from cura.Machines.MachineErrorChecker import MachineErrorChecker
|
from cura.Machines.MachineErrorChecker import MachineErrorChecker
|
||||||
|
|
||||||
from cura.Settings.SettingInheritanceManager import SettingInheritanceManager
|
from cura.Settings.SettingInheritanceManager import SettingInheritanceManager
|
||||||
|
@ -88,7 +90,6 @@ from cura.Settings.UserChangesModel import UserChangesModel
|
||||||
from cura.Settings.ExtrudersModel import ExtrudersModel
|
from cura.Settings.ExtrudersModel import ExtrudersModel
|
||||||
from cura.Settings.MaterialSettingsVisibilityHandler import MaterialSettingsVisibilityHandler
|
from cura.Settings.MaterialSettingsVisibilityHandler import MaterialSettingsVisibilityHandler
|
||||||
from cura.Settings.ContainerManager import ContainerManager
|
from cura.Settings.ContainerManager import ContainerManager
|
||||||
from cura.Machines.Models.SettingVisibilityPresetsModel import SettingVisibilityPresetsModel
|
|
||||||
|
|
||||||
from cura.ObjectsModel import ObjectsModel
|
from cura.ObjectsModel import ObjectsModel
|
||||||
|
|
||||||
|
@ -222,6 +223,7 @@ class CuraApplication(QtApplication):
|
||||||
self._object_manager = None
|
self._object_manager = None
|
||||||
self._build_plate_model = None
|
self._build_plate_model = None
|
||||||
self._multi_build_plate_model = None
|
self._multi_build_plate_model = None
|
||||||
|
self._setting_visibility_presets_model = None
|
||||||
self._setting_inheritance_manager = None
|
self._setting_inheritance_manager = None
|
||||||
self._simple_mode_settings_manager = None
|
self._simple_mode_settings_manager = None
|
||||||
self._cura_scene_controller = None
|
self._cura_scene_controller = None
|
||||||
|
@ -377,10 +379,6 @@ class CuraApplication(QtApplication):
|
||||||
|
|
||||||
preferences.setDefault("local_file/last_used_type", "text/x-gcode")
|
preferences.setDefault("local_file/last_used_type", "text/x-gcode")
|
||||||
|
|
||||||
default_visibility_profile = SettingVisibilityPresetsModel.getInstance().getItem(0)
|
|
||||||
|
|
||||||
preferences.setDefault("general/visible_settings", ";".join(default_visibility_profile["settings"]))
|
|
||||||
|
|
||||||
self.applicationShuttingDown.connect(self.saveSettings)
|
self.applicationShuttingDown.connect(self.saveSettings)
|
||||||
self.engineCreatedSignal.connect(self._onEngineCreated)
|
self.engineCreatedSignal.connect(self._onEngineCreated)
|
||||||
|
|
||||||
|
@ -683,6 +681,11 @@ class CuraApplication(QtApplication):
|
||||||
self._print_information = PrintInformation.PrintInformation()
|
self._print_information = PrintInformation.PrintInformation()
|
||||||
self._cura_actions = CuraActions.CuraActions(self)
|
self._cura_actions = CuraActions.CuraActions(self)
|
||||||
|
|
||||||
|
# Initialize setting visibility presets model
|
||||||
|
self._setting_visibility_presets_model = SettingVisibilityPresetsModel(self)
|
||||||
|
default_visibility_profile = self._setting_visibility_presets_model.getItem(0)
|
||||||
|
Preferences.getInstance().setDefault("general/visible_settings", ";".join(default_visibility_profile["settings"]))
|
||||||
|
|
||||||
# Detect in which mode to run and execute that mode
|
# Detect in which mode to run and execute that mode
|
||||||
if self.getCommandLineOption("headless", False):
|
if self.getCommandLineOption("headless", False):
|
||||||
self.runWithoutGUI()
|
self.runWithoutGUI()
|
||||||
|
@ -765,6 +768,10 @@ class CuraApplication(QtApplication):
|
||||||
def hasGui(self):
|
def hasGui(self):
|
||||||
return self._use_gui
|
return self._use_gui
|
||||||
|
|
||||||
|
@pyqtSlot(result = QObject)
|
||||||
|
def getSettingVisibilityPresetsModel(self, *args) -> SettingVisibilityPresetsModel:
|
||||||
|
return self._setting_visibility_presets_model
|
||||||
|
|
||||||
def getMachineErrorChecker(self, *args) -> MachineErrorChecker:
|
def getMachineErrorChecker(self, *args) -> MachineErrorChecker:
|
||||||
return self._machine_error_checker
|
return self._machine_error_checker
|
||||||
|
|
||||||
|
@ -891,11 +898,11 @@ class CuraApplication(QtApplication):
|
||||||
qmlRegisterType(NozzleModel, "Cura", 1, 0, "NozzleModel")
|
qmlRegisterType(NozzleModel, "Cura", 1, 0, "NozzleModel")
|
||||||
|
|
||||||
qmlRegisterType(MaterialSettingsVisibilityHandler, "Cura", 1, 0, "MaterialSettingsVisibilityHandler")
|
qmlRegisterType(MaterialSettingsVisibilityHandler, "Cura", 1, 0, "MaterialSettingsVisibilityHandler")
|
||||||
|
qmlRegisterType(SettingVisibilityPresetsModel, "Cura", 1, 0, "SettingVisibilityPresetsModel")
|
||||||
qmlRegisterType(QualitySettingsModel, "Cura", 1, 0, "QualitySettingsModel")
|
qmlRegisterType(QualitySettingsModel, "Cura", 1, 0, "QualitySettingsModel")
|
||||||
qmlRegisterType(MachineNameValidator, "Cura", 1, 0, "MachineNameValidator")
|
qmlRegisterType(MachineNameValidator, "Cura", 1, 0, "MachineNameValidator")
|
||||||
qmlRegisterType(UserChangesModel, "Cura", 1, 0, "UserChangesModel")
|
qmlRegisterType(UserChangesModel, "Cura", 1, 0, "UserChangesModel")
|
||||||
qmlRegisterSingletonType(ContainerManager, "Cura", 1, 0, "ContainerManager", ContainerManager.createContainerManager)
|
qmlRegisterSingletonType(ContainerManager, "Cura", 1, 0, "ContainerManager", ContainerManager.createContainerManager)
|
||||||
qmlRegisterSingletonType(SettingVisibilityPresetsModel, "Cura", 1, 0, "SettingVisibilityPresetsModel", SettingVisibilityPresetsModel.createSettingVisibilityPresetsModel)
|
|
||||||
|
|
||||||
# As of Qt5.7, it is necessary to get rid of any ".." in the path for the singleton to work.
|
# As of Qt5.7, it is necessary to get rid of any ".." in the path for the singleton to work.
|
||||||
actions_url = QUrl.fromLocalFile(os.path.abspath(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles, "Actions.qml")))
|
actions_url = QUrl.fromLocalFile(os.path.abspath(Resources.getPath(CuraApplication.ResourceTypes.QmlFiles, "Actions.qml")))
|
||||||
|
|
|
@ -118,19 +118,3 @@ class SettingVisibilityPresetsModel(ListModel):
|
||||||
# Copy current visibility set to custom visibility set preference so it can be restored later
|
# Copy current visibility set to custom visibility set preference so it can be restored later
|
||||||
visibility_string = self._preferences.getValue("general/visible_settings")
|
visibility_string = self._preferences.getValue("general/visible_settings")
|
||||||
self._preferences.setValue("cura/custom_visible_settings", visibility_string)
|
self._preferences.setValue("cura/custom_visible_settings", visibility_string)
|
||||||
|
|
||||||
|
|
||||||
# Factory function, used by QML
|
|
||||||
@staticmethod
|
|
||||||
def createSettingVisibilityPresetsModel(engine, js_engine):
|
|
||||||
return SettingVisibilityPresetsModel.getInstance()
|
|
||||||
|
|
||||||
## Get the singleton instance for this class.
|
|
||||||
@classmethod
|
|
||||||
def getInstance(cls) -> "SettingVisibilityPresetsModel":
|
|
||||||
# Note: Explicit use of class name to prevent issues with inheritance.
|
|
||||||
if not SettingVisibilityPresetsModel.__instance:
|
|
||||||
SettingVisibilityPresetsModel.__instance = cls()
|
|
||||||
return SettingVisibilityPresetsModel.__instance
|
|
||||||
|
|
||||||
__instance = None # type: "SettingVisibilityPresetsModel"
|
|
|
@ -12,6 +12,7 @@ Menu
|
||||||
id: menu
|
id: menu
|
||||||
title: catalog.i18nc("@action:inmenu", "Visible Settings")
|
title: catalog.i18nc("@action:inmenu", "Visible Settings")
|
||||||
|
|
||||||
|
property QtObject settingVisibilityPresetsModel: CuraApplication.getSettingVisibilityPresetsModel()
|
||||||
property bool showingSearchResults
|
property bool showingSearchResults
|
||||||
property bool showingAllSettings
|
property bool showingAllSettings
|
||||||
|
|
||||||
|
@ -22,11 +23,11 @@ Menu
|
||||||
{
|
{
|
||||||
text: catalog.i18nc("@action:inmenu", "Custom selection")
|
text: catalog.i18nc("@action:inmenu", "Custom selection")
|
||||||
checkable: true
|
checkable: true
|
||||||
checked: !showingSearchResults && !showingAllSettings && Cura.SettingVisibilityPresetsModel.activePreset == "custom"
|
checked: !showingSearchResults && !showingAllSettings && settingVisibilityPresetsModel.activePreset == "custom"
|
||||||
exclusiveGroup: group
|
exclusiveGroup: group
|
||||||
onTriggered:
|
onTriggered:
|
||||||
{
|
{
|
||||||
Cura.SettingVisibilityPresetsModel.setActivePreset("custom");
|
settingVisibilityPresetsModel.setActivePreset("custom");
|
||||||
// Restore custom set from preference
|
// Restore custom set from preference
|
||||||
UM.Preferences.setValue("general/visible_settings", UM.Preferences.getValue("cura/custom_visible_settings"));
|
UM.Preferences.setValue("general/visible_settings", UM.Preferences.getValue("cura/custom_visible_settings"));
|
||||||
showSettingVisibilityProfile();
|
showSettingVisibilityProfile();
|
||||||
|
@ -36,17 +37,17 @@ Menu
|
||||||
|
|
||||||
Instantiator
|
Instantiator
|
||||||
{
|
{
|
||||||
model: Cura.SettingVisibilityPresetsModel
|
model: settingVisibilityPresetsModel
|
||||||
|
|
||||||
MenuItem
|
MenuItem
|
||||||
{
|
{
|
||||||
text: model.name
|
text: model.name
|
||||||
checkable: true
|
checkable: true
|
||||||
checked: model.id == Cura.SettingVisibilityPresetsModel.activePreset
|
checked: model.id == settingVisibilityPresetsModel.activePreset
|
||||||
exclusiveGroup: group
|
exclusiveGroup: group
|
||||||
onTriggered:
|
onTriggered:
|
||||||
{
|
{
|
||||||
Cura.SettingVisibilityPresetsModel.setActivePreset(model.id);
|
settingVisibilityPresetsModel.setActivePreset(model.id);
|
||||||
|
|
||||||
UM.Preferences.setValue("general/visible_settings", model.settings.join(";"));
|
UM.Preferences.setValue("general/visible_settings", model.settings.join(";"));
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,8 @@ UM.PreferencesPage
|
||||||
{
|
{
|
||||||
title: catalog.i18nc("@title:tab", "Setting Visibility");
|
title: catalog.i18nc("@title:tab", "Setting Visibility");
|
||||||
|
|
||||||
|
property QtObject settingVisibilityPresetsModel: CuraApplication.getSettingVisibilityPresetsModel()
|
||||||
|
|
||||||
property int scrollToIndex: 0
|
property int scrollToIndex: 0
|
||||||
|
|
||||||
signal scrollToSection( string key )
|
signal scrollToSection( string key )
|
||||||
|
@ -132,10 +134,9 @@ UM.PreferencesPage
|
||||||
{
|
{
|
||||||
visibilityPresetsModel.append({text: catalog.i18nc("@action:inmenu", "Custom selection"), id: "custom"});
|
visibilityPresetsModel.append({text: catalog.i18nc("@action:inmenu", "Custom selection"), id: "custom"});
|
||||||
|
|
||||||
var presets = Cura.SettingVisibilityPresetsModel;
|
for(var i = 0; i < settingVisibilityPresetsModel.rowCount(); i++)
|
||||||
for(var i = 0; i < presets.rowCount(); i++)
|
|
||||||
{
|
{
|
||||||
visibilityPresetsModel.append({text: presets.getItem(i)["name"], id: presets.getItem(i)["id"]});
|
visibilityPresetsModel.append({text: settingVisibilityPresetsModel.getItem(i)["name"], id: settingVisibilityPresetsModel.getItem(i)["id"]});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -143,7 +144,7 @@ UM.PreferencesPage
|
||||||
currentIndex:
|
currentIndex:
|
||||||
{
|
{
|
||||||
// Load previously selected preset.
|
// Load previously selected preset.
|
||||||
var index = Cura.SettingVisibilityPresetsModel.find("id", Cura.SettingVisibilityPresetsModel.activePreset);
|
var index = settingVisibilityPresetsModel.find("id", settingVisibilityPresetsModel.activePreset);
|
||||||
if(index == -1)
|
if(index == -1)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -156,12 +157,12 @@ UM.PreferencesPage
|
||||||
{
|
{
|
||||||
base.inhibitSwitchToCustom = true;
|
base.inhibitSwitchToCustom = true;
|
||||||
var preset_id = visibilityPresetsModel.get(index).id;
|
var preset_id = visibilityPresetsModel.get(index).id;
|
||||||
Cura.SettingVisibilityPresetsModel.setActivePreset(preset_id);
|
settingVisibilityPresetsModel.setActivePreset(preset_id);
|
||||||
|
|
||||||
UM.Preferences.setValue("cura/active_setting_visibility_preset", preset_id);
|
UM.Preferences.setValue("cura/active_setting_visibility_preset", preset_id);
|
||||||
if (preset_id != "custom")
|
if (preset_id != "custom")
|
||||||
{
|
{
|
||||||
UM.Preferences.setValue("general/visible_settings", Cura.SettingVisibilityPresetsModel.getItem(index - 1).settings.join(";"));
|
UM.Preferences.setValue("general/visible_settings", settingVisibilityPresetsModel.getItem(index - 1).settings.join(";"));
|
||||||
// "Custom selection" entry is added in front, so index is off by 1
|
// "Custom selection" entry is added in front, so index is off by 1
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -203,9 +204,9 @@ UM.PreferencesPage
|
||||||
{
|
{
|
||||||
onVisibilityChanged:
|
onVisibilityChanged:
|
||||||
{
|
{
|
||||||
if(Cura.SettingVisibilityPresetsModel.activePreset != "" && !base.inhibitSwitchToCustom)
|
if(settingVisibilityPresetsModel.activePreset != "" && !base.inhibitSwitchToCustom)
|
||||||
{
|
{
|
||||||
Cura.SettingVisibilityPresetsModel.setActivePreset("custom");
|
settingVisibilityPresetsModel.setActivePreset("custom");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ Item
|
||||||
{
|
{
|
||||||
id: base;
|
id: base;
|
||||||
|
|
||||||
|
property QtObject settingVisibilityPresetsModel: CuraApplication.getSettingVisibilityPresetsModel()
|
||||||
property Action configureSettings
|
property Action configureSettings
|
||||||
property bool findingSettings
|
property bool findingSettings
|
||||||
property bool showingAllSettings
|
property bool showingAllSettings
|
||||||
|
@ -562,9 +563,9 @@ Item
|
||||||
{
|
{
|
||||||
definitionsModel.hide(contextMenu.key);
|
definitionsModel.hide(contextMenu.key);
|
||||||
// visible settings have changed, so we're no longer showing a preset
|
// visible settings have changed, so we're no longer showing a preset
|
||||||
if (Cura.SettingVisibilityPresetsModel.activePreset != "" && !showingAllSettings)
|
if (settingVisibilityPresetsModel.activePreset != "" && !showingAllSettings)
|
||||||
{
|
{
|
||||||
Cura.SettingVisibilityPresetsModel.setActivePreset("custom");
|
settingVisibilityPresetsModel.setActivePreset("custom");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -594,16 +595,16 @@ Item
|
||||||
definitionsModel.show(contextMenu.key);
|
definitionsModel.show(contextMenu.key);
|
||||||
}
|
}
|
||||||
// visible settings have changed, so we're no longer showing a preset
|
// visible settings have changed, so we're no longer showing a preset
|
||||||
if (Cura.SettingVisibilityPresetsModel.activePreset != "" && !showingAllSettings)
|
if (settingVisibilityPresetsModel.activePreset != "" && !showingAllSettings)
|
||||||
{
|
{
|
||||||
Cura.SettingVisibilityPresetsModel.setActivePreset("custom");
|
settingVisibilityPresetsModel.setActivePreset("custom");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MenuItem
|
MenuItem
|
||||||
{
|
{
|
||||||
//: Settings context menu action
|
//: Settings context menu action
|
||||||
text: catalog.i18nc("@action:menu", "Configure setting visiblity...");
|
text: catalog.i18nc("@action:menu", "Configure setting visibility...");
|
||||||
|
|
||||||
onTriggered: Cura.Actions.configureSettingVisibility.trigger(contextMenu);
|
onTriggered: Cura.Actions.configureSettingVisibility.trigger(contextMenu);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue