mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-07 06:57:28 -06:00
Process Review feedback for CURA-7438
Renames UltimakerCloudAuthentication to UltimakerCloudConstants Cura-7438
This commit is contained in:
parent
167a4c1f58
commit
1024879f9d
9 changed files with 31 additions and 25 deletions
|
@ -10,7 +10,7 @@ from UM.Message import Message
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from cura.OAuth2.AuthorizationService import AuthorizationService
|
from cura.OAuth2.AuthorizationService import AuthorizationService
|
||||||
from cura.OAuth2.Models import OAuth2Settings
|
from cura.OAuth2.Models import OAuth2Settings
|
||||||
from cura.UltimakerCloud import UltimakerCloudAuthentication
|
from cura.UltimakerCloud import UltimakerCloudConstants
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from cura.CuraApplication import CuraApplication
|
from cura.CuraApplication import CuraApplication
|
||||||
|
@ -69,7 +69,7 @@ class Account(QObject):
|
||||||
self._last_sync_str = "-"
|
self._last_sync_str = "-"
|
||||||
|
|
||||||
self._callback_port = 32118
|
self._callback_port = 32118
|
||||||
self._oauth_root = UltimakerCloudAuthentication.CuraCloudAccountAPIRoot
|
self._oauth_root = UltimakerCloudConstants.CuraCloudAccountAPIRoot
|
||||||
|
|
||||||
self._oauth_settings = OAuth2Settings(
|
self._oauth_settings = OAuth2Settings(
|
||||||
OAUTH_SERVER_URL= self._oauth_root,
|
OAUTH_SERVER_URL= self._oauth_root,
|
||||||
|
|
|
@ -4,14 +4,14 @@ from PyQt5.QtCore import QObject, pyqtSignal, QTimer, pyqtProperty
|
||||||
from PyQt5.QtNetwork import QNetworkReply
|
from PyQt5.QtNetwork import QNetworkReply
|
||||||
|
|
||||||
from UM.TaskManagement.HttpRequestManager import HttpRequestManager
|
from UM.TaskManagement.HttpRequestManager import HttpRequestManager
|
||||||
from cura.UltimakerCloud import UltimakerCloudAuthentication
|
from cura.UltimakerCloud import UltimakerCloudConstants
|
||||||
|
|
||||||
|
|
||||||
class ConnectionStatus(QObject):
|
class ConnectionStatus(QObject):
|
||||||
"""Status info for some web services"""
|
"""Status info for some web services"""
|
||||||
|
|
||||||
UPDATE_INTERVAL = 10.0 # seconds
|
UPDATE_INTERVAL = 10.0 # seconds
|
||||||
ULTIMAKER_CLOUD_STATUS_URL = UltimakerCloudAuthentication.CuraCloudAPIRoot + "/connect/v1/"
|
ULTIMAKER_CLOUD_STATUS_URL = UltimakerCloudConstants.CuraCloudAPIRoot + "/connect/v1/"
|
||||||
|
|
||||||
__instance = None # type: Optional[ConnectionStatus]
|
__instance = None # type: Optional[ConnectionStatus]
|
||||||
|
|
||||||
|
|
|
@ -106,7 +106,7 @@ from cura.UI.RecommendedMode import RecommendedMode
|
||||||
from cura.UI.TextManager import TextManager
|
from cura.UI.TextManager import TextManager
|
||||||
from cura.UI.WelcomePagesModel import WelcomePagesModel
|
from cura.UI.WelcomePagesModel import WelcomePagesModel
|
||||||
from cura.UI.WhatsNewPagesModel import WhatsNewPagesModel
|
from cura.UI.WhatsNewPagesModel import WhatsNewPagesModel
|
||||||
from cura.UltimakerCloud import UltimakerCloudAuthentication
|
from cura.UltimakerCloud import UltimakerCloudConstants
|
||||||
from cura.Utils.NetworkingUtil import NetworkingUtil
|
from cura.Utils.NetworkingUtil import NetworkingUtil
|
||||||
from . import BuildVolume
|
from . import BuildVolume
|
||||||
from . import CameraAnimation
|
from . import CameraAnimation
|
||||||
|
@ -255,11 +255,11 @@ class CuraApplication(QtApplication):
|
||||||
|
|
||||||
@pyqtProperty(str, constant=True)
|
@pyqtProperty(str, constant=True)
|
||||||
def ultimakerCloudApiRootUrl(self) -> str:
|
def ultimakerCloudApiRootUrl(self) -> str:
|
||||||
return UltimakerCloudAuthentication.CuraCloudAPIRoot
|
return UltimakerCloudConstants.CuraCloudAPIRoot
|
||||||
|
|
||||||
@pyqtProperty(str, constant = True)
|
@pyqtProperty(str, constant = True)
|
||||||
def ultimakerCloudAccountRootUrl(self) -> str:
|
def ultimakerCloudAccountRootUrl(self) -> str:
|
||||||
return UltimakerCloudAuthentication.CuraCloudAccountAPIRoot
|
return UltimakerCloudConstants.CuraCloudAccountAPIRoot
|
||||||
|
|
||||||
def addCommandLineOptions(self):
|
def addCommandLineOptions(self):
|
||||||
"""Adds command line options to the command line parser.
|
"""Adds command line options to the command line parser.
|
||||||
|
|
|
@ -38,6 +38,7 @@ from cura.Settings.ExtruderStack import ExtruderStack
|
||||||
from cura.Settings.cura_empty_instance_containers import (empty_definition_changes_container, empty_variant_container,
|
from cura.Settings.cura_empty_instance_containers import (empty_definition_changes_container, empty_variant_container,
|
||||||
empty_material_container, empty_quality_container,
|
empty_material_container, empty_quality_container,
|
||||||
empty_quality_changes_container, empty_intent_container)
|
empty_quality_changes_container, empty_intent_container)
|
||||||
|
from cura.UltimakerCloud.UltimakerCloudConstants import META_UM_LINKED_TO_ACCOUNT
|
||||||
|
|
||||||
from .CuraStackBuilder import CuraStackBuilder
|
from .CuraStackBuilder import CuraStackBuilder
|
||||||
|
|
||||||
|
@ -493,7 +494,7 @@ class MachineManager(QObject):
|
||||||
|
|
||||||
@pyqtProperty(bool, notify = printerConnectedStatusChanged)
|
@pyqtProperty(bool, notify = printerConnectedStatusChanged)
|
||||||
def activeMachineIsLinkedToCurrentAccount(self) -> bool:
|
def activeMachineIsLinkedToCurrentAccount(self) -> bool:
|
||||||
return parseBool(self.activeMachine.getMetaDataEntry("linked_to_account", "True"))
|
return parseBool(self.activeMachine.getMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, "True"))
|
||||||
|
|
||||||
@pyqtProperty(bool, notify = printerConnectedStatusChanged)
|
@pyqtProperty(bool, notify = printerConnectedStatusChanged)
|
||||||
def activeMachineHasNetworkConnection(self) -> bool:
|
def activeMachineHasNetworkConnection(self) -> bool:
|
||||||
|
|
|
@ -8,6 +8,10 @@ DEFAULT_CLOUD_API_ROOT = "https://api.ultimaker.com" # type: str
|
||||||
DEFAULT_CLOUD_API_VERSION = "1" # type: str
|
DEFAULT_CLOUD_API_VERSION = "1" # type: str
|
||||||
DEFAULT_CLOUD_ACCOUNT_API_ROOT = "https://account.ultimaker.com" # type: str
|
DEFAULT_CLOUD_ACCOUNT_API_ROOT = "https://account.ultimaker.com" # type: str
|
||||||
|
|
||||||
|
# Container Metadata keys
|
||||||
|
META_UM_LINKED_TO_ACCOUNT = "um_linked_to_account"
|
||||||
|
"""(bool) Whether a cloud printer is linked to an Ultimaker account"""
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from cura.CuraVersion import CuraCloudAPIRoot # type: ignore
|
from cura.CuraVersion import CuraCloudAPIRoot # type: ignore
|
||||||
if CuraCloudAPIRoot == "":
|
if CuraCloudAPIRoot == "":
|
|
@ -1,13 +1,13 @@
|
||||||
# Copyright (c) 2018 Ultimaker B.V.
|
# Copyright (c) 2018 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from cura.UltimakerCloud import UltimakerCloudAuthentication
|
from cura.UltimakerCloud import UltimakerCloudConstants
|
||||||
|
|
||||||
|
|
||||||
class Settings:
|
class Settings:
|
||||||
# Keeps the plugin settings.
|
# Keeps the plugin settings.
|
||||||
DRIVE_API_VERSION = 1
|
DRIVE_API_VERSION = 1
|
||||||
DRIVE_API_URL = "{}/cura-drive/v{}".format(UltimakerCloudAuthentication.CuraCloudAPIRoot, str(DRIVE_API_VERSION))
|
DRIVE_API_URL = "{}/cura-drive/v{}".format(UltimakerCloudConstants.CuraCloudAPIRoot, str(DRIVE_API_VERSION))
|
||||||
|
|
||||||
AUTO_BACKUP_ENABLED_PREFERENCE_KEY = "cura_drive/auto_backup_enabled"
|
AUTO_BACKUP_ENABLED_PREFERENCE_KEY = "cura_drive/auto_backup_enabled"
|
||||||
AUTO_BACKUP_LAST_DATE_PREFERENCE_KEY = "cura_drive/auto_backup_date"
|
AUTO_BACKUP_LAST_DATE_PREFERENCE_KEY = "cura_drive/auto_backup_date"
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
from cura import ApplicationMetadata
|
from cura import ApplicationMetadata
|
||||||
from cura.UltimakerCloud import UltimakerCloudAuthentication
|
from cura.UltimakerCloud import UltimakerCloudConstants
|
||||||
|
|
||||||
|
|
||||||
class CloudApiModel:
|
class CloudApiModel:
|
||||||
sdk_version = ApplicationMetadata.CuraSDKVersion # type: Union[str, int]
|
sdk_version = ApplicationMetadata.CuraSDKVersion # type: Union[str, int]
|
||||||
cloud_api_version = UltimakerCloudAuthentication.CuraCloudAPIVersion # type: str
|
cloud_api_version = UltimakerCloudConstants.CuraCloudAPIVersion # type: str
|
||||||
cloud_api_root = UltimakerCloudAuthentication.CuraCloudAPIRoot # type: str
|
cloud_api_root = UltimakerCloudConstants.CuraCloudAPIRoot # type: str
|
||||||
api_url = "{cloud_api_root}/cura-packages/v{cloud_api_version}/cura/v{sdk_version}".format(
|
api_url = "{cloud_api_root}/cura-packages/v{cloud_api_version}/cura/v{sdk_version}".format(
|
||||||
cloud_api_root = cloud_api_root,
|
cloud_api_root = cloud_api_root,
|
||||||
cloud_api_version = cloud_api_version,
|
cloud_api_version = cloud_api_version,
|
||||||
|
|
|
@ -13,7 +13,7 @@ from UM.TaskManagement.HttpRequestManager import HttpRequestManager
|
||||||
from UM.TaskManagement.HttpRequestScope import JsonDecoratorScope
|
from UM.TaskManagement.HttpRequestScope import JsonDecoratorScope
|
||||||
from cura.API import Account
|
from cura.API import Account
|
||||||
from cura.CuraApplication import CuraApplication
|
from cura.CuraApplication import CuraApplication
|
||||||
from cura.UltimakerCloud import UltimakerCloudAuthentication
|
from cura.UltimakerCloud import UltimakerCloudConstants
|
||||||
from cura.UltimakerCloud.UltimakerCloudScope import UltimakerCloudScope
|
from cura.UltimakerCloud.UltimakerCloudScope import UltimakerCloudScope
|
||||||
from .ToolPathUploader import ToolPathUploader
|
from .ToolPathUploader import ToolPathUploader
|
||||||
from ..Models.BaseModel import BaseModel
|
from ..Models.BaseModel import BaseModel
|
||||||
|
@ -35,7 +35,7 @@ class CloudApiClient:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# The cloud URL to use for this remote cluster.
|
# The cloud URL to use for this remote cluster.
|
||||||
ROOT_PATH = UltimakerCloudAuthentication.CuraCloudAPIRoot
|
ROOT_PATH = UltimakerCloudConstants.CuraCloudAPIRoot
|
||||||
CLUSTER_API_ROOT = "{}/connect/v1".format(ROOT_PATH)
|
CLUSTER_API_ROOT = "{}/connect/v1".format(ROOT_PATH)
|
||||||
CURA_API_ROOT = "{}/cura/v1".format(ROOT_PATH)
|
CURA_API_ROOT = "{}/cura/v1".format(ROOT_PATH)
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
import os
|
import os
|
||||||
from typing import Dict, List, Optional, Set
|
from typing import Dict, List, Optional, Set
|
||||||
|
|
||||||
from PyQt5.QtCore import QTimer
|
|
||||||
from PyQt5.QtNetwork import QNetworkReply
|
from PyQt5.QtNetwork import QNetworkReply
|
||||||
|
|
||||||
from UM import i18nCatalog
|
from UM import i18nCatalog
|
||||||
|
@ -17,6 +16,7 @@ from cura.API.Account import SyncState
|
||||||
from cura.CuraApplication import CuraApplication
|
from cura.CuraApplication import CuraApplication
|
||||||
from cura.Settings.CuraStackBuilder import CuraStackBuilder
|
from cura.Settings.CuraStackBuilder import CuraStackBuilder
|
||||||
from cura.Settings.GlobalStack import GlobalStack
|
from cura.Settings.GlobalStack import GlobalStack
|
||||||
|
from cura.UltimakerCloud.UltimakerCloudConstants import META_UM_LINKED_TO_ACCOUNT
|
||||||
from .CloudApiClient import CloudApiClient
|
from .CloudApiClient import CloudApiClient
|
||||||
from .CloudOutputDevice import CloudOutputDevice
|
from .CloudOutputDevice import CloudOutputDevice
|
||||||
from ..Models.Http.CloudClusterResponse import CloudClusterResponse
|
from ..Models.Http.CloudClusterResponse import CloudClusterResponse
|
||||||
|
@ -31,8 +31,8 @@ class CloudOutputDeviceManager:
|
||||||
|
|
||||||
META_CLUSTER_ID = "um_cloud_cluster_id"
|
META_CLUSTER_ID = "um_cloud_cluster_id"
|
||||||
META_NETWORK_KEY = "um_network_key"
|
META_NETWORK_KEY = "um_network_key"
|
||||||
|
|
||||||
SYNC_SERVICE_NAME = "CloudOutputDeviceManager"
|
SYNC_SERVICE_NAME = "CloudOutputDeviceManager"
|
||||||
META_LINKED_TO_ACCOUNT = "linked_to_account"
|
|
||||||
|
|
||||||
# The translation catalog for this device.
|
# The translation catalog for this device.
|
||||||
I18N_CATALOG = i18nCatalog("cura")
|
I18N_CATALOG = i18nCatalog("cura")
|
||||||
|
@ -118,8 +118,8 @@ class CloudOutputDeviceManager:
|
||||||
for device_id, cluster_data in all_clusters.items():
|
for device_id, cluster_data in all_clusters.items():
|
||||||
if device_id not in self._remote_clusters:
|
if device_id not in self._remote_clusters:
|
||||||
new_clusters.append(cluster_data)
|
new_clusters.append(cluster_data)
|
||||||
if device_id in self._um_cloud_printers and not parseBool(self._um_cloud_printers[device_id].getMetaDataEntry(self.META_LINKED_TO_ACCOUNT, "true")):
|
if device_id in self._um_cloud_printers and not parseBool(self._um_cloud_printers[device_id].getMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, "true")):
|
||||||
self._um_cloud_printers[device_id].setMetaDataEntry(self.META_LINKED_TO_ACCOUNT, True)
|
self._um_cloud_printers[device_id].setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, True)
|
||||||
self._onDevicesDiscovered(new_clusters)
|
self._onDevicesDiscovered(new_clusters)
|
||||||
|
|
||||||
# Remove the CloudOutput device for offline printers
|
# Remove the CloudOutput device for offline printers
|
||||||
|
@ -170,8 +170,8 @@ class CloudOutputDeviceManager:
|
||||||
remote_clusters_added = True
|
remote_clusters_added = True
|
||||||
# If a printer that was removed from the account is re-added, change its metadata to mark it not removed
|
# If a printer that was removed from the account is re-added, change its metadata to mark it not removed
|
||||||
# from the account
|
# from the account
|
||||||
elif not parseBool(self._um_cloud_printers[device.key].getMetaDataEntry(self.META_LINKED_TO_ACCOUNT, "true")):
|
elif not parseBool(self._um_cloud_printers[device.key].getMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, "true")):
|
||||||
self._um_cloud_printers[device.key].setMetaDataEntry(self.META_LINKED_TO_ACCOUNT, True)
|
self._um_cloud_printers[device.key].setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, True)
|
||||||
|
|
||||||
# Inform the Cloud printers model about new devices.
|
# Inform the Cloud printers model about new devices.
|
||||||
new_devices_list_of_dicts = [{
|
new_devices_list_of_dicts = [{
|
||||||
|
@ -258,12 +258,12 @@ class CloudOutputDeviceManager:
|
||||||
# Do not report device ids which have been previously marked as non-linked to the account
|
# Do not report device ids which have been previously marked as non-linked to the account
|
||||||
ignored_device_ids = set()
|
ignored_device_ids = set()
|
||||||
for device_id in removed_device_ids:
|
for device_id in removed_device_ids:
|
||||||
if not parseBool(self._um_cloud_printers[device_id].getMetaDataEntry(self.META_LINKED_TO_ACCOUNT, "true")):
|
if not parseBool(self._um_cloud_printers[device_id].getMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, "true")):
|
||||||
ignored_device_ids.add(device_id)
|
ignored_device_ids.add(device_id)
|
||||||
# Keep the reported_device_ids list in a class variable, so that the message button actions can access it and
|
# Keep the reported_device_ids list in a class variable, so that the message button actions can access it and
|
||||||
# take the necessary steps to fulfill their purpose.
|
# take the necessary steps to fulfill their purpose.
|
||||||
self.reported_device_ids = removed_device_ids - ignored_device_ids
|
self.reported_device_ids = removed_device_ids - ignored_device_ids
|
||||||
if len(self.reported_device_ids) == 0:
|
if not self.reported_device_ids:
|
||||||
return
|
return
|
||||||
|
|
||||||
# Generate message
|
# Generate message
|
||||||
|
@ -291,19 +291,20 @@ class CloudOutputDeviceManager:
|
||||||
)
|
)
|
||||||
removed_printers_message.setText(message_text)
|
removed_printers_message.setText(message_text)
|
||||||
|
|
||||||
|
output_device_manager = CuraApplication.getInstance().getOutputDeviceManager()
|
||||||
|
|
||||||
# Remove the output device from the printers
|
# Remove the output device from the printers
|
||||||
for device_id in removed_device_ids:
|
for device_id in removed_device_ids:
|
||||||
device = self._um_cloud_printers.get(device_id, None) # type: Optional[GlobalStack]
|
device = self._um_cloud_printers.get(device_id, None) # type: Optional[GlobalStack]
|
||||||
if not device:
|
if not device:
|
||||||
continue
|
continue
|
||||||
output_device_manager = CuraApplication.getInstance().getOutputDeviceManager()
|
|
||||||
if device_id in output_device_manager.getOutputDeviceIds():
|
if device_id in output_device_manager.getOutputDeviceIds():
|
||||||
output_device_manager.removeOutputDevice(device_id)
|
output_device_manager.removeOutputDevice(device_id)
|
||||||
if device_id in self._remote_clusters:
|
if device_id in self._remote_clusters:
|
||||||
del self._remote_clusters[device_id]
|
del self._remote_clusters[device_id]
|
||||||
|
|
||||||
# Update the printer's metadata to mark it as not linked to the account
|
# Update the printer's metadata to mark it as not linked to the account
|
||||||
device.setMetaDataEntry(self.META_LINKED_TO_ACCOUNT, False)
|
device.setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, False)
|
||||||
|
|
||||||
removed_printers_message.show()
|
removed_printers_message.show()
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue