From beac50d44f10a723061a3bf22fb3c5e19f7cb918 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 26 Feb 2025 13:02:41 +0100 Subject: [PATCH 1/4] Fix fallback for when a material was selected that didn't have the current intent. CURA-12406 --- cura/Machines/Models/ActiveIntentQualitiesModel.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cura/Machines/Models/ActiveIntentQualitiesModel.py b/cura/Machines/Models/ActiveIntentQualitiesModel.py index f9acb9a970..41119f2c10 100644 --- a/cura/Machines/Models/ActiveIntentQualitiesModel.py +++ b/cura/Machines/Models/ActiveIntentQualitiesModel.py @@ -72,6 +72,12 @@ class ActiveIntentQualitiesModel(ListModel): new_items.append(intent) added_quality_type_set.add(intent["quality_type"]) + # If there aren't any possibilities when the Intent is kept the same, set it 'back' to default. + if len(new_items) == 0 and self._intent_category != "default": + IntentManager.getInstance().selectIntent("default", global_stack.quality.getMetaDataEntry("quality_type")) + self._update() + return + new_items = sorted(new_items, key=lambda x: x["layer_height"]) self.setItems(new_items) From 4e7807b0fc729bcb93e07c08f926860b5ffd265c Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 26 Feb 2025 13:25:02 +0100 Subject: [PATCH 2/4] Prevent crash when the quality-type is _actually_ not supported. part of CURA-12406 --- cura/Machines/Models/ActiveIntentQualitiesModel.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cura/Machines/Models/ActiveIntentQualitiesModel.py b/cura/Machines/Models/ActiveIntentQualitiesModel.py index 41119f2c10..ce0e958368 100644 --- a/cura/Machines/Models/ActiveIntentQualitiesModel.py +++ b/cura/Machines/Models/ActiveIntentQualitiesModel.py @@ -72,9 +72,10 @@ class ActiveIntentQualitiesModel(ListModel): new_items.append(intent) added_quality_type_set.add(intent["quality_type"]) - # If there aren't any possibilities when the Intent is kept the same, set it 'back' to default. - if len(new_items) == 0 and self._intent_category != "default": - IntentManager.getInstance().selectIntent("default", global_stack.quality.getMetaDataEntry("quality_type")) + # If there aren't any possibilities when the Intent is kept the same, attempt to set it 'back' to default. + current_quality_type = global_stack.quality.getMetaDataEntry("quality_type") + if len(new_items) == 0 and self._intent_category != "default" and current_quality_type != "not_supported": + IntentManager.getInstance().selectIntent("default", current_quality_type) self._update() return From 667a27e2d289a45496c82008611d7cc6da98b285 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 26 Feb 2025 16:49:29 +0100 Subject: [PATCH 3/4] change setting-version for base definitions as well (5.9 -> 5.10) part of CURA-12359 --- resources/definitions/fdmextruder.def.json | 2 +- resources/definitions/fdmprinter.def.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmextruder.def.json b/resources/definitions/fdmextruder.def.json index 684fff180b..5ba963bf71 100644 --- a/resources/definitions/fdmextruder.def.json +++ b/resources/definitions/fdmextruder.def.json @@ -7,7 +7,7 @@ "author": "Ultimaker", "manufacturer": "Unknown", "position": "0", - "setting_version": 24, + "setting_version": 25, "type": "extruder" }, "settings": diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 038d2de2f4..cee1c10e1f 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6,7 +6,7 @@ "type": "machine", "author": "Unknown", "manufacturer": "Unknown", - "setting_version": 24, + "setting_version": 25, "file_formats": "text/x-gcode;model/stl;application/x-wavefront-obj;application/x3g", "visible": false, "has_materials": true, From 64cdb31252fd6844adc5f731776649ddde6d5c2b Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 26 Feb 2025 17:06:27 +0100 Subject: [PATCH 4/4] Due to collapsing pop-ups on scrollbar change fix, textfields also lost focus. CURA-12254 --- resources/qml/Settings/SettingItem.qml | 1 + resources/qml/Settings/SettingTextField.qml | 5 +++++ resources/qml/Settings/SettingView.qml | 7 ++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index f46c59ff61..744ce8b197 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -53,6 +53,7 @@ Item signal showTooltip(string text) signal hideTooltip() signal showAllHiddenInheritedSettings(string category_id) + signal setScrollPositionChangeLoseFocus(bool lose_focus) function createTooltipText() { diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index f49b688c18..5259e5ea75 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -148,6 +148,11 @@ SettingItem if(activeFocus) { base.focusReceived(); + setScrollPositionChangeLoseFocus(false); + } + else + { + setScrollPositionChangeLoseFocus(true); } base.focusGainedByClick = false; } diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index c5fed795d5..9622998595 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -15,6 +15,7 @@ Item property QtObject settingVisibilityPresetsModel: CuraApplication.getSettingVisibilityPresetsModel() property bool findingSettings + property bool loseFocusOnScrollPositionChange: true Item { @@ -195,7 +196,7 @@ Item onPositionChanged: { // This removes focus from items when scrolling. // This fixes comboboxes staying open and scrolling container - if (!activeFocus && !filter.activeFocus) { + if (!activeFocus && !filter.activeFocus && loseFocusOnScrollPositionChange) { forceActiveFocus(); } } @@ -378,6 +379,10 @@ Item } } } + function onSetScrollPositionChangeLoseFocus(lose_focus) + { + loseFocusOnScrollPositionChange = lose_focus; + } } }