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

@@ -9,6 +9,7 @@ from PySide6.QtGui import QUndoStack
from bedit_core.models import ID, Component, ComponentID, GraphImplementation, Port, PortID, Parameter, ParameterID
from bedit_core.models import Document as CoreDocument
from bedit_gui.commands.change_icon_command import ChangeIconCommand
from bedit_gui.commands.equation_text_command import ChangeEquationTextCommand
from bedit_gui.commands.port_commands import AddPortCommand, ChangePortCommand, RemovePortCommand
from bedit_gui.commands.param_commands import AddParamCommand, ChangeParamCommand, RemoveParamCommand
from bedit_gui.commands.rename_component_command import RenameComponentCommand
@@ -25,6 +26,7 @@ class Document(QObject):
path_changed = Signal(object)
modified_changed = Signal(bool)
icon_changed = Signal(object, object)
equation_text_changed = Signal(object, str)
def __init__(self, parent: QObject | None = None) -> None:
super().__init__(parent)
@@ -197,6 +199,11 @@ class Document(QObject):
self.undo_stack.push(command)
self.undo_stack.endMacro()
def update_component_equation_text(self, component: Component, section: str, text: list[str], edit_id: int) -> None:
command = ChangeEquationTextCommand(self, component, section, text, edit_id)
if command.old_text != command.new_text:
self.undo_stack.push(command)
def add_empty_graph_component(self, component: Component) -> None:
if isinstance(component.implementation, GraphImplementation):
command = AddEmptyGraphComponent(self, component)