diff --git a/cura/Machines/Models/ActiveIntentQualitiesModel.py b/cura/Machines/Models/ActiveIntentQualitiesModel.py index f9acb9a970..ce0e958368 100644 --- a/cura/Machines/Models/ActiveIntentQualitiesModel.py +++ b/cura/Machines/Models/ActiveIntentQualitiesModel.py @@ -72,6 +72,13 @@ 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, 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 + new_items = sorted(new_items, key=lambda x: x["layer_height"]) self.setItems(new_items) 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, 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; + } } }