Parameter editor added
This commit is contained in:
@@ -5,9 +5,10 @@ from pathlib import Path
|
||||
from PySide6.QtCore import QObject, Signal
|
||||
from PySide6.QtGui import QUndoStack
|
||||
|
||||
from bedit_core.models import ID, Component, Port, PortID
|
||||
from bedit_core.models import ID, Component, Port, PortID, Parameter, ParameterID
|
||||
from bedit_core.models import Document as CoreDocument
|
||||
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
|
||||
from bedit_gui.commands.rename_document_command import RenameDocumentCommand
|
||||
from bedit_gui.services import document_files
|
||||
@@ -88,11 +89,7 @@ class Document(QObject):
|
||||
def rename_component(self, component: Component, name: str) -> None:
|
||||
self.undo_stack.push(RenameComponentCommand(self, component, name))
|
||||
|
||||
def update_component_ports(
|
||||
self,
|
||||
component: Component,
|
||||
ports: dict[PortID, Port],
|
||||
) -> None:
|
||||
def update_component_ports(self, component: Component, ports: dict[PortID, Port]) -> None:
|
||||
current = component.interface.ports
|
||||
removed = [
|
||||
RemovePortCommand(self, component, port_id)
|
||||
@@ -115,3 +112,28 @@ class Document(QObject):
|
||||
for command in commands:
|
||||
self.undo_stack.push(command)
|
||||
self.undo_stack.endMacro()
|
||||
|
||||
def update_component_params(self, component: Component, params: dict[ParameterID, Parameter]) -> None:
|
||||
current = component.parameters
|
||||
removed = [
|
||||
RemoveParamCommand(self, component, param_id)
|
||||
for param_id in current.keys() - params.keys()
|
||||
]
|
||||
added = [
|
||||
AddParamCommand(self, component, param_id, params[param_id])
|
||||
for param_id in params.keys() - current.keys()
|
||||
]
|
||||
changed = [
|
||||
ChangeParamCommand(self, component, param_id, params[param_id])
|
||||
for param_id in current.keys() & params.keys()
|
||||
if current[param_id] != params[param_id]
|
||||
]
|
||||
commands = [*removed, *added, *changed]
|
||||
if not commands:
|
||||
return
|
||||
|
||||
self.undo_stack.beginMacro("Edit parameter")
|
||||
for command in commands:
|
||||
self.undo_stack.push(command)
|
||||
self.undo_stack.endMacro()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user