diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml new file mode 100644 index 0000000000..2d4a8c1b36 --- /dev/null +++ b/resources/qml/MonitorButton.qml @@ -0,0 +1,161 @@ +// Copyright (c) 2016 Ultimaker B.V. +// Cura 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 +import Cura 1.0 as Cura + +Rectangle +{ + id: base; + UM.I18nCatalog { id: catalog; name:"cura"} + + property real progress: Cura.MachineManager.printerOutputDevices[0].progress; + property int backendState: UM.Backend.state; + + property bool activity: Printer.getPlatformActivity; + property int totalHeight: childrenRect.height + UM.Theme.getSize("default_margin").height + property string fileBaseName + property string statusText: + { + return "Printing..." + } + + Label + { + id: statusLabel + width: parent.width - 2 * UM.Theme.getSize("default_margin").width + anchors.top: parent.top + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + + color: "green" + font: UM.Theme.getFont("large") + text: statusText; + } + + Rectangle + { + id: progressBar + width: parent.width - 2 * UM.Theme.getSize("default_margin").width + height: UM.Theme.getSize("progressbar").height + anchors.top: statusLabel.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height / 4 + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + radius: UM.Theme.getSize("progressbar_radius").width + color: UM.Theme.getColor("progressbar_background") + + Rectangle + { + width: Math.max(parent.width * base.progress) + height: parent.height + color: "green" + radius: UM.Theme.getSize("progressbar_radius").width + //visible: base.backendState == 2 ? true : false + } + } + + Button + { + id: abortButton + + enabled: true + height: UM.Theme.getSize("save_button_save_to_button").height + + anchors.top: progressBar.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + + text: catalog.i18nc("@label:", "Abort Job") + onClicked: {} + + style: ButtonStyle + { + background: Rectangle + { + border.width: UM.Theme.getSize("default_lining").width + border.color: !control.enabled ? UM.Theme.getColor("action_button_disabled_border") : + control.pressed ? UM.Theme.getColor("action_button_active_border") : + control.hovered ? UM.Theme.getColor("action_button_hovered_border") : UM.Theme.getColor("action_button_border") + color: !control.enabled ? UM.Theme.getColor("action_button_disabled") : + control.pressed ? UM.Theme.getColor("action_button_active") : + control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") + Behavior on color { ColorAnimation { duration: 50; } } + + implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("default_margin").width * 2) + + Label + { + id: actualLabel + anchors.centerIn: parent + color: !control.enabled ? UM.Theme.getColor("action_button_disabled_text") : + control.pressed ? UM.Theme.getColor("action_button_active_text") : + control.hovered ? UM.Theme.getColor("action_button_hovered_text") : UM.Theme.getColor("action_button_text") + font: UM.Theme.getFont("action_button") + text: control.text; + } + } + label: Item { } + } + } + + Button + { + id: pauseButton + + height: UM.Theme.getSize("save_button_save_to_button").height + + anchors.top: progressBar.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.right: abortButton.left + anchors.rightMargin: UM.Theme.getSize("default_margin").width + + text: Cura.MachineManager.printerOutputDevices[0].jobState == "paused" ? catalog.i18nc("@label:", "Resume") : catalog.i18nc("@label:", "Pause") + onClicked: { Cura.MachineManager.printerOutputDevices[0].setJobState("printing")} + + style: ButtonStyle + { + background: Rectangle + { + border.width: UM.Theme.getSize("default_lining").width + border.color: !control.enabled ? UM.Theme.getColor("action_button_disabled_border") : + control.pressed ? UM.Theme.getColor("action_button_active_border") : + control.hovered ? UM.Theme.getColor("action_button_hovered_border") : UM.Theme.getColor("action_button_border") + color: !control.enabled ? UM.Theme.getColor("action_button_disabled") : + control.pressed ? UM.Theme.getColor("action_button_active") : + control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") + Behavior on color { ColorAnimation { duration: 50; } } + + implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("default_margin").width * 2) + + Label + { + id: actualLabel + anchors.centerIn: parent + color: !control.enabled ? UM.Theme.getColor("action_button_disabled_text") : + control.pressed ? UM.Theme.getColor("action_button_active_text") : + control.hovered ? UM.Theme.getColor("action_button_hovered_text") : UM.Theme.getColor("action_button_text") + font: UM.Theme.getFont("action_button") + text: control.text; + } + } + label: Item { } + } + } + + Rectangle + { + id: saveRow + width: base.width + height: saveToButton.height + anchors.top: progressBar.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.left: parent.left + } +} diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 747bc7621f..c1a07ab23a 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -330,8 +330,19 @@ Rectangle implicitWidth: base.width implicitHeight: totalHeight anchors.bottom: parent.bottom + visible: !monitoringPrint } + MonitorButton + { + id: monitorButton; + implicitWidth: base.width + implicitHeight: totalHeight + anchors.bottom: parent.bottom + visible: monitoringPrint + } + + SidebarTooltip { id: tooltip;