Use application singleton instead of locally cached application

This commit is contained in:
ChrisTerBeke 2018-11-26 13:33:14 +01:00
parent 620ba8f21d
commit 21c81603b4
3 changed files with 12 additions and 12 deletions

View file

@ -7,8 +7,8 @@ from PyQt5.QtCore import QUrl
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkReply, QHttpMultiPart, QNetworkRequest, QHttpPart, \ from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkReply, QHttpMultiPart, QNetworkRequest, QHttpPart, \
QAuthenticator QAuthenticator
from UM.Application import Application
from UM.Logger import Logger from UM.Logger import Logger
from cura.CuraApplication import CuraApplication
## Abstraction of QNetworkAccessManager for easier networking in Cura. ## Abstraction of QNetworkAccessManager for easier networking in Cura.
@ -17,9 +17,6 @@ class NetworkClient:
def __init__(self) -> None: def __init__(self) -> None:
# Use the given application instance or get the singleton instance.
self._application = CuraApplication.getInstance()
# Network manager instance to use for this client. # Network manager instance to use for this client.
self._manager = None # type: Optional[QNetworkAccessManager] self._manager = None # type: Optional[QNetworkAccessManager]
@ -29,7 +26,8 @@ class NetworkClient:
self._last_request_time = None # type: Optional[float] self._last_request_time = None # type: Optional[float]
# The user agent of Cura. # The user agent of Cura.
self._user_agent = "%s/%s " % (self._application.getApplicationName(), self._application.getVersion()) application = Application.getInstance()
self._user_agent = "%s/%s " % (application.getApplicationName(), application.getVersion())
# Uses to store callback methods for finished network requests. # Uses to store callback methods for finished network requests.
# This allows us to register network calls with a callback directly instead of having to dissect the reply. # This allows us to register network calls with a callback directly instead of having to dissect the reply.

View file

@ -6,6 +6,7 @@ from typing import Dict, Optional
from PyQt5.QtNetwork import QNetworkRequest, QNetworkReply from PyQt5.QtNetwork import QNetworkRequest, QNetworkReply
from UM.Logger import Logger from UM.Logger import Logger
from cura.CuraApplication import CuraApplication
from cura.NetworkClient import NetworkClient from cura.NetworkClient import NetworkClient
from plugins.UM3NetworkPrinting.src.Cloud.CloudOutputDevice import CloudOutputDevice from plugins.UM3NetworkPrinting.src.Cloud.CloudOutputDevice import CloudOutputDevice
from .Models import Cluster from .Models import Cluster
@ -26,14 +27,15 @@ class CloudOutputDeviceManager(NetworkClient):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
self._output_device_manager = self._application.getOutputDeviceManager()
self._account = self._application.getCuraAPI().account
# Persistent dict containing the remote clusters for the authenticated user. # Persistent dict containing the remote clusters for the authenticated user.
self._remote_clusters = {} # type: Dict[str, CloudOutputDevice] self._remote_clusters = {} # type: Dict[str, CloudOutputDevice]
application = CuraApplication.getInstance()
self._output_device_manager = application.getOutputDeviceManager()
self._account = application.getCuraAPI().account
# When switching machines we check if we have to activate a remote cluster. # When switching machines we check if we have to activate a remote cluster.
self._application.globalContainerStackChanged.connect(self._activeMachineChanged) application.globalContainerStackChanged.connect(self._activeMachineChanged)
# Fetch all remote clusters for the authenticated user. # Fetch all remote clusters for the authenticated user.
# TODO: update remote clusters periodically # TODO: update remote clusters periodically
@ -96,7 +98,7 @@ class CloudOutputDeviceManager(NetworkClient):
## Callback for when the active machine was changed by the user. ## Callback for when the active machine was changed by the user.
def _activeMachineChanged(self): def _activeMachineChanged(self):
active_machine = self._application.getGlobalContainerStack() active_machine = CuraApplication.getInstance().getGlobalContainerStack()
if not active_machine: if not active_machine:
return return