diff --git a/plugins/UM3NetworkPrinting/ClusterControlItem.qml b/plugins/UM3NetworkPrinting/ClusterControlItem.qml
index f2e2b601f2..194337cca0 100644
--- a/plugins/UM3NetworkPrinting/ClusterControlItem.qml
+++ b/plugins/UM3NetworkPrinting/ClusterControlItem.qml
@@ -6,11 +6,13 @@ import Cura 1.0 as Cura
Component
{
- Item
+ Rectangle
{
id: base
property var manager: Cura.MachineManager.printerOutputDevices[0]
anchors.fill: parent
+ color: UM.Theme.getColor("viewport_background")
+
property var lineColor: "#DCDCDC" // TODO: Should be linked to theme.
property var cornerRadius: 4 * screenScaleFactor // TODO: Should be linked to theme.
@@ -27,24 +29,17 @@ Component
id: activePrintersLabel
font: UM.Theme.getFont("large")
anchors.horizontalCenter: parent.horizontalCenter
+ anchors.topMargin: UM.Theme.getSize("default_margin").height
+ anchors.top: parent.top
text: Cura.MachineManager.printerOutputDevices[0].name
}
- Label
- {
- id: printerGroupLabel
- anchors.top: activePrintersLabel.bottom
- text: catalog.i18nc("@label", "PRINTER GROUP")
- anchors.horizontalCenter: parent.horizontalCenter
- font: UM.Theme.getFont("very_small")
- opacity: 0.65
- }
Rectangle
{
id: printJobArea
border.width: UM.Theme.getSize("default_lining").width
border.color: lineColor
- anchors.top: printerGroupLabel.bottom
+ anchors.top: activePrintersLabel.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
@@ -240,4 +235,4 @@ Component
}
}
}
-}
\ No newline at end of file
+}
diff --git a/plugins/UM3NetworkPrinting/ClusterMonitorItem.qml b/plugins/UM3NetworkPrinting/ClusterMonitorItem.qml
index 48fb0a33fc..497b762ea9 100644
--- a/plugins/UM3NetworkPrinting/ClusterMonitorItem.qml
+++ b/plugins/UM3NetworkPrinting/ClusterMonitorItem.qml
@@ -10,8 +10,8 @@ Component
Rectangle
{
width: maximumWidth
- height: maximumHeight
- color: "#FFFFFF" // TODO; Should not be hardcoded.
+ height: maximumHeight
+ color: UM.Theme.getColor("viewport_background")
property var emphasisColor: "#44c0ff" //TODO: should be linked to theme.
property var lineColor: "#DCDCDC" // TODO: Should be linked to theme.
diff --git a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py
index 94bd6bc9a3..29ef75820e 100644
--- a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py
+++ b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py
@@ -17,6 +17,7 @@ from UM.Logger import Logger
from UM.Message import Message
from UM.OutputDevice import OutputDeviceError
from UM.i18n import i18nCatalog
+from UM.Qt.Duration import Duration, DurationFormat
from . import NetworkPrinterOutputDevice
@@ -685,3 +686,7 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte
self._reply.abort()
self._reply = None
Application.getInstance().showPrintMonitor.emit(False)
+
+ @pyqtSlot(int, result=str)
+ def formatDuration(self, seconds):
+ return Duration(seconds).getDisplayString(DurationFormat.Format.Short)
diff --git a/plugins/UM3NetworkPrinting/OpenPanelButton.qml b/plugins/UM3NetworkPrinting/OpenPanelButton.qml
index 3915c1f9eb..a06a97f8f9 100644
--- a/plugins/UM3NetworkPrinting/OpenPanelButton.qml
+++ b/plugins/UM3NetworkPrinting/OpenPanelButton.qml
@@ -14,5 +14,58 @@ Button {
tooltip: catalog.i18nc("@info:tooltip", "Opens the print jobs page with your default web browser.")
text: catalog.i18nc("@action:button", "View print jobs")
- style: UM.Theme.styles.sidebar_action_button
+ // FIXME: This button style is copied and duplicated from SaveButton.qml
+ style: ButtonStyle {
+ background: Rectangle
+ {
+ border.width: UM.Theme.getSize("default_lining").width
+ border.color:
+ {
+ if(!control.enabled)
+ return UM.Theme.getColor("action_button_disabled_border");
+ else if(control.pressed)
+ return UM.Theme.getColor("print_button_ready_pressed_border");
+ else if(control.hovered)
+ return UM.Theme.getColor("print_button_ready_hovered_border");
+ else
+ return UM.Theme.getColor("print_button_ready_border");
+ }
+ color:
+ {
+ if(!control.enabled)
+ return UM.Theme.getColor("action_button_disabled");
+ else if(control.pressed)
+ return UM.Theme.getColor("print_button_ready_pressed");
+ else if(control.hovered)
+ return UM.Theme.getColor("print_button_ready_hovered");
+ else
+ return UM.Theme.getColor("print_button_ready");
+ }
+
+ Behavior on color { ColorAnimation { duration: 50; } }
+
+ implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("sidebar_margin").width * 2)
+
+ Label {
+ id: actualLabel
+ anchors.centerIn: parent
+ color:
+ {
+ if(!control.enabled)
+ return UM.Theme.getColor("action_button_disabled_text");
+ else if(control.pressed)
+ return UM.Theme.getColor("print_button_ready_text");
+ else if(control.hovered)
+ return UM.Theme.getColor("print_button_ready_text");
+ else
+ return UM.Theme.getColor("print_button_ready_text");
+ }
+ font: UM.Theme.getFont("action_button")
+ text: control.text;
+ }
+ }
+ label: Item { }
+ }
+
+
}
diff --git a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml
index e548c9e9d7..0500221990 100644
--- a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml
+++ b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml
@@ -14,14 +14,7 @@ Rectangle
function getPrettyTime(time)
{
- var hours = Math.floor(time / 3600)
- time -= hours * 3600
- var minutes = Math.floor(time / 60);
- time -= minutes * 60
- var seconds = Math.floor(time);
-
- var finalTime = strPadLeft(hours, "0", 2) + ':' + strPadLeft(minutes,'0',2)+ ':' + strPadLeft(seconds,'0',2);
- return finalTime;
+ return OutputDevice.formatDuration(time)
}
function formatPrintJobPercent(printJob)
@@ -143,14 +136,14 @@ Rectangle
anchors.right: printProgressArea.left
anchors.rightMargin: UM.Theme.getSize("default_margin").width
color: emphasisColor
- UM.RecolorImage
+
+ Image
{
- anchors.verticalCenter: parent.verticalCenter
- anchors.horizontalCenter: parent.horizontalCenter
+ width: 40 * screenScaleFactor
+ height: width
+ anchors.right: parent.right
+ anchors.rightMargin: parent.rightMargin
source: "camera-icon.svg"
- width: sourceSize.width
- height: sourceSize.height * width / sourceSize.width
- color: "white"
}
}
@@ -217,6 +210,9 @@ Rectangle
//border.color: lineColor
height: 40 * screenScaleFactor
anchors.left: parent.left
+ property var showPercent: {
+ return printJob != null && (["printing", "post_print", "pre_print", "sent_to_printer"].indexOf(printJob.status) !== -1);
+ }
Label
{
@@ -266,6 +262,10 @@ Rectangle
return "";
}
}
+ if (printer.status == "printing")
+ {
+ return catalog.i18nc("@label:status", "Printing")
+ }
return catalog.i18nc("@label:status", "Available");
}
@@ -273,6 +273,7 @@ Rectangle
font: UM.Theme.getFont("small")
}
+
Label
{
id: progressText
@@ -282,10 +283,44 @@ Rectangle
anchors.top: statusText.top
text: formatPrintJobPercent(printJob)
- visible: printJob != null && (["printing", "post_print", "pre_print", "sent_to_printer"].indexOf(printJob.status) !== -1)
+ visible: printProgressTitleBar.showPercent
opacity: 0.65
font: UM.Theme.getFont("very_small")
}
+
+ Image
+ {
+ width: statusText.height * screenScaleFactor
+ height: width
+ anchors.right: parent.right
+ anchors.rightMargin: UM.Theme.getSize("default_margin").width
+ anchors.top: statusText.top
+
+ visible: ! printProgressTitleBar.showPercent
+
+ source: {
+ if ( ! printer.enabled)
+ {
+ return "blocked-icon.svg";
+ }
+ if (printJob != null)
+ {
+ if(printJob.status === "queued")
+ {
+ if (printJob.configuration_changes_required != null && printJob.configuration_changes_required.length !== 0)
+ {
+ return "action-required-icon.svg";
+ }
+ }
+ else if (printJob.status === "wait_cleanup")
+ {
+ return "checkmark-icon.svg";
+ }
+ }
+ return ""; // We're not going to show it, so it will not be resolved as a url.
+ }
+ }
+
Rectangle
{
//TODO: This will become a progress bar in the future
@@ -308,7 +343,7 @@ Rectangle
width: parent.width - 2 * UM.Theme.getSize("default_margin").width
- visible: showExtended
+ visible: printProgressArea.showExtended
Label // Status detail
{
diff --git a/plugins/UM3NetworkPrinting/action-required-icon.svg b/plugins/UM3NetworkPrinting/action-required-icon.svg
new file mode 100644
index 0000000000..e7768849c6
--- /dev/null
+++ b/plugins/UM3NetworkPrinting/action-required-icon.svg
@@ -0,0 +1,10 @@
+
diff --git a/plugins/UM3NetworkPrinting/blocked-icon.svg b/plugins/UM3NetworkPrinting/blocked-icon.svg
new file mode 100644
index 0000000000..03bbe24e16
--- /dev/null
+++ b/plugins/UM3NetworkPrinting/blocked-icon.svg
@@ -0,0 +1,3 @@
+
diff --git a/plugins/UM3NetworkPrinting/camera-icon.svg b/plugins/UM3NetworkPrinting/camera-icon.svg
index 2aafc4b6f4..29adfa5875 100644
--- a/plugins/UM3NetworkPrinting/camera-icon.svg
+++ b/plugins/UM3NetworkPrinting/camera-icon.svg
@@ -1,3 +1,6 @@
-
+
\ No newline at end of file
diff --git a/plugins/UM3NetworkPrinting/checkmark-icon.svg b/plugins/UM3NetworkPrinting/checkmark-icon.svg
new file mode 100644
index 0000000000..9d4507e551
--- /dev/null
+++ b/plugins/UM3NetworkPrinting/checkmark-icon.svg
@@ -0,0 +1,3 @@
+
diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml
index b1644ff303..9fecf23ca9 100755
--- a/resources/qml/Cura.qml
+++ b/resources/qml/Cura.qml
@@ -386,8 +386,6 @@ UM.MainWindow
visible: opacity > 0
opacity: base.showPrintMonitor ? 1 : 0
- Behavior on opacity { NumberAnimation { duration: 100; } }
-
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.AllButtons
diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json
index 187896aa28..f39fe96c37 100644
--- a/resources/themes/cura-dark/theme.json
+++ b/resources/themes/cura-dark/theme.json
@@ -16,7 +16,7 @@
"secondary": [241, 242, 242, 255],
"topbar_background_color": [0, 0, 0, 0],
- "topbar_background_color_monitoring": [39, 44, 48, 255],
+ "topbar_background_color_monitoring": [0, 0, 0, 0],
"topbar_button_text_active": [255, 255, 255, 255],
"topbar_button_text_inactive": [128, 128, 128, 255],
diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json
index 62e22e4f0d..74b6bfb7ab 100644
--- a/resources/themes/cura-light/theme.json
+++ b/resources/themes/cura-light/theme.json
@@ -68,7 +68,7 @@
"secondary": [245, 245, 245, 255],
"topbar_background_color": [255, 255, 255, 0],
- "topbar_background_color_monitoring": [255, 255, 255, 255],
+ "topbar_background_color_monitoring": [255, 255, 255, 0],
"topbar_button_text_active": [0, 0, 0, 255],
"topbar_button_text_inactive": [128, 128, 128, 255],