mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-20 20:46:28 +02:00
[commands] expose and use more UndoStack properties
This commit is contained in:
parent
2fcdc586a6
commit
e17d0ea240
2 changed files with 28 additions and 3 deletions
|
@ -1,8 +1,9 @@
|
|||
from PySide2 import QtWidgets
|
||||
from PySide2.QtWidgets import QUndoCommand, QUndoStack
|
||||
from PySide2.QtCore import Property, Signal
|
||||
from meshroom.processGraph.graph import Node
|
||||
|
||||
|
||||
class UndoCommand(QtWidgets.QUndoCommand):
|
||||
class UndoCommand(QUndoCommand):
|
||||
def __init__(self, parent=None):
|
||||
super(UndoCommand, self).__init__(parent)
|
||||
self._enabled = True
|
||||
|
@ -27,9 +28,15 @@ class UndoCommand(QtWidgets.QUndoCommand):
|
|||
pass
|
||||
|
||||
|
||||
class UndoStack(QtWidgets.QUndoStack):
|
||||
class UndoStack(QUndoStack):
|
||||
def __init__(self, parent=None):
|
||||
super(UndoStack, self).__init__(parent)
|
||||
# connect QUndoStack signal to UndoStack's ones
|
||||
self.cleanChanged.connect(self._cleanChanged)
|
||||
self.canUndoChanged.connect(self._canUndoChanged)
|
||||
self.canRedoChanged.connect(self._canRedoChanged)
|
||||
self.undoTextChanged.connect(self._undoTextChanged)
|
||||
self.redoTextChanged.connect(self._redoTextChanged)
|
||||
|
||||
def tryAndPush(self, command: UndoCommand):
|
||||
if command.redoImpl():
|
||||
|
@ -40,6 +47,19 @@ class UndoStack(QtWidgets.QUndoStack):
|
|||
else:
|
||||
return False
|
||||
|
||||
# Redeclare QUndoStack signal since original ones can not be used for properties notifying
|
||||
_cleanChanged = Signal()
|
||||
_canUndoChanged = Signal()
|
||||
_canRedoChanged = Signal()
|
||||
_undoTextChanged = Signal()
|
||||
_redoTextChanged = Signal()
|
||||
|
||||
clean = Property(bool, QUndoStack.isClean, notify=_cleanChanged)
|
||||
canUndo = Property(bool, QUndoStack.canUndo, notify=_canRedoChanged)
|
||||
canRedo = Property(bool, QUndoStack.canRedo, notify=_canUndoChanged)
|
||||
undoText = Property(str, QUndoStack.undoText, notify=_undoTextChanged)
|
||||
redoText = Property(str, QUndoStack.redoText, notify=_redoTextChanged)
|
||||
|
||||
|
||||
class GraphCommand(UndoCommand):
|
||||
def __init__(self, graph, parent=None):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue