mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-12-05 16:51:12 -07:00
Fixes for better decorators using pyqtProperty
This commit is contained in:
parent
75840426d7
commit
df16108938
2 changed files with 16 additions and 9 deletions
|
|
@ -34,8 +34,10 @@ class MachineAction(QObject, PluginObject):
|
|||
self._view = None
|
||||
self._finished = False
|
||||
self._open_as_dialog = True
|
||||
self._visible = True
|
||||
|
||||
labelChanged = pyqtSignal()
|
||||
visibilityChanged = pyqtSignal()
|
||||
onFinished = pyqtSignal()
|
||||
|
||||
def getKey(self) -> str:
|
||||
|
|
@ -125,8 +127,8 @@ class MachineAction(QObject, PluginObject):
|
|||
def getDisplayItem(self) -> Optional["QObject"]:
|
||||
return self._createViewFromQML()
|
||||
|
||||
@pyqtSlot(result = bool)
|
||||
def openAsDialog(self) -> bool:
|
||||
@pyqtProperty(bool, constant=True)
|
||||
def shouldOpenAsDialog(self) -> bool:
|
||||
"""Whether this action will show a dialog.
|
||||
|
||||
If not, the action will directly run the function inside execute().
|
||||
|
|
@ -135,9 +137,15 @@ class MachineAction(QObject, PluginObject):
|
|||
"""
|
||||
|
||||
return self._open_as_dialog
|
||||
|
||||
@pyqtSlot(result = bool)
|
||||
def isVisible(self) -> bool:
|
||||
|
||||
@pyqtSlot()
|
||||
def setVisible(self, visible: bool) -> None:
|
||||
if self._visible != visible:
|
||||
self._visible = visible
|
||||
self.visibilityChanged.emit()
|
||||
|
||||
@pyqtProperty(bool, notify = visibilityChanged)
|
||||
def visible(self) -> bool:
|
||||
"""Whether this action button will be visible.
|
||||
|
||||
Example: Show only when isLoggedIn
|
||||
|
|
@ -145,5 +153,4 @@ class MachineAction(QObject, PluginObject):
|
|||
:return: Defaults to true to be in line with the old behaviour.
|
||||
"""
|
||||
|
||||
return True
|
||||
|
||||
self._visible
|
||||
Loading…
Add table
Add a link
Reference in a new issue