Better drawing and added more icons
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from PySide6.QtCore import QPointF
|
||||
from PySide6.QtGui import QUndoCommand
|
||||
|
||||
from bedit.core.model import Component, Connection, Port
|
||||
from bedit.core.model import Annotation, Component, Connection, Port
|
||||
|
||||
|
||||
class AddComponentCommand(QUndoCommand):
|
||||
@@ -76,6 +76,55 @@ class AddConnectionCommand(QUndoCommand):
|
||||
self.controller._remove_connection(self.owner_id, self.connection.id)
|
||||
|
||||
|
||||
class AddAnnotationCommand(QUndoCommand):
|
||||
def __init__(self, controller, owner_id: str, annotation: Annotation) -> None:
|
||||
super().__init__(f"Draw {annotation.kind}")
|
||||
self.controller, self.owner_id, self.annotation = controller, owner_id, annotation
|
||||
|
||||
def redo(self) -> None:
|
||||
self.controller._insert_annotation(self.owner_id, self.annotation)
|
||||
|
||||
def undo(self) -> None:
|
||||
self.controller._remove_annotation(self.owner_id, self.annotation.id)
|
||||
|
||||
|
||||
class EditGraphItemCommand(QUndoCommand):
|
||||
def __init__(
|
||||
self,
|
||||
controller,
|
||||
owner_id: str,
|
||||
item_kind: str,
|
||||
item_id: str,
|
||||
old: dict,
|
||||
new: dict,
|
||||
text: str,
|
||||
) -> None:
|
||||
super().__init__(text)
|
||||
self.controller, self.owner_id = controller, owner_id
|
||||
self.item_kind, self.item_id = item_kind, item_id
|
||||
self.old, self.new = old, new
|
||||
|
||||
def redo(self) -> None:
|
||||
self.controller._set_graph_item_data(self.owner_id, self.item_kind, self.item_id, self.new)
|
||||
|
||||
def undo(self) -> None:
|
||||
self.controller._set_graph_item_data(self.owner_id, self.item_kind, self.item_id, self.old)
|
||||
|
||||
|
||||
class DeleteAnnotationsCommand(QUndoCommand):
|
||||
def __init__(self, controller, owner_id: str, annotations: dict[str, Annotation]) -> None:
|
||||
super().__init__("Delete annotations")
|
||||
self.controller, self.owner_id, self.annotations = controller, owner_id, annotations
|
||||
|
||||
def redo(self) -> None:
|
||||
for annotation_id in self.annotations:
|
||||
self.controller._remove_annotation(self.owner_id, annotation_id)
|
||||
|
||||
def undo(self) -> None:
|
||||
for annotation in self.annotations.values():
|
||||
self.controller._insert_annotation(self.owner_id, annotation)
|
||||
|
||||
|
||||
class ReplaceComponentCommand(QUndoCommand):
|
||||
def __init__(self, controller, old: Component, new: Component) -> None:
|
||||
super().__init__("Apply JSON changes")
|
||||
|
||||
Reference in New Issue
Block a user