diff options
author | Lipu Fei <lipu.fei815@gmail.com> | 2018-10-19 10:38:39 +0300 |
---|---|---|
committer | Lipu Fei <lipu.fei815@gmail.com> | 2018-10-19 10:58:06 +0300 |
commit | c1b9d527bb1d72e95b76c8ebe18eea6b8e702446 (patch) | |
tree | 374e6469444b4ad122ec21eeb8a2fa5bf2af9652 /cura/MachineAction.py | |
parent | 9b94db8957fcd3c6f6bdddab6708406a276e1ee9 (diff) |
Add typing for MachineAction
CURA-5812
Diffstat (limited to 'cura/MachineAction.py')
-rw-r--r-- | cura/MachineAction.py | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/cura/MachineAction.py b/cura/MachineAction.py index 969fef0edf..94b096f9c1 100644 --- a/cura/MachineAction.py +++ b/cura/MachineAction.py @@ -1,13 +1,13 @@ # Copyright (c) 2016 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +import os + from PyQt5.QtCore import QObject, pyqtSlot, pyqtProperty, pyqtSignal +from UM.Logger import Logger from UM.PluginObject import PluginObject from UM.PluginRegistry import PluginRegistry -from UM.Application import Application - -import os ## Machine actions are actions that are added to a specific machine type. Examples of such actions are @@ -19,7 +19,7 @@ class MachineAction(QObject, PluginObject): ## Create a new Machine action. # \param key unique key of the machine action # \param label Human readable label used to identify the machine action. - def __init__(self, key, label = ""): + def __init__(self, key: str, label: str = "") -> None: super().__init__() self._key = key self._label = label @@ -30,14 +30,14 @@ class MachineAction(QObject, PluginObject): labelChanged = pyqtSignal() onFinished = pyqtSignal() - def getKey(self): + def getKey(self) -> str: return self._key @pyqtProperty(str, notify = labelChanged) - def label(self): + def label(self) -> str: return self._label - def setLabel(self, label): + def setLabel(self, label: str) -> None: if self._label != label: self._label = label self.labelChanged.emit() @@ -46,29 +46,35 @@ class MachineAction(QObject, PluginObject): # This should not be re-implemented by child classes, instead re-implement _reset. # /sa _reset @pyqtSlot() - def reset(self): + def reset(self) -> None: self._finished = False self._reset() ## Protected implementation of reset. # /sa reset() - def _reset(self): + def _reset(self) -> None: pass @pyqtSlot() - def setFinished(self): + def setFinished(self) -> None: self._finished = True self._reset() self.onFinished.emit() @pyqtProperty(bool, notify = onFinished) - def finished(self): + def finished(self) -> bool: return self._finished ## Protected helper to create a view object based on provided QML. - def _createViewFromQML(self): - path = os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), self._qml_url) - self._view = Application.getInstance().createQmlComponent(path, {"manager": self}) + def _createViewFromQML(self) -> None: + plugin_path = PluginRegistry.getInstance().getPluginPath(self.getPluginId()) + if plugin_path is None: + Logger.log("e", "Cannot create QML view: cannot find plugin path for plugin [%s]", self.getPluginId()) + return + path = os.path.join(plugin_path, self._qml_url) + + from cura.CuraApplication import CuraApplication + self._view = CuraApplication.getInstance().createQmlComponent(path, {"manager": self}) @pyqtProperty(QObject, constant = True) def displayItem(self): |