Equation editor undo

This commit is contained in:
2026-07-29 18:40:50 +02:00
parent 9df352f6b7
commit 748bb08531
5 changed files with 122 additions and 10 deletions

View File

@@ -58,8 +58,10 @@ class DocumentTreeController(QObject):
window.ui.documentTree.setModel(self.model)
window.ui.documentTree.selectionModel().selectionChanged.connect(self._selection_changed)
window.equation_editor.equation_text_change_requested.connect(self.document.update_component_equation_text)
document.model_changed.connect(self._on_document_changed)
document.icon_changed.connect(self._on_icon_changed)
document.equation_text_changed.connect(self._on_equation_text_changed)
self.model.rename_document_requested.connect(self.document.rename)
self.model.rename_component_requested.connect(self.document.rename_component)
window.ui.actionDelete.triggered.connect(self.delete_selected_component)
@@ -113,6 +115,10 @@ class DocumentTreeController(QObject):
self.window.equation_editor.set_component(None)
self.window.equation_editor.hide()
def _on_equation_text_changed(self, component: Component, section: str) -> None:
if self.window.equation_editor.component() is component:
self.window.equation_editor.refresh_text(section)
def _on_icon_changed(self, component_id: ComponentID, icon: object) -> None:
component = self._components.get(component_id)
if component is None:

View File

@@ -31,11 +31,13 @@ class UndoController(QObject):
redo_action.setEnabled(undo_stack.canRedo())
def undo(self) -> None:
self.window.equation_editor.finish_text_edit()
command = self.document.undo_stack.undoText()
self.document.undo_stack.undo()
logger.info("Undo: %s", command)
def redo(self) -> None:
self.window.equation_editor.finish_text_edit()
command = self.document.undo_stack.redoText()
self.document.undo_stack.redo()
logger.info("Redo: %s", command)