Add an cloud unavailable icon to the active printer icon

CURA-7437
This commit is contained in:
Nino van Hooff 2020-05-20 17:20:40 +02:00
parent b135da866a
commit eef347ed6c
6 changed files with 40 additions and 10 deletions

View file

@ -491,6 +491,10 @@ class MachineManager(QObject):
# A cloud connection is only available if any output device actually is a cloud connected device. # A cloud connection is only available if any output device actually is a cloud connected device.
return any(d.connectionType == ConnectionType.CloudConnection for d in self._printer_output_devices) return any(d.connectionType == ConnectionType.CloudConnection for d in self._printer_output_devices)
@pyqtProperty(bool, notify = printerConnectedStatusChanged)
def activeMachineHasCloudRegistration(self) -> bool:
return self.activeMachine is not None and ConnectionType.CloudConnection in self.activeMachine.configuredConnectionTypes
@pyqtProperty(bool, notify = printerConnectedStatusChanged) @pyqtProperty(bool, notify = printerConnectedStatusChanged)
def activeMachineIsUsingCloudConnection(self) -> bool: def activeMachineIsUsingCloudConnection(self) -> bool:
return self.activeMachineHasCloudConnection and not self.activeMachineHasNetworkConnection return self.activeMachineHasCloudConnection and not self.activeMachineHasNetworkConnection

View file

@ -106,8 +106,8 @@ class CloudOutputDeviceManager:
self._onDevicesDiscovered(new_clusters) self._onDevicesDiscovered(new_clusters)
removed_device_keys = set(self._remote_clusters.keys()) - set(online_clusters.keys()) removed_device_keys = set(self._remote_clusters.keys()) - set(online_clusters.keys())
for device_id in removed_device_keys: # for device_id in removed_device_keys:
self._onDiscoveredDeviceRemoved(device_id) # self._onDiscoveredDeviceRemoved(device_id)
if new_clusters or removed_device_keys: if new_clusters or removed_device_keys:
self.discoveredDevicesChanged.emit() self.discoveredDevicesChanged.emit()

View file

@ -265,7 +265,7 @@ class LocalClusterOutputDeviceManager:
## Nudge the user to start using Ultimaker Cloud. ## Nudge the user to start using Ultimaker Cloud.
@staticmethod @staticmethod
def _showCloudFlowMessage(device: LocalClusterOutputDevice) -> None: def _showCloudFlowMessage(device: LocalClusterOutputDevice) -> None:
if CuraApplication.getInstance().getMachineManager().activeMachineIsUsingCloudConnection: if CuraApplication.getInstance().getMachineManager().activeMachineHasCloudRegistration:
# This printer is already cloud connected, so we do not bother the user anymore. # This printer is already cloud connected, so we do not bother the user anymore.
return return
if not CuraApplication.getInstance().getCuraAPI().account.isLoggedIn: if not CuraApplication.getInstance().getCuraAPI().account.isLoggedIn:

View file

@ -5,14 +5,15 @@ import QtQuick 2.7
import QtQuick.Controls 2.3 import QtQuick.Controls 2.3
import UM 1.2 as UM import UM 1.2 as UM
import Cura 1.0 as Cura import Cura 1.1 as Cura
Cura.ExpandablePopup Cura.ExpandablePopup
{ {
id: machineSelector id: machineSelector
property bool isNetworkPrinter: Cura.MachineManager.activeMachineHasNetworkConnection property bool isNetworkPrinter: Cura.MachineManager.activeMachineHasNetworkConnection
property bool isCloudPrinter: Cura.MachineManager.activeMachineHasCloudConnection property bool isConnectedCloudPrinter: Cura.MachineManager.activeMachineHasCloudConnection
property bool isCloudRegistered: Cura.MachineManager.activeMachineHasCloudRegistration
property bool isGroup: Cura.MachineManager.activeMachineIsGroup property bool isGroup: Cura.MachineManager.activeMachineIsGroup
contentPadding: UM.Theme.getSize("default_lining").width contentPadding: UM.Theme.getSize("default_lining").width
@ -44,7 +45,7 @@ Cura.ExpandablePopup
{ {
return UM.Theme.getIcon("printer_group") return UM.Theme.getIcon("printer_group")
} }
else if (isNetworkPrinter || isCloudPrinter) else if (isNetworkPrinter || isCloudRegistered)
{ {
return UM.Theme.getIcon("printer_single") return UM.Theme.getIcon("printer_single")
} }
@ -72,10 +73,14 @@ Cura.ExpandablePopup
{ {
return UM.Theme.getIcon("printer_connected") return UM.Theme.getIcon("printer_connected")
} }
else if (isCloudPrinter) else if (isConnectedCloudPrinter)
{ {
return UM.Theme.getIcon("printer_cloud_connected") return UM.Theme.getIcon("printer_cloud_connected")
} }
else if (isCloudRegistered)
{
return UM.Theme.getIcon("printer_cloud_not_available")
}
else else
{ {
return "" return ""
@ -85,8 +90,9 @@ Cura.ExpandablePopup
width: UM.Theme.getSize("printer_status_icon").width width: UM.Theme.getSize("printer_status_icon").width
height: UM.Theme.getSize("printer_status_icon").height height: UM.Theme.getSize("printer_status_icon").height
color: UM.Theme.getColor("primary") color: source == UM.Theme.getIcon("printer_cloud_not_available") ? UM.Theme.getColor("cloud_unavailable") : UM.Theme.getColor("primary")
visible: isNetworkPrinter || isCloudPrinter
visible: isNetworkPrinter || isCloudRegistered
// Make a themable circle in the background so we can change it in other themes // Make a themable circle in the background so we can change it in other themes
Rectangle Rectangle

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>Artboard Copy 4</title>
<desc>Created with Sketch.</desc>
<defs>
<path d="M6,0 C9.3137085,0 12,2.6862915 12,6 C12,9.3137085 9.3137085,12 6,12 C2.6862915,12 0,9.3137085 0,6 C0,2.6862915 2.6862915,0 6,0 Z M5.2,3 C4.08,3 3.2,3.91666667 3.2,5.08333333 L3.2,5.125 L3.2,5.125 C2.52,5.20833333 2,5.83333333 2,6.54166667 C2,7.33333333 2.64,8 3.4,8 L8.6,8 L8.6,8 C9.36,8 10,7.33333333 10,6.54166667 C10,5.79166667 9.48,5.20833333 8.8,5.08333333 C8.72,4.375 8.12,3.83333333 7.4,3.83333333 C7.2,3.83333333 7.04,3.875 6.88,3.95833333 C6.52,3.375 5.88,3 5.2,3 Z" id="path-1"></path>
</defs>
<g id="Artboard-Copy-4" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect id="Rectangle" fill="#999999" transform="translate(7.187184, 7.187184) scale(-1, 1) rotate(45.000000) translate(-7.187184, -7.187184) " x="6.43718434" y="-0.812815665" width="1.5" height="16" rx="0.75"></rect>
<g id="Path" transform="translate(1.000000, 1.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<use id="Combined-Shape" fill="#999999" xlink:href="#path-1"></use>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -438,7 +438,9 @@
"monitor_shadow": [200, 200, 200, 255], "monitor_shadow": [200, 200, 200, 255],
"monitor_carousel_dot": [216, 216, 216, 255], "monitor_carousel_dot": [216, 216, 216, 255],
"monitor_carousel_dot_current": [119, 119, 119, 255] "monitor_carousel_dot_current": [119, 119, 119, 255],
"cloud_unavailable": [153, 153, 153, 255]
}, },
"sizes": { "sizes": {