mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-08-06 05:23:58 -06:00
Added machine action dialog optional
Based on this change, users will be able to run their machine action plugins code just by clicking the action button, so without having to open a modal.
This commit is contained in:
parent
ed14e3bd44
commit
75840426d7
2 changed files with 29 additions and 4 deletions
|
@ -33,6 +33,7 @@ class MachineAction(QObject, PluginObject):
|
|||
self._qml_url = ""
|
||||
self._view = None
|
||||
self._finished = False
|
||||
self._open_as_dialog = True
|
||||
|
||||
labelChanged = pyqtSignal()
|
||||
onFinished = pyqtSignal()
|
||||
|
@ -79,6 +80,15 @@ class MachineAction(QObject, PluginObject):
|
|||
|
||||
pass
|
||||
|
||||
@pyqtSlot()
|
||||
def execute(self) -> None:
|
||||
self._execute()
|
||||
|
||||
def _execute(self) -> None:
|
||||
"""Protected implementation of execute."""
|
||||
|
||||
pass
|
||||
|
||||
@pyqtSlot()
|
||||
def setFinished(self) -> None:
|
||||
self._finished = True
|
||||
|
@ -115,6 +125,17 @@ class MachineAction(QObject, PluginObject):
|
|||
def getDisplayItem(self) -> Optional["QObject"]:
|
||||
return self._createViewFromQML()
|
||||
|
||||
@pyqtSlot(result = bool)
|
||||
def openAsDialog(self) -> bool:
|
||||
"""Whether this action will show a dialog.
|
||||
|
||||
If not, the action will directly run the function inside execute().
|
||||
|
||||
:return: Defaults to true to be in line with the old behaviour.
|
||||
"""
|
||||
|
||||
return self._open_as_dialog
|
||||
|
||||
@pyqtSlot(result = bool)
|
||||
def isVisible(self) -> bool:
|
||||
"""Whether this action button will be visible.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue