Allow making settings visible from the sidebar

This commit is contained in:
fieldOfView 2016-11-15 11:09:58 +01:00
parent b63f4e0bee
commit 7fafcef40b
2 changed files with 37 additions and 5 deletions

View file

@ -117,6 +117,7 @@ Item {
elide: Text.ElideMiddle; elide: Text.ElideMiddle;
color: UM.Theme.getColor("setting_control_text"); color: UM.Theme.getColor("setting_control_text");
opacity: (definition.visible) ? 1 : 0.5
// emphasize the setting if it has a value in the user or quality profile // emphasize the setting if it has a value in the user or quality profile
font: base.doQualityUserSettingEmphasis && base.stackLevel != undefined && base.stackLevel <= 1 ? UM.Theme.getFont("default_italic") : UM.Theme.getFont("default") font: base.doQualityUserSettingEmphasis && base.stackLevel != undefined && base.stackLevel <= 1 ? UM.Theme.getFont("default_italic") : UM.Theme.getFont("default")
} }

View file

@ -14,6 +14,7 @@ Item
id: base; id: base;
property Action configureSettings; property Action configureSettings;
property bool findingSettings;
signal showTooltip(Item item, point location, string text); signal showTooltip(Item item, point location, string text);
signal hideTooltip(); signal hideTooltip();
@ -47,14 +48,14 @@ Item
} }
property var expandedCategories property var expandedCategories
property bool lastFilterEmpty: true property bool lastFindingSettings: false
onTextChanged: { onTextChanged: {
definitionsModel.filter = {"label": "*" + text}; definitionsModel.filter = {"label": "*" + text};
var _filterEmpty = (text.length == 0); findingSettings = (text.length > 0);
if(_filterEmpty != lastFilterEmpty) if(findingSettings != lastFindingSettings)
{ {
if(!_filterEmpty) if(findingSettings)
{ {
expandedCategories = definitionsModel.expanded.slice(); expandedCategories = definitionsModel.expanded.slice();
definitionsModel.expanded = ["*"]; definitionsModel.expanded = ["*"];
@ -67,7 +68,7 @@ Item
definitionsModel.showAncestors = false; definitionsModel.showAncestors = false;
definitionsModel.showAll = false; definitionsModel.showAll = false;
} }
lastFilterEmpty = _filterEmpty; lastFindingSettings = findingSettings;
} }
} }
} }
@ -211,6 +212,7 @@ Item
onContextMenuRequested: onContextMenuRequested:
{ {
contextMenu.key = model.key; contextMenu.key = model.key;
contextMenu.settingVisible = model.visible;
contextMenu.provider = provider contextMenu.provider = provider
contextMenu.popup(); contextMenu.popup();
} }
@ -258,6 +260,7 @@ Item
property string key property string key
property var provider property var provider
property bool settingVisible
MenuItem MenuItem
{ {
@ -276,10 +279,38 @@ Item
MenuItem MenuItem
{ {
//: Settings context menu action //: Settings context menu action
visible: !findingSettings;
text: catalog.i18nc("@action:menu", "Hide this setting"); text: catalog.i18nc("@action:menu", "Hide this setting");
onTriggered: definitionsModel.hide(contextMenu.key); onTriggered: definitionsModel.hide(contextMenu.key);
} }
MenuItem MenuItem
{
//: Settings context menu action
text:
{
if (contextMenu.settingVisible)
{
return catalog.i18nc("@action:menu", "Don't show this setting");
}
else
{
return catalog.i18nc("@action:menu", "Keep this setting visible");
}
}
visible: findingSettings;
onTriggered:
{
if (contextMenu.settingVisible)
{
definitionsModel.hide(contextMenu.key);
}
else
{
definitionsModel.show(contextMenu.key);
}
}
}
MenuItem
{ {
//: Settings context menu action //: Settings context menu action
text: catalog.i18nc("@action:menu", "Configure setting visiblity..."); text: catalog.i18nc("@action:menu", "Configure setting visiblity...");