diff --git a/cura/Machines/Models/SettingVisibilityPresetsModel.py b/cura/Machines/Models/SettingVisibilityPresetsModel.py index baa8e3ed29..6b5766c127 100644 --- a/cura/Machines/Models/SettingVisibilityPresetsModel.py +++ b/cura/Machines/Models/SettingVisibilityPresetsModel.py @@ -77,6 +77,10 @@ class SettingVisibilityPresetsModel(QObject): items.append(setting_visibility_preset) + # Add the "all" visibility: + all_setting_visibility_preset = SettingVisibilityPreset(preset_id = "all", name = "All", weight = 9001) + all_setting_visibility_preset.setSettings(list(CuraApplication.getInstance().getMachineManager().getAllSettingKeys())) + items.append(all_setting_visibility_preset) # Sort them on weight (and if that fails, use ID) items.sort(key = lambda k: (int(k.weight), k.presetId)) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 876f10ebf8..2a9b2e8f83 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -4,12 +4,11 @@ import time import re import unicodedata -from typing import Any, List, Dict, TYPE_CHECKING, Optional, cast +from typing import Any, List, Dict, TYPE_CHECKING, Optional, cast, Set from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal, QTimer from UM.ConfigurationErrorMessage import ConfigurationErrorMessage -from UM.Decorators import deprecated from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.Interfaces import ContainerInterface @@ -212,10 +211,13 @@ class MachineManager(QObject): @pyqtProperty(int, constant=True) def totalNumberOfSettings(self) -> int: - general_definition_containers = CuraContainerRegistry.getInstance().findDefinitionContainers(id = "fdmprinter") + return len(self.getAllSettingKeys()) + + def getAllSettingKeys(self) -> Set[str]: + general_definition_containers = CuraContainerRegistry.getInstance().findDefinitionContainers(id="fdmprinter") if not general_definition_containers: - return 0 - return len(general_definition_containers[0].getAllKeys()) + return set() + return general_definition_containers[0].getAllKeys() ## Triggered when the global container stack is changed in CuraApplication. def _onGlobalContainerChanged(self) -> None: diff --git a/resources/qml/Menus/SettingVisibilityPresetsMenu.qml b/resources/qml/Menus/SettingVisibilityPresetsMenu.qml index 8116b6def1..97cee67300 100644 --- a/resources/qml/Menus/SettingVisibilityPresetsMenu.qml +++ b/resources/qml/Menus/SettingVisibilityPresetsMenu.qml @@ -14,8 +14,6 @@ Menu property QtObject settingVisibilityPresetsModel: CuraApplication.getSettingVisibilityPresetsModel() - signal showAllSettings() - Instantiator { model: settingVisibilityPresetsModel.items @@ -36,17 +34,6 @@ Menu onObjectRemoved: menu.removeItem(object) } - MenuSeparator {} - MenuItem - { - text: catalog.i18nc("@action:inmenu", "Show All Settings") - checkable: false - exclusiveGroup: group - onTriggered: - { - showAllSettings(); - } - } MenuSeparator {} MenuItem { diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 419af782cf..8617c564f6 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -185,14 +185,7 @@ Item label: Label {} } - menu: SettingVisibilityPresetsMenu - { - onShowAllSettings: - { - definitionsModel.setAllVisible(true) - filter.updateDefinitionModel() - } - } + menu: SettingVisibilityPresetsMenu {} } // Mouse area that gathers the scroll events to not propagate it to the main view.