Parameter editor added
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from copy import deepcopy
|
||||
|
||||
from PySide6.QtGui import QUndoCommand
|
||||
|
||||
from bedit_core.models import Component, Parameter, ParameterID
|
||||
|
||||
|
||||
class AddParamCommand(QUndoCommand):
|
||||
def __init__(
|
||||
self,
|
||||
document: object,
|
||||
component: Component,
|
||||
param_id: ParameterID,
|
||||
param: Parameter,
|
||||
) -> None:
|
||||
super().__init__("Add port")
|
||||
self.document = document
|
||||
self.component = component
|
||||
self.param_id = param_id
|
||||
self.param = deepcopy(param)
|
||||
|
||||
def redo(self) -> None:
|
||||
self.component.parameters[self.param_id] = deepcopy(self.param)
|
||||
self.document.model_changed.emit(self.document.model)
|
||||
|
||||
def undo(self) -> None:
|
||||
del self.component.parameters[self.param_id]
|
||||
self.document.model_changed.emit(self.document.model)
|
||||
|
||||
|
||||
class RemoveParamCommand(QUndoCommand):
|
||||
def __init__(
|
||||
self,
|
||||
document: object,
|
||||
component: Component,
|
||||
param_id: ParameterID,
|
||||
) -> None:
|
||||
super().__init__("Remove parameter")
|
||||
self.document = document
|
||||
self.component = component
|
||||
self.param_id = param_id
|
||||
self.param = deepcopy(component.parameters[param_id])
|
||||
|
||||
def redo(self) -> None:
|
||||
del self.component.parameters[self.param_id]
|
||||
self.document.model_changed.emit(self.document.model)
|
||||
|
||||
def undo(self) -> None:
|
||||
self.component.parameters[self.param_id] = deepcopy(self.param)
|
||||
self.document.model_changed.emit(self.document.model)
|
||||
|
||||
|
||||
class ChangeParamCommand(QUndoCommand):
|
||||
def __init__(
|
||||
self,
|
||||
document: object,
|
||||
component: Component,
|
||||
param_id: ParameterID,
|
||||
param: Parameter,
|
||||
) -> None:
|
||||
super().__init__("Change parameter")
|
||||
self.document = document
|
||||
self.component = component
|
||||
self.param_id = param_id
|
||||
self.old_param = deepcopy(component.parameters[param_id])
|
||||
self.new_param = deepcopy(param)
|
||||
|
||||
def redo(self) -> None:
|
||||
self.component.parameters[self.param_id] = deepcopy(self.new_param)
|
||||
self.document.model_changed.emit(self.document.model)
|
||||
|
||||
def undo(self) -> None:
|
||||
self.component.parameters[self.param_id] = deepcopy(self.old_param)
|
||||
self.document.model_changed.emit(self.document.model)
|
||||
Reference in New Issue
Block a user