mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-02 00:34:26 +08:00
Don't blow up at plugin start up due to the plugin path not being ready yet
CL-555
This commit is contained in:
parent
d11b229118
commit
3c69442ceb
@ -19,6 +19,7 @@ from UM.Message import Message
|
|||||||
from UM.OutputDevice import OutputDeviceError
|
from UM.OutputDevice import OutputDeviceError
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from UM.Qt.Duration import Duration, DurationFormat
|
from UM.Qt.Duration import Duration, DurationFormat
|
||||||
|
from UM.PluginRegistry import PluginRegistry
|
||||||
|
|
||||||
from . import NetworkPrinterOutputDevice
|
from . import NetworkPrinterOutputDevice
|
||||||
|
|
||||||
@ -36,7 +37,7 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte
|
|||||||
printersChanged = pyqtSignal()
|
printersChanged = pyqtSignal()
|
||||||
selectedPrinterChanged = pyqtSignal()
|
selectedPrinterChanged = pyqtSignal()
|
||||||
|
|
||||||
def __init__(self, key, address, properties, api_prefix, plugin_path):
|
def __init__(self, key, address, properties, api_prefix):
|
||||||
super().__init__(key, address, properties, api_prefix)
|
super().__init__(key, address, properties, api_prefix)
|
||||||
# Store the address of the master.
|
# Store the address of the master.
|
||||||
self._master_address = address
|
self._master_address = address
|
||||||
@ -47,7 +48,6 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte
|
|||||||
name = key
|
name = key
|
||||||
|
|
||||||
self._authentication_state = NetworkPrinterOutputDevice.AuthState.Authenticated # The printer is always authenticated
|
self._authentication_state = NetworkPrinterOutputDevice.AuthState.Authenticated # The printer is always authenticated
|
||||||
self._plugin_path = plugin_path
|
|
||||||
|
|
||||||
self.setName(name)
|
self.setName(name)
|
||||||
description = i18n_catalog.i18nc("@action:button Preceded by 'Ready to'.", "Print over network")
|
description = i18n_catalog.i18nc("@action:button Preceded by 'Ready to'.", "Print over network")
|
||||||
@ -709,3 +709,14 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte
|
|||||||
@pyqtSlot(int, result=str)
|
@pyqtSlot(int, result=str)
|
||||||
def formatDuration(self, seconds):
|
def formatDuration(self, seconds):
|
||||||
return Duration(seconds).getDisplayString(DurationFormat.Format.Short)
|
return Duration(seconds).getDisplayString(DurationFormat.Format.Short)
|
||||||
|
|
||||||
|
## For cluster below
|
||||||
|
def _get_plugin_directory_name(self):
|
||||||
|
current_file_absolute_path = os.path.realpath(__file__)
|
||||||
|
directory_path = os.path.dirname(current_file_absolute_path)
|
||||||
|
_, directory_name = os.path.split(directory_path)
|
||||||
|
return directory_name
|
||||||
|
|
||||||
|
@property
|
||||||
|
def _plugin_path(self):
|
||||||
|
return PluginRegistry.getInstance().getPluginPath(self._get_plugin_directory_name())
|
||||||
|
@ -220,7 +220,7 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin):
|
|||||||
cluster_size = int(properties.get(b"cluster_size", -1))
|
cluster_size = int(properties.get(b"cluster_size", -1))
|
||||||
if force_cluster or cluster_size >= 0:
|
if force_cluster or cluster_size >= 0:
|
||||||
printer = NetworkClusterPrinterOutputDevice.NetworkClusterPrinterOutputDevice(
|
printer = NetworkClusterPrinterOutputDevice.NetworkClusterPrinterOutputDevice(
|
||||||
name, address, properties, self._api_prefix, self._plugin_path)
|
name, address, properties, self._api_prefix)
|
||||||
else:
|
else:
|
||||||
printer = NetworkPrinterOutputDevice.NetworkPrinterOutputDevice(name, address, properties, self._api_prefix)
|
printer = NetworkPrinterOutputDevice.NetworkPrinterOutputDevice(name, address, properties, self._api_prefix)
|
||||||
self._printers[printer.getKey()] = printer
|
self._printers[printer.getKey()] = printer
|
||||||
@ -285,17 +285,6 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin):
|
|||||||
Logger.log("d", "Bonjour service removed: %s" % name)
|
Logger.log("d", "Bonjour service removed: %s" % name)
|
||||||
self.removePrinterSignal.emit(str(name))
|
self.removePrinterSignal.emit(str(name))
|
||||||
|
|
||||||
## For cluster below
|
|
||||||
def _get_plugin_directory_name(self):
|
|
||||||
current_file_absolute_path = os.path.realpath(__file__)
|
|
||||||
directory_path = os.path.dirname(current_file_absolute_path)
|
|
||||||
_, directory_name = os.path.split(directory_path)
|
|
||||||
return directory_name
|
|
||||||
|
|
||||||
@property
|
|
||||||
def _plugin_path(self):
|
|
||||||
return PluginRegistry.getInstance().getPluginPath(self._get_plugin_directory_name())
|
|
||||||
|
|
||||||
@pyqtSlot()
|
@pyqtSlot()
|
||||||
def openControlPanel(self):
|
def openControlPanel(self):
|
||||||
Logger.log("d", "Opening print jobs web UI...")
|
Logger.log("d", "Opening print jobs web UI...")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user