Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCasper Lamboo <c.lamboo@ultimaker.com>2022-08-31 17:09:40 +0300
committerGitHub <noreply@github.com>2022-08-31 17:09:40 +0300
commit62b102cc74cf8f4628d566e7fa3c1e76b98e0683 (patch)
treed0230adf7af44ce4dd10058764a2e5d315aaaf7d
parentded387324985b52632cab5eaa1343e6e239fcb1c (diff)
parentc73b980a3d483247ad339c46263c5d0fd514cab2 (diff)
Merge pull request #13175 from Ultimaker/CURA-9422_abstract_cloud_monitor_redux
[CURA-9422] abstract cloud monitor redux
-rwxr-xr-xcura/Settings/GlobalStack.py1
-rwxr-xr-xcura/Settings/MachineManager.py10
-rw-r--r--plugins/MonitorStage/MonitorMain.qml52
-rw-r--r--plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml4
-rw-r--r--plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml63
-rw-r--r--resources/qml/PrinterSelector/MachineListButton.qml4
-rw-r--r--resources/qml/PrinterSelector/MachineSelector.qml1
-rw-r--r--resources/themes/cura-dark/images/cura_connected_printers.svg111
-rw-r--r--resources/themes/cura-light/images/cura_connected_printers.svg (renamed from resources/themes/cura-light/images/illustration_connect_printers.svg)0
9 files changed, 181 insertions, 65 deletions
diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py
index 43232da725..b94ca45763 100755
--- a/cura/Settings/GlobalStack.py
+++ b/cura/Settings/GlobalStack.py
@@ -90,7 +90,6 @@ class GlobalStack(CuraContainerStack):
@pyqtProperty("QVariantList", notify=configuredConnectionTypesChanged)
def configuredConnectionTypes(self) -> List[int]:
"""The configured connection types can be used to find out if the global
-
stack is configured to be connected with a printer, without having to
know all the details as to how this is exactly done (and without
actually setting the stack to be active).
diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py
index fc11beb2c8..d091ab9f6f 100755
--- a/cura/Settings/MachineManager.py
+++ b/cura/Settings/MachineManager.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Ultimaker B.V.
+# Copyright (c) 2022 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
import time
@@ -531,9 +531,9 @@ class MachineManager(QObject):
def printerConnected(self) -> bool:
return bool(self._printer_output_devices)
- @pyqtProperty(bool, notify = printerConnectedStatusChanged)
- def activeMachineIsAbstract(self) -> bool:
- return (self.activeMachine is not None) and parseBool(self.activeMachine.getMetaDataEntry("is_abstract_machine", False))
+ @pyqtProperty(bool, notify = globalContainerChanged)
+ def activeMachineIsAbstractCloudPrinter(self) -> bool:
+ return len(self._printer_output_devices) == 1 and self._printer_output_devices[0].__class__.__name__ == "AbstractCloudOutputDevice"
@pyqtProperty(bool, notify = printerConnectedStatusChanged)
def activeMachineIsGroup(self) -> bool:
@@ -559,8 +559,6 @@ class MachineManager(QObject):
@pyqtProperty(bool, notify = printerConnectedStatusChanged)
def activeMachineHasCloudRegistration(self) -> bool:
- if self.activeMachineIsAbstract:
- return any(m.getMetaDataEntry("is_online", False) for m in self.getMachinesWithDefinition(self.activeMachine.definition.getId(), True))
return self.activeMachine is not None and ConnectionType.CloudConnection in self.activeMachine.configuredConnectionTypes
@pyqtProperty(bool, notify = printerConnectedStatusChanged)
diff --git a/plugins/MonitorStage/MonitorMain.qml b/plugins/MonitorStage/MonitorMain.qml
index 768366c664..a89938530c 100644
--- a/plugins/MonitorStage/MonitorMain.qml
+++ b/plugins/MonitorStage/MonitorMain.qml
@@ -1,4 +1,4 @@
-// Copyright (c) 2018 Ultimaker B.V.
+// Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10
@@ -12,7 +12,6 @@ Rectangle
id: viewportOverlay
property bool isConnected: Cura.MachineManager.activeMachineHasNetworkConnection || Cura.MachineManager.activeMachineHasCloudConnection
- property bool isAbstractCloudPrinter: Cura.MachineManager.activeMachineIsAbstract
property bool isNetworkConfigurable:
{
if(Cura.MachineManager.activeMachine === null)
@@ -97,7 +96,7 @@ Rectangle
{
horizontalCenter: parent.horizontalCenter
}
- visible: isNetworkConfigured && !isConnected && !isAbstractCloudPrinter
+ visible: isNetworkConfigured && !isConnected
text: catalog.i18nc("@info", "Please make sure your printer has a connection:\n- Check if the printer is turned on.\n- Check if the printer is connected to the network.\n- Check if you are signed in to discover cloud-connected printers.")
font: UM.Theme.getFont("medium")
width: contentWidth
@@ -110,62 +109,19 @@ Rectangle
{
horizontalCenter: parent.horizontalCenter
}
- visible: !isNetworkConfigured && isNetworkConfigurable && !isAbstractCloudPrinter
+ visible: !isNetworkConfigured && isNetworkConfigurable
text: catalog.i18nc("@info", "Please connect your printer to the network.")
font: UM.Theme.getFont("medium")
width: contentWidth
}
- Rectangle
- {
- id: sendToFactoryCard
- visible: isAbstractCloudPrinter
- color: UM.Theme.getColor("detail_background")
- height: childrenRect.height + UM.Theme.getSize("default_margin").height * 2
- width: childrenRect.width + UM.Theme.getSize("wide_margin").width * 2
- Column
- {
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.verticalCenter: parent.verticalCenter
- spacing: UM.Theme.getSize("wide_margin").height
- padding: UM.Theme.getSize("default_margin").width
- topPadding: 0
-
- Image
- {
- id: sendToFactoryImage
- anchors.horizontalCenter: parent.horizontalCenter
- source: UM.Theme.getImage("illustration_connect_printers")
- }
-
- UM.Label
- {
- anchors.horizontalCenter: parent.horizontalCenter
- text: catalog.i18nc("@info", "Monitor your printers from everywhere using Ultimaker Digital Factory")
- font: UM.Theme.getFont("medium")
- width: sendToFactoryImage.width
- wrapMode: Text.WordWrap
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- }
-
- Cura.PrimaryButton
- {
- id: sendToFactoryButton
- anchors.horizontalCenter: parent.horizontalCenter
- text: catalog.i18nc("@button", "View printers in Digital Factory")
- onClicked: Qt.openUrlExternally("https://digitalfactory.ultimaker.com/app/print-jobs?utm_source=cura&utm_medium=software&utm_campaign=monitor-view-cloud-printer-type")
- }
- }
- }
-
Item
{
anchors
{
left: noNetworkLabel.left
}
- visible: !isNetworkConfigured && isNetworkConfigurable && !isAbstractCloudPrinter
+ visible: !isNetworkConfigured && isNetworkConfigurable
width: childrenRect.width
height: childrenRect.height
diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml
index 64aa4e7a9c..c0662cfc82 100644
--- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml
+++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml
@@ -153,7 +153,7 @@ Item
MonitorPrinterPill
{
- text: printJob.configuration.printerType
+ text: printJob ? printJob.configuration.printerType : ""
}
}
}
@@ -173,7 +173,7 @@ Item
id: printerConfiguration
anchors.verticalCenter: parent.verticalCenter
buildplate: catalog.i18nc("@label", "Glass")
- configurations: base.printJob.configuration.extruderConfigurations
+ configurations: base.printJob ? base.printJob.configuration.extruderConfigurations : null
height: Math.round(72 * screenScaleFactor) // TODO: Theme!
}
diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml
index 6e8f6b4ebd..c55c00f378 100644
--- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml
+++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml
@@ -1,8 +1,8 @@
-// Copyright (c) 2019 Ultimaker B.V.
+// Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
-import QtQuick 2.2
-import UM 1.3 as UM
+import QtQuick 2.15
+import UM 1.5 as UM
import Cura 1.0 as Cura
// This is the root component for the monitor stage.
@@ -37,6 +37,7 @@ Component
Item
{
id: printers
+ visible: !Cura.MachineManager.activeMachineIsAbstractCloudPrinter
anchors
{
top: parent.top
@@ -69,14 +70,66 @@ Component
top: printers.bottom
topMargin: 48 * screenScaleFactor // TODO: Theme!
}
- visible: OutputDevice.supportsPrintJobQueue && OutputDevice.canReadPrintJobs
+ visible: OutputDevice.supportsPrintJobQueue && OutputDevice.canReadPrintJobs && !Cura.MachineManager.activeMachineIsAbstractCloudPrinter
}
PrinterVideoStream
{
anchors.fill: parent
cameraUrl: OutputDevice.activeCameraUrl
- visible: OutputDevice.activeCameraUrl != ""
+ visible: OutputDevice.activeCameraUrl != "" && !Cura.MachineManager.activeMachineIsAbstractCloudPrinter
+ }
+
+ Rectangle
+ {
+ id: sendToFactoryCard
+
+ visible: Cura.MachineManager.activeMachineIsAbstractCloudPrinter
+
+ color: UM.Theme.getColor("detail_background")
+ height: childrenRect.height + UM.Theme.getSize("default_margin").height * 2
+ width: childrenRect.width + UM.Theme.getSize("wide_margin").width * 2
+ anchors
+ {
+ horizontalCenter: parent.horizontalCenter
+ top: parent.top
+ topMargin: UM.Theme.getSize("wide_margin").height * screenScaleFactor * 2
+ }
+
+ Column
+ {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ spacing: UM.Theme.getSize("wide_margin").height
+ padding: UM.Theme.getSize("default_margin").width
+ topPadding: 0
+
+ Image
+ {
+ id: sendToFactoryImage
+ anchors.horizontalCenter: parent.horizontalCenter
+ source: UM.Theme.getImage("cura_connected_printers")
+ }
+
+ UM.Label
+ {
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: catalog.i18nc("@info", "Monitor your printers from everywhere using Ultimaker Digital Factory")
+ font: UM.Theme.getFont("medium")
+ width: sendToFactoryImage.width
+ wrapMode: Text.WordWrap
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ Cura.PrimaryButton
+ {
+ id: sendToFactoryButton
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: catalog.i18nc("@button", "View printers in Digital Factory")
+ onClicked: Qt.openUrlExternally("https://digitalfactory.ultimaker.com/app/print-jobs?utm_source=cura&utm_medium=software&utm_campaign=monitor-view-cloud-printer-type")
+ }
+ }
}
}
}
diff --git a/resources/qml/PrinterSelector/MachineListButton.qml b/resources/qml/PrinterSelector/MachineListButton.qml
index b158cb20c0..70e7564aa9 100644
--- a/resources/qml/PrinterSelector/MachineListButton.qml
+++ b/resources/qml/PrinterSelector/MachineListButton.qml
@@ -118,11 +118,11 @@ Loader {
top: buttonText.top
bottom: buttonText.bottom
}
- visible: model.isAbstractMachine
+ visible: model.isAbstractMachine ? model.isAbstractMachine : false
UM.Label
{
- text: model.machineCount
+ text: model.machineCount ? model.machineCount : ""
anchors.centerIn: parent
font: UM.Theme.getFont("default_bold")
}
diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml
index 869d536a00..0008529408 100644
--- a/resources/qml/PrinterSelector/MachineSelector.qml
+++ b/resources/qml/PrinterSelector/MachineSelector.qml
@@ -223,7 +223,6 @@ Cura.ExpandablePopup
id: buttonRow
anchors.bottom: parent.bottom
- anchors.horizontalCenter: parent.horizontalCenter
anchors.left: parent.left
anchors.right: parent.right
diff --git a/resources/themes/cura-dark/images/cura_connected_printers.svg b/resources/themes/cura-dark/images/cura_connected_printers.svg
new file mode 100644
index 0000000000..d7d0dc9d23
--- /dev/null
+++ b/resources/themes/cura-dark/images/cura_connected_printers.svg
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 298 271">
+ <defs>
+ <style>
+ .cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6, .cls-7, .cls-8, .cls-9, .cls-10 {
+ stroke: #f3f3f3;
+ }
+
+ .cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6, .cls-8, .cls-11, .cls-9, .cls-10 {
+ stroke-miterlimit: 10;
+ }
+
+ .cls-1, .cls-12, .cls-4, .cls-10 {
+ fill: #555557;
+ }
+
+ .cls-1, .cls-9 {
+ stroke-width: 1.8px;
+ }
+
+ .cls-2 {
+ stroke-dasharray: 0 0 4 4;
+ }
+
+ .cls-2, .cls-3, .cls-4, .cls-5, .cls-6, .cls-7, .cls-8, .cls-11, .cls-10 {
+ stroke-width: 2px;
+ }
+
+ .cls-2, .cls-3, .cls-5, .cls-6, .cls-7, .cls-8, .cls-11, .cls-9 {
+ fill: none;
+ }
+
+ .cls-13 {
+ fill: #f3f3f3;
+ }
+
+ .cls-14 {
+ fill: #1f1f20;
+ }
+
+ .cls-3 {
+ stroke-dasharray: 0 0 4 4;
+ }
+
+ .cls-5 {
+ stroke-dasharray: 0 0 3.9 3.9;
+ }
+
+ .cls-6 {
+ stroke-dasharray: 0 0 3.81 3.81;
+ }
+
+ .cls-7 {
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ }
+
+ .cls-11 {
+ stroke: #061884;
+ }
+
+ .cls-10 {
+ stroke-dasharray: 0 4;
+ }
+ </style>
+ </defs>
+ <g id="a">
+ <line class="cls-11" x1="150" y1="98" x2="150" y2="100"/>
+ <g>
+ <line class="cls-8" x1="150" y1="46" x2="150" y2="48"/>
+ <line class="cls-6" x1="150" y1="51.81" x2="150" y2="88.04"/>
+ <line class="cls-8" x1="150" y1="89.95" x2="150" y2="91.95"/>
+ </g>
+ <g>
+ <line class="cls-8" x1="227" y1="46" x2="227" y2="48"/>
+ <line class="cls-3" x1="227" y1="52" x2="227" y2="66"/>
+ <line class="cls-8" x1="227" y1="68" x2="227" y2="70"/>
+ </g>
+ <g>
+ <line class="cls-8" x1="73" y1="46" x2="73" y2="48"/>
+ <line class="cls-2" x1="73" y1="52" x2="73" y2="66.01"/>
+ <line class="cls-8" x1="73" y1="68.02" x2="73" y2="70.02"/>
+ </g>
+ <line class="cls-10" x1="74" y1="69" x2="72" y2="69"/>
+ <g>
+ <line class="cls-8" x1="228.01" y1="69" x2="226.01" y2="69"/>
+ <line class="cls-5" x1="222.11" y1="69" x2="75.95" y2="69"/>
+ <line class="cls-8" x1="74" y1="69" x2="72" y2="69"/>
+ </g>
+ <path class="cls-13" d="M91,0V36h-6.33l-4-3h-15.33l-4,3h-6.33V0h36Zm-2,2H57V34h3.67l4-3h16.67l4,3h3.67V2Zm-4,23c0,1.66-1.34,3-3,3h-18c-1.66,0-3-1.34-3-3V5h24V25Zm-15-18v3h6v-3h-6Zm13,0h-5v5h-10V7h-5V26h20V7Z"/>
+ <path class="cls-13" d="M168,0V36h-6.33l-4-3h-15.33l-4,3h-6.33V0h36Zm-2,2h-32V34h3.67l4-3h16.67l4,3h3.67V2Zm-4,23c0,1.66-1.34,3-3,3h-18c-1.66,0-3-1.34-3-3V5h24V25Zm-15-18v3h6v-3h-6Zm13,0h-5v5h-10V7h-5V26h20V7Z"/>
+ <path class="cls-13" d="M245,0V36h-6.33l-4-3h-15.33l-4,3h-6.33V0h36Zm-2,2h-32V34h3.67l4-3h16.67l4,3h3.67V2Zm-4,23c0,1.66-1.34,3-3,3h-18c-1.66,0-3-1.34-3-3V5h24V25Zm-15-18v3h6v-3h-6Zm13,0h-5v5h-10V7h-5V26h20V7Z"/>
+ <path class="cls-4" d="M28,97.1V254h242V97.1h0c0-3.37-2.73-6.1-6.1-6.1H34.1c-3.37,0-6.1,2.73-6.1,6.1Z"/>
+ <path class="cls-14" d="M261,255c.55,0,1-.45,1-1V102c0-1.66-1.34-3-3-3H38c-1.1,0-2,.9-2,2V254c0,.55,.45,1,1,1h224Z"/>
+ <path class="cls-13" d="M259,100H38c-.55,0-1,.45-1,1V254h224V102c0-1.1-.9-2-2-2m4,2V254c0,1.1-.9,2-2,2H37c-1.1,0-2-.9-2-2V101c0-1.66,1.34-3,3-3h221c2.21,0,4,1.79,4,4Z"/>
+ <path class="cls-12" d="M259,102H39V252h220V102m2,0V254H37V101c0-.55,.45-1,1-1h221c1.1,0,2,.9,2,2Z"/>
+ <line class="cls-7" x1="297" y1="270" x2="1" y2="270"/>
+ <path class="cls-12" d="M276.89,270c8.28,0,14.99-6.72,15-15,0-.55-.45-1-1-1H7.11c-.55,0-1,.45-1,1,0,8.28,6.72,14.99,15,15h255.77Z"/>
+ <path class="cls-13" d="M290.89,255H7.11c0,7.73,6.27,14,14,14h255.77c7.73,0,14-6.27,14-14m2,0c-.01,8.83-7.17,15.99-16,16H21.11c-8.83-.01-15.99-7.17-16-16,0-1.1,.9-2,2-2H290.89c1.1,0,2,.9,2,2Zm-2,2h0Z"/>
+ <path class="cls-13" d="M172,254.61c0,2.43-1.97,4.39-4.39,4.39h-36.21c-2.43,0-4.39-1.97-4.39-4.39v-.61h45v.61Z"/>
+ <polygon class="cls-8" points="191.31 191.39 191.31 131.89 131.81 131.89 106.31 157.39 106.31 216.89 165.81 216.89 191.31 191.39"/>
+ <path class="cls-8" d="M161.56,195.64h-12.75c-11.74,0-21.25-9.51-21.25-21.25s9.51-21.25,21.25-21.25h12.75"/>
+ <path class="cls-14" d="M209.37,134.96c0-9.8-7.91-17.77-17.71-17.84-9.85-.07-17.9,7.85-17.97,17.71-.07,9.85,7.85,17.9,17.71,17.97,9.89,.03,17.93-7.96,17.97-17.84Z"/>
+ <path class="cls-14" d="M191.39,118.62c-9.06-.04-16.44,7.28-16.47,16.34,0,8.97,7.24,16.27,16.21,16.34,9.02,.07,16.4-7.18,16.47-16.21,.07-9.02-7.18-16.4-16.21-16.47m19.47,16.34c0,10.63-8.58,19.27-19.21,19.34-10.68,.07-19.4-8.53-19.47-19.21-.07-10.68,8.53-19.4,19.21-19.47,10.71-.02,19.42,8.63,19.47,19.34Z"/>
+ <ellipse class="cls-9" cx="191.39" cy="134.96" rx="16.47" ry="16.34"/>
+ <path class="cls-9" d="M191.39,118.62c-2.84,2.76-4.62,6.68-5.55,11.18-.69,3.41-.69,6.91,0,10.32,.93,4.5,2.71,8.42,5.55,11.18"/>
+ <path class="cls-9" d="M191.39,151.3c2.84-3.16,4.76-7.02,5.58-11.18,.65-3.41,.65-6.91,0-10.32-.82-4.16-2.75-8.02-5.58-11.18"/>
+ <line class="cls-1" x1="207" y1="140.12" x2="175.79" y2="140.12"/>
+ <line class="cls-1" x1="207" y1="129.8" x2="175.79" y2="129.8"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/resources/themes/cura-light/images/illustration_connect_printers.svg b/resources/themes/cura-light/images/cura_connected_printers.svg
index d18302bdf1..d18302bdf1 100644
--- a/resources/themes/cura-light/images/illustration_connect_printers.svg
+++ b/resources/themes/cura-light/images/cura_connected_printers.svg