mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Add a signal to track undo/redo state
This commit is contained in:
parent
830198d7b0
commit
6d1b644cfc
@ -126,6 +126,7 @@ class Canvas(QWidget):
|
||||
SELECT_PEN = QPen(QColor(Qt.white))
|
||||
|
||||
selection_state_changed = pyqtSignal(object)
|
||||
undo_redo_state_changed = pyqtSignal(object, object)
|
||||
image_changed = pyqtSignal(object)
|
||||
|
||||
@property
|
||||
@ -141,8 +142,10 @@ class Canvas(QWidget):
|
||||
self.setMouseTracking(True)
|
||||
self.setFocusPolicy(Qt.ClickFocus)
|
||||
self.selection_state = SelectionState()
|
||||
self.undo_stack = QUndoStack()
|
||||
self.undo_stack.setUndoLimit(10)
|
||||
self.undo_stack = u = QUndoStack()
|
||||
u.setUndoLimit(10)
|
||||
u.canUndoChanged.connect(self.emit_undo_redo_state)
|
||||
u.canRedoChanged.connect(self.emit_undo_redo_state)
|
||||
|
||||
self.original_image_data = None
|
||||
self.is_valid = False
|
||||
@ -211,6 +214,9 @@ class Canvas(QWidget):
|
||||
self.undo_stack.clear()
|
||||
self.original_image_data = self.current_image = self.current_scaled_pixmap = None
|
||||
|
||||
def emit_undo_redo_state(self):
|
||||
self.undo_redo_state_changed.emit(self.undo_action.isEnabled(), self.redo_action.isEnabled())
|
||||
|
||||
@imageop
|
||||
def trim_image(self):
|
||||
if self.selection_state.rect is None:
|
||||
|
Loading…
x
Reference in New Issue
Block a user