Fixed some stuff
This commit is contained in:
@@ -6,12 +6,15 @@ from pathlib import Path
|
||||
from PySide6.QtCore import QObject, Signal
|
||||
from PySide6.QtGui import QUndoStack
|
||||
|
||||
from bedit_core.models import ID, Component, ComponentID, ConnectionID, GraphImplementation, Port, PortID, Parameter, ParameterID
|
||||
from bedit_core.models import ID, Component, ComponentID, Connection, ConnectionID, GraphImplementation, Port, PortID, Parameter, ParameterID
|
||||
from bedit_core.models import Document as CoreDocument
|
||||
from bedit_core.bondgraph import causality_inference
|
||||
from bedit_gui.commands.causality_command import ChangeCausalityCommand, causality_state
|
||||
from bedit_gui.commands.change_icon_command import ChangeIconCommand
|
||||
from bedit_gui.commands.equation_text_command import ChangeEquationTextCommand
|
||||
from bedit_gui.commands.graph_position_command import MoveGraphComponentCommand
|
||||
from bedit_gui.commands.graph_connection_points_command import ChangeGraphConnectionPointsCommand
|
||||
from bedit_gui.commands.graph_connection_command import AddGraphConnectionCommand, DeleteGraphConnectionCommand
|
||||
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
|
||||
@@ -102,6 +105,12 @@ class Document(QObject):
|
||||
def rename_component(self, component: Component, name: str) -> None:
|
||||
self.undo_stack.push(RenameComponentCommand(self, component, name))
|
||||
|
||||
def infer_causality(self, component: Component) -> None:
|
||||
inferred_component = deepcopy(component)
|
||||
causality_inference(inferred_component)
|
||||
if causality_state(component) != causality_state(inferred_component):
|
||||
self.undo_stack.push(ChangeCausalityCommand(self, component, inferred_component))
|
||||
|
||||
def component_id(self, component: Component) -> ComponentID:
|
||||
def find(components: dict[ComponentID, Component]) -> ComponentID | None:
|
||||
for component_id, candidate in components.items():
|
||||
@@ -169,6 +178,20 @@ class Document(QObject):
|
||||
graph_id = self.component_id(graph_component)
|
||||
self.undo_stack.push(ChangeGraphConnectionPointsCommand(self, graph_id, connection_id, points, text))
|
||||
|
||||
def add_graph_connection(self, graph_component: Component, connection: Connection) -> None:
|
||||
self.undo_stack.push(AddGraphConnectionCommand(self, graph_component, connection))
|
||||
|
||||
def delete_graph_connections(self, graph_component: Component, connection_ids: list[ConnectionID]) -> None:
|
||||
if not isinstance(graph_component.implementation, GraphImplementation):
|
||||
return
|
||||
connection_ids = [connection_id for connection_id in connection_ids if connection_id in graph_component.implementation.graph.connections]
|
||||
if not connection_ids:
|
||||
return
|
||||
self.undo_stack.beginMacro("Delete connections")
|
||||
for connection_id in connection_ids:
|
||||
self.undo_stack.push(DeleteGraphConnectionCommand(self, graph_component, connection_id))
|
||||
self.undo_stack.endMacro()
|
||||
|
||||
def _set_graph_connection_points(self, graph_id: ComponentID, connection_id: ConnectionID, points: list[tuple[int, int]] | None) -> None:
|
||||
if points is None:
|
||||
database = self._graph_database(False)
|
||||
|
||||
Reference in New Issue
Block a user