Merge pull request #20386 from Ultimaker/CURA-12466_Experimental_setting_visibility

Cura 12466 experimental setting visibility
This commit is contained in:
HellAholic 2025-03-17 17:21:00 +01:00 committed by GitHub
commit 26b1fb55db
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 36 additions and 64 deletions

View File

@ -46,33 +46,26 @@ Item
text: text:
{ {
if(provider.properties.enabled == "True") if (provider.properties.enabled === "True") return "";
{
return ""
}
var key = definition ? definition.key : ""
var requires = settingDefinitionsModel.getRequires(key, "enabled")
if (requires.length == 0)
{
return catalog.i18nc("@item:tooltip", "This setting has been hidden by the active machine and will not be visible.");
}
else
{
var requires_text = ""
for (var i in requires)
{
if (requires_text == "")
{
requires_text = requires[i].label
}
else
{
requires_text += ", " + requires[i].label
}
}
return catalog.i18ncp("@item:tooltip %1 is list of setting names", "This setting has been hidden by the value of %1. Change the value of that setting to make this setting visible.", "This setting has been hidden by the values of %1. Change the values of those settings to make this setting visible.", requires.length) .arg(requires_text); var key = definition ? definition.key : "";
var requires = settingDefinitionsModel.getRequires(key, "enabled");
if (requires.length === 0) {
return catalog.i18nc(
"@item:tooltip",
"This setting has been hidden by the active machine and will not be visible."
);
} }
var requiresText = requires.map(r => r.label).join(", ");
return catalog.i18ncp(
"@item:tooltip %1 is list of setting names",
"This setting has been hidden by the value of %1. Change the value of that setting to make this setting visible.",
"This setting has been hidden by the values of %1. Change the values of those settings to make this setting visible.",
requires.length
).arg(requiresText);
} }
UM.ColorImage UM.ColorImage

View File

@ -1,7 +1,7 @@
// Copyright (c) 2022 Ultimaker B.V. // Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.1 import QtQuick 2.15
import QtQuick.Controls 2.15 import QtQuick.Controls 2.15
import UM 1.5 as UM import UM 1.5 as UM
@ -27,10 +27,7 @@ UM.PreferencesPage
] ]
signal scrollToSection( string key ) signal scrollToSection( string key )
onScrollToSection: onScrollToSection: settingsListView.positionViewAtIndex(definitionsModel.getIndex(key), ListView.Beginning)
{
settingsListView.positionViewAtIndex(definitionsModel.getIndex(key), ListView.Beginning)
}
function reset() function reset()
{ {
@ -118,30 +115,14 @@ UM.PreferencesPage
model: settingVisibilityPresetsModel.items model: settingVisibilityPresetsModel.items
textRole: "name" textRole: "name"
currentIndex: currentIndex: settingVisibilityPresetsModel.items.findIndex(i => i.presetId === settingVisibilityPresetsModel.activePreset)
{ onActivated: settingVisibilityPresetsModel.setActivePreset(settingVisibilityPresetsModel.items[index].presetId)
var idx = -1;
for(var i = 0; i < settingVisibilityPresetsModel.items.length; ++i)
{
if(settingVisibilityPresetsModel.items[i].presetId === settingVisibilityPresetsModel.activePreset)
{
idx = i;
break;
}
}
return idx;
}
onActivated:
{
var preset_id = settingVisibilityPresetsModel.items[index].presetId
settingVisibilityPresetsModel.setActivePreset(preset_id)
}
} }
ListView ListView
{ {
id: settingsListView id: settingsListView
reuseItems: true
anchors anchors
{ {
top: filter.bottom top: filter.bottom
@ -164,33 +145,31 @@ UM.PreferencesPage
expanded: ["*"] expanded: ["*"]
visibilityHandler: UM.SettingPreferenceVisibilityHandler {} visibilityHandler: UM.SettingPreferenceVisibilityHandler {}
} }
cacheBuffer: 1000000 // Set a large cache to effectively just cache every list item.
property Component settingVisibilityCategory: Cura.SettingVisibilityCategory {} Component
property Component settingVisibilityItem: Cura.SettingVisibilityItem {} {
id: settingVisibilityCategory
Cura.SettingVisibilityCategory {}
}
Component
{
id: settingVisibilityItem
Cura.SettingVisibilityItem {}
}
delegate: Loader delegate: Loader
{ {
id: loader id: loader
width: settingsListView.width - scrollBar.width width: settingsListView.width - scrollBar.width
height: model.type !== undefined ? UM.Theme.getSize("section").height : 0 height: model.type !== undefined ? UM.Theme.getSize("section").height : 0
property var definition: model property var definition: model
property var settingDefinitionsModel: definitionsModel property var settingDefinitionsModel: definitionsModel
asynchronous: true asynchronous: false
active: model.type !== undefined active: model.type !== undefined
sourceComponent: sourceComponent: model.type === "category" ? settingVisibilityCategory : settingVisibilityItem
{
switch (model.type)
{
case "category":
return settingsListView.settingVisibilityCategory
default:
return settingsListView.settingVisibilityItem
}
}
} }
} }
} }