diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index ad52b55163..79e137e87f 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -302,12 +302,14 @@ class ThreeMFWorkspaceReader(WorkspaceReader): break num_visible_settings = 0 + has_visible_settings_string = False try: temp_preferences = Preferences() serialized = archive.open("Cura/preferences.cfg").read().decode("utf-8") temp_preferences.deserialize(serialized) visible_settings_string = temp_preferences.getValue("general/visible_settings") + has_visible_settings_string = visible_settings_string is not None if visible_settings_string is not None: num_visible_settings = len(visible_settings_string.split(";")) active_mode = temp_preferences.getValue("cura/active_mode") @@ -334,6 +336,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._dialog.setQualityChangesConflict(quality_changes_conflict) self._dialog.setDefinitionChangesConflict(definition_changes_conflict) self._dialog.setMaterialConflict(material_conflict) + self._dialog.setHasVisibleSettingsField(has_visible_settings_string) self._dialog.setNumVisibleSettings(num_visible_settings) self._dialog.setQualityName(quality_name) self._dialog.setQualityType(quality_type) diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index 5e5eaf985e..151771b25d 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -38,6 +38,7 @@ class WorkspaceDialog(QObject): self._has_definition_changes_conflict = False self._has_machine_conflict = False self._has_material_conflict = False + self._has_visible_settings_field = False self._num_visible_settings = 0 self._num_user_settings = 0 self._active_mode = "" @@ -58,6 +59,7 @@ class WorkspaceDialog(QObject): numVisibleSettingsChanged = pyqtSignal() activeModeChanged = pyqtSignal() qualityNameChanged = pyqtSignal() + hasVisibleSettingsFieldChanged = pyqtSignal() numSettingsOverridenByQualityChangesChanged = pyqtSignal() qualityTypeChanged = pyqtSignal() machineNameChanged = pyqtSignal() @@ -167,6 +169,14 @@ class WorkspaceDialog(QObject): self._active_mode = i18n_catalog.i18nc("@title:tab", "Custom") self.activeModeChanged.emit() + @pyqtProperty(int, notify = hasVisibleSettingsFieldChanged) + def hasVisibleSettingsField(self): + return self._has_visible_settings_field + + def setHasVisibleSettingsField(self, has_visible_settings_field): + self._has_visible_settings_field = has_visible_settings_field + self.hasVisibleSettingsFieldChanged.emit() + @pyqtProperty(int, constant = True) def totalNumberOfSettings(self): return len(ContainerRegistry.getInstance().findDefinitionContainers(id="fdmprinter")[0].getAllKeys()) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 55f8d5eecf..826b488e02 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -331,6 +331,7 @@ UM.Dialog { width: parent.width height: childrenRect.height + visible: manager.hasVisibleSettingsField Label { text: catalog.i18nc("@action:label", "Visible settings:")