diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index be08083a16..e314ab80c2 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -34,6 +34,18 @@ Rectangle color: UM.Theme.getColor("sidebar"); UM.I18nCatalog { id: catalog; name:"cura"} + Timer { + id: hoverTimer + interval: 500 + repeat: false + property var item + property string text + + onTriggered: + { + base.showTooltip(base, {x:1, y:item.y}, text); + } + } function showTooltip(item, position, text) { @@ -146,6 +158,21 @@ Rectangle checkable: true checked: !monitoringPrint exclusiveGroup: sidebarHeaderBarGroup + property string tooltipText: catalog.i18nc("@tooltip", "Print Setup

Edit or review the settings for the active print job.") + + onHoveredChanged: { + if (hovered) + { + hoverTimer.item = showSettings + hoverTimer.text = tooltipText + hoverTimer.start(); + } + else + { + hoverTimer.stop(); + base.hideTooltip(); + } + } style: UM.Theme.styles.sidebar_header_tab } @@ -189,6 +216,21 @@ Rectangle checkable: true checked: monitoringPrint exclusiveGroup: sidebarHeaderBarGroup + property string tooltipText: catalog.i18nc("@tooltip", "Print Monitor

Monitor the state of the connected printer and the print job in progress.") + + onHoveredChanged: { + if (hovered) + { + hoverTimer.item = showMonitor + hoverTimer.text = tooltipText + hoverTimer.start(); + } + else + { + hoverTimer.stop(); + base.hideTooltip(); + } + } style: UM.Theme.styles.sidebar_header_tab } @@ -262,6 +304,20 @@ Rectangle checked: base.currentModeIndex == index onClicked: base.currentModeIndex = index + onHoveredChanged: { + if (hovered) + { + hoverTimer.item = settingsModeSelection + hoverTimer.text = model.tooltipText + hoverTimer.start(); + } + else + { + hoverTimer.stop(); + base.hideTooltip(); + } + } + style: ButtonStyle { background: Rectangle { border.width: UM.Theme.getSize("default_lining").width @@ -458,8 +514,18 @@ Rectangle Component.onCompleted: { - modesListModel.append({ text: catalog.i18nc("@title:tab", "Recommended"), item: sidebarSimple, showFilterButton: false }) - modesListModel.append({ text: catalog.i18nc("@title:tab", "Custom"), item: sidebarAdvanced, showFilterButton: true }) + modesListModel.append({ + text: catalog.i18nc("@title:tab", "Recommended"), + tooltipText: catalog.i18nc("@tooltip", "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality."), + item: sidebarSimple, + showFilterButton: false + }) + modesListModel.append({ + text: catalog.i18nc("@title:tab", "Custom"), + tooltipText: catalog.i18nc("@tooltip", "Custom Print Setup

Print with finegrained control over every last bit of the slicing process."), + item: sidebarAdvanced, + showFilterButton: true + }) sidebarContents.push({ "item": modesListModel.get(base.currentModeIndex).item, "immediate": true }); var index = parseInt(UM.Preferences.getValue("cura/active_mode")) diff --git a/resources/qml/SidebarTooltip.qml b/resources/qml/SidebarTooltip.qml index 5cb7ff1f0b..7344834c7e 100644 --- a/resources/qml/SidebarTooltip.qml +++ b/resources/qml/SidebarTooltip.qml @@ -29,6 +29,11 @@ UM.PointingRectangle { } else { x = position.x - base.width; y = position.y - UM.Theme.getSize("tooltip_arrow_margins").height; + if(y < 0) + { + position.y += -y; + y = 0; + } } base.opacity = 1; target = Qt.point(40 , position.y + UM.Theme.getSize("tooltip_arrow_margins").height / 2)