Cura/resources/qml/Settings/SettingCategory.qml
Arjen Hiemstra b7fd97737c Simplify tooltip handling for settings
Rather than use three different signals, use a single showTooltip signal
with a
text property. This makes it possible to show any tooltip from within a
setting
item.
2016-05-11 17:19:31 +02:00

82 lines
2.4 KiB
QML

// Copyright (c) 2015 Ultimaker B.V.
// Uranium is released under the terms of the AGPLv3 or higher.
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
import QtQuick.Layouts 1.1
import UM 1.1 as UM
Button {
id: base;
style: UM.Theme.styles.sidebar_category;
signal showTooltip(string text);
signal hideTooltip();
signal contextMenuRequested()
text: definition.label
iconSource: UM.Theme.getIcon(definition.icon)
checkable: true
checked: definition.expanded
onClicked: definition.expanded ? settingDefinitionsModel.collapse(definition.key) : settingDefinitionsModel.expandAll(definition.key)
UM.SimpleButton {
id: settingsButton
visible: base.hovered || settingsButton.hovered
height: base.height * 0.6
width: base.height * 0.6
anchors {
right: inheritButton.visible ? inheritButton.left : parent.right
rightMargin: inheritButton.visible? UM.Theme.getSize("default_margin").width / 2 : UM.Theme.getSize("setting_preferences_button_margin").width
verticalCenter: parent.verticalCenter;
}
color: UM.Theme.getColor("setting_control_button");
hoverColor: UM.Theme.getColor("setting_control_button_hover")
iconSource: UM.Theme.getIcon("settings");
onClicked: {
Actions.configureSettingVisibility()
}
}
UM.SimpleButton
{
// This button shows when the setting has an inherited function, but is overriden by profile.
id: inheritButton;
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("setting_preferences_button_margin").width
visible: hiddenValuesCount > 0
height: parent.height / 2;
width: height;
onClicked: {
base.showAllHidenInheritedSettings()
}
color: UM.Theme.getColor("setting_control_button")
hoverColor: UM.Theme.getColor("setting_control_button_hover")
iconSource: UM.Theme.getIcon("notice")
onEntered: {
base.showTooltip(catalog.i18nc("@label", "This setting is normally calculated, but it currently has an absolute value set.\n\nClick to restore the calculated value."))
}
onExited: {
base.hideTooltip();
}
UM.I18nCatalog { id: catalog; name: "cura" }
}
}