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:
{
if(provider.properties.enabled == "True")
{
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
}
}
if (provider.properties.enabled === "True") return "";
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

View File

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