diff --git a/BEdit/AGENTS.md b/BEdit/AGENTS.md index 4cc2184..bfafd37 100644 --- a/BEdit/AGENTS.md +++ b/BEdit/AGENTS.md @@ -113,6 +113,9 @@ Keep the root of `src/bedit` minimal. New UI modules should go into the relevant `source.initialEquations` and `source.equations`, with the same highlighting and completion in all three fields. The composer emits each in its matching Modelica section. +- The text-definition view embeds the same `PortEditor` and `ParameterEditor` + implementations used by the standalone options dialogs. Do not reintroduce + separate port/parameter tables in the text editor. - Application-wide messages use `core.application_log.get_logger()`. The main window installs the Qt log-panel handler; core code must only use standard Python logging and must not import the GUI handler. diff --git a/BEdit/src/bedit/gui/dialogs/parameter_options.py b/BEdit/src/bedit/gui/dialogs/parameter_options.py index 8923d55..d4ae4cd 100644 --- a/BEdit/src/bedit/gui/dialogs/parameter_options.py +++ b/BEdit/src/bedit/gui/dialogs/parameter_options.py @@ -1,7 +1,7 @@ from copy import deepcopy from uuid import uuid4 -from PySide6.QtCore import Qt +from PySide6.QtCore import Qt, Signal from PySide6.QtWidgets import QDialog, QListWidgetItem, QMessageBox from bedit.core.model import Component, Parameter @@ -15,6 +15,8 @@ PARAMETER_ROLE = Qt.ItemDataRole.UserRole class ParameterOptionsDialog(QDialog): """Editor for parameters shared by graph and text components.""" + edited = Signal() + def __init__(self, component: Component, parent=None, *, read_only: bool = False) -> None: super().__init__(parent) self.ui = Ui_ParameterOptionsDialog() @@ -109,6 +111,13 @@ class ParameterOptionsDialog(QDialog): self.ui.parameterList.item(row).setText( f"{parameter.name} [{parameter.type}] = {parameter.value}" ) + self.edited.emit() + + def set_parameters(self, parameters: list[Parameter]) -> None: + self._loading = True + self.parameters = deepcopy(parameters) + self._loading = False + self._rebuild_list(0 if self.parameters else -1) def add_parameter(self) -> None: self.parameters.append( @@ -120,12 +129,14 @@ class ParameterOptionsDialog(QDialog): self._rebuild_list(len(self.parameters) - 1) self.ui.nameEdit.selectAll() self.ui.nameEdit.setFocus() + self.edited.emit() def remove_parameter(self) -> None: row = self.ui.parameterList.currentRow() if row >= 0: self.parameters.pop(row) self._rebuild_list(min(row, len(self.parameters) - 1)) + self.edited.emit() def accept(self) -> None: self._store_current() @@ -137,3 +148,12 @@ class ParameterOptionsDialog(QDialog): QMessageBox.warning(self, "Invalid parameter", "Parameter names must be unique.") return super().accept() + + +class ParameterEditor(ParameterOptionsDialog): + """The parameter options editor embedded without dialog buttons.""" + + def __init__(self, parent=None) -> None: + super().__init__(Component(id="embedded-parameter-editor", name="Parameters"), parent) + self.setWindowFlags(Qt.WindowType.Widget) + self.ui.buttonBox.hide() diff --git a/BEdit/src/bedit/gui/dialogs/port_options.py b/BEdit/src/bedit/gui/dialogs/port_options.py index b256b61..c89d7a9 100644 --- a/BEdit/src/bedit/gui/dialogs/port_options.py +++ b/BEdit/src/bedit/gui/dialogs/port_options.py @@ -1,7 +1,7 @@ from copy import deepcopy from uuid import uuid4 -from PySide6.QtCore import Qt +from PySide6.QtCore import Qt, Signal from PySide6.QtWidgets import QDialog, QDialogButtonBox, QListWidgetItem, QMessageBox from bedit.core.model import Component, Port @@ -16,6 +16,8 @@ PORT_ROLE = Qt.ItemDataRole.UserRole class PortOptionsDialog(QDialog): """Unified editor for a component's typed, oriented ports.""" + edited = Signal() + def __init__(self, component: Component, parent=None, *, read_only: bool = False) -> None: super().__init__(parent) self.ui = Ui_PortOptionsDialog() @@ -139,6 +141,16 @@ class PortOptionsDialog(QDialog): self.ui.portList.item(row).setText( f"{port.name} [{self.ports[row][1]}, {port.type}]" ) + self.edited.emit() + + def set_ports(self, inputs: list[Port], outputs: list[Port]) -> None: + self._loading = True + self.ports = [ + *((deepcopy(port), "input") for port in inputs), + *((deepcopy(port), "output") for port in outputs), + ] + self._loading = False + self._rebuild_list(0 if self.ports else -1) def add_port(self) -> None: port = Port( @@ -151,12 +163,14 @@ class PortOptionsDialog(QDialog): self._rebuild_list(len(self.ports) - 1) self.ui.nameEdit.selectAll() self.ui.nameEdit.setFocus() + self.edited.emit() def remove_port(self) -> None: row = self.ui.portList.currentRow() if row >= 0: self.ports.pop(row) self._rebuild_list(min(row, len(self.ports) - 1)) + self.edited.emit() def accept(self) -> None: self._store_current() @@ -164,3 +178,12 @@ class PortOptionsDialog(QDialog): QMessageBox.warning(self, "Invalid port", "Every port must have a name.") return super().accept() + + +class PortEditor(PortOptionsDialog): + """The port options editor embedded without dialog confirmation buttons.""" + + def __init__(self, parent=None) -> None: + super().__init__(Component(id="embedded-port-editor", name="Ports"), parent) + self.setWindowFlags(Qt.WindowType.Widget) + self.ui.buttonBox.hide() diff --git a/BEdit/src/bedit/gui/editors/text_definition.py b/BEdit/src/bedit/gui/editors/text_definition.py index b7dc884..c165b6c 100644 --- a/BEdit/src/bedit/gui/editors/text_definition.py +++ b/BEdit/src/bedit/gui/editors/text_definition.py @@ -1,18 +1,10 @@ -from copy import deepcopy -from uuid import uuid4 - -from PySide6.QtCore import Qt, Signal -from PySide6.QtWidgets import QCheckBox, QComboBox, QHeaderView, QTableWidgetItem, QWidget +from PySide6.QtCore import Signal +from PySide6.QtWidgets import QWidget from bedit.core.model import Parameter, Port -from bedit.core.port_types import PortTypeRegistry from bedit.gui.generated.ui_text_definition_editor import Ui_TextDefinitionEditor -ID_ROLE = Qt.ItemDataRole.UserRole -PROPERTIES_ROLE = Qt.ItemDataRole.UserRole + 1 - - class TextDefinitionEditor(QWidget): """Editor for a text component's Modelica source, ports, and parameters.""" @@ -25,27 +17,14 @@ class TextDefinitionEditor(QWidget): self.ui.setupUi(self) self._modified = False self._loading = False - self.ui.portsTable.horizontalHeader().setSectionResizeMode( - QHeaderView.ResizeMode.Interactive - ) - self.ui.parametersTable.horizontalHeader().setSectionResizeMode( - QHeaderView.ResizeMode.Interactive - ) self.ui.columnSplitter.setSizes([560, 340]) self.ui.sourceSplitter.setSizes([180, 180, 240]) self.ui.definitionSplitter.setSizes([300, 300]) self.ui.declarationsEdit.textChanged.connect(self._mark_modified) self.ui.initialEquationsEdit.textChanged.connect(self._mark_modified) self.ui.equationsEdit.textChanged.connect(self._mark_modified) - self.ui.portsTable.cellChanged.connect(self._symbols_modified) - self.ui.parametersTable.cellChanged.connect(self._symbols_modified) - self.ui.addPortButton.clicked.connect(self.add_port) - self.ui.removePortButton.clicked.connect(self.remove_port) - self.ui.addParameterButton.clicked.connect(self.add_parameter) - self.ui.removeParameterButton.clicked.connect(self.remove_parameter) - self.ui.portsTable.itemSelectionChanged.connect(self._update_buttons) - self.ui.parametersTable.itemSelectionChanged.connect(self._update_buttons) - self._update_buttons() + self.ui.portEditor.edited.connect(self._symbols_modified) + self.ui.parameterEditor.edited.connect(self._symbols_modified) @property def is_modified(self) -> bool: @@ -65,47 +44,11 @@ class TextDefinitionEditor(QWidget): @property def ports(self) -> tuple[list[Port], list[Port]]: - inputs: list[Port] = [] - outputs: list[Port] = [] - for row in range(self.ui.portsTable.rowCount()): - name_item = self.ui.portsTable.item(row, 0) - type_combo = self.ui.portsTable.cellWidget(row, 1) - orientation_combo = self.ui.portsTable.cellWidget(row, 2) - multiple_check = self.ui.portsTable.cellWidget(row, 3) - port = Port( - id=name_item.data(ID_ROLE), - name=name_item.text().strip(), - type=type_combo.currentData(), - properties=deepcopy(name_item.data(PROPERTIES_ROLE) or {}), - allows_multiple_connections=multiple_check.isChecked(), - value_type=self.ui.portsTable.item(row, 4).text().strip() or "real", - quantity=self.ui.portsTable.item(row, 5).text().strip(), - unit=self.ui.portsTable.item(row, 6).text().strip(), - rows=int(self.ui.portsTable.item(row, 7).text()), - columns=int(self.ui.portsTable.item(row, 8).text()), - description=self.ui.portsTable.item(row, 9).text(), - ) - target = inputs if orientation_combo.currentData() == "input" else outputs - target.append(port) - return inputs, outputs + return self.ui.portEditor.inputs, self.ui.portEditor.outputs @property def parameters(self) -> list[Parameter]: - table = self.ui.parametersTable - return [ - Parameter( - id=table.item(row, 0).data(ID_ROLE), - name=table.item(row, 0).text().strip(), - type=table.item(row, 1).text().strip(), - value=table.item(row, 2).text(), - quantity=table.item(row, 3).text().strip(), - unit=table.item(row, 4).text().strip(), - rows=int(table.item(row, 5).text()), - columns=int(table.item(row, 6).text()), - description=table.item(row, 7).text(), - ) - for row in range(table.rowCount()) - ] + return self.ui.parameterEditor.parameters def set_definition( self, @@ -120,18 +63,11 @@ class TextDefinitionEditor(QWidget): self.ui.declarationsEdit.setPlainText(declarations) self.ui.initialEquationsEdit.setPlainText(initial_equations) self.ui.equationsEdit.setPlainText(equations) - self.ui.portsTable.setRowCount(0) - for port in inputs: - self._append_port(port, "input") - for port in outputs: - self._append_port(port, "output") - self.ui.parametersTable.setRowCount(0) - for parameter in parameters: - self._append_parameter(parameter) + self.ui.portEditor.set_ports(inputs, outputs) + self.ui.parameterEditor.set_parameters(parameters) self._set_editor_symbols(inputs, outputs, parameters) self._loading = False self.set_modified(False) - self._update_buttons() def set_modified(self, modified: bool) -> None: if self._modified != modified: @@ -149,17 +85,8 @@ class TextDefinitionEditor(QWidget): self._mark_modified() def _refresh_editor_symbols(self) -> None: - inputs: list[str] = [] - outputs: list[str] = [] - for row in range(self.ui.portsTable.rowCount()): - name_item = self.ui.portsTable.item(row, 0) - orientation = self.ui.portsTable.cellWidget(row, 2).currentData() - (inputs if orientation == "input" else outputs).append(name_item.text()) - parameters = [ - self.ui.parametersTable.item(row, 0).text() - for row in range(self.ui.parametersTable.rowCount()) - ] - self._apply_editor_symbols(inputs, outputs, parameters) + inputs, outputs = self.ports + self._set_editor_symbols(inputs, outputs, self.parameters) def _set_editor_symbols( self, @@ -180,96 +107,3 @@ class TextDefinitionEditor(QWidget): self.ui.declarationsEdit.set_symbols(*symbols) self.ui.initialEquationsEdit.set_symbols(*symbols) self.ui.equationsEdit.set_symbols(*symbols) - - def _new_combo(self, values: list[tuple[str, str]], current: str) -> QComboBox: - combo = QComboBox(self) - for label, value in values: - combo.addItem(label, value) - combo.setCurrentIndex(max(0, combo.findData(current))) - combo.currentIndexChanged.connect(self._symbols_modified) - return combo - - def _append_port(self, port: Port, orientation: str) -> None: - table = self.ui.portsTable - row = table.rowCount() - table.insertRow(row) - name = QTableWidgetItem(port.name) - name.setData(ID_ROLE, port.id) - name.setData(PROPERTIES_ROLE, deepcopy(port.properties)) - table.setItem(row, 0, name) - types = [(item.display_name, item.id) for item in PortTypeRegistry.all()] - table.setCellWidget(row, 1, self._new_combo(types, port.type)) - table.setCellWidget( - row, - 2, - self._new_combo([("Input", "input"), ("Output", "output")], orientation), - ) - multiple = QCheckBox("Any", self) - multiple.setChecked(port.allows_multiple_connections) - multiple.toggled.connect(self._symbols_modified) - table.setCellWidget(row, 3, multiple) - table.setItem(row, 4, QTableWidgetItem(port.value_type)) - table.setItem(row, 5, QTableWidgetItem(port.quantity)) - table.setItem(row, 6, QTableWidgetItem(port.unit)) - table.setItem(row, 7, QTableWidgetItem(str(port.rows))) - table.setItem(row, 8, QTableWidgetItem(str(port.columns))) - table.setItem(row, 9, QTableWidgetItem(port.description)) - - def _append_parameter(self, parameter: Parameter) -> None: - table = self.ui.parametersTable - row = table.rowCount() - table.insertRow(row) - name = QTableWidgetItem(parameter.name) - name.setData(ID_ROLE, parameter.id) - table.setItem(row, 0, name) - table.setItem(row, 1, QTableWidgetItem(parameter.type)) - table.setItem(row, 2, QTableWidgetItem(parameter.value)) - table.setItem(row, 3, QTableWidgetItem(parameter.quantity)) - table.setItem(row, 4, QTableWidgetItem(parameter.unit)) - table.setItem(row, 5, QTableWidgetItem(str(parameter.rows))) - table.setItem(row, 6, QTableWidgetItem(str(parameter.columns))) - table.setItem(row, 7, QTableWidgetItem(parameter.description)) - - def add_port(self) -> None: - port = Port( - id=f"port-{uuid4().hex[:8]}", - name=f"Port {self.ui.portsTable.rowCount() + 1}", - type="signal", - properties={"iconPosition": {"x": 0.0, "y": 0.0}}, - ) - self._loading = True - self._append_port(port, "input") - self._loading = False - self.ui.portsTable.selectRow(self.ui.portsTable.rowCount() - 1) - self._symbols_modified() - - def remove_port(self) -> None: - row = self.ui.portsTable.currentRow() - if row >= 0: - self.ui.portsTable.removeRow(row) - self._symbols_modified() - self._update_buttons() - - def add_parameter(self) -> None: - parameter = Parameter( - id=f"parameter-{uuid4().hex[:8]}", - name=f"Parameter {self.ui.parametersTable.rowCount() + 1}", - ) - self._loading = True - self._append_parameter(parameter) - self._loading = False - self.ui.parametersTable.selectRow(self.ui.parametersTable.rowCount() - 1) - self._symbols_modified() - - def remove_parameter(self) -> None: - row = self.ui.parametersTable.currentRow() - if row >= 0: - self.ui.parametersTable.removeRow(row) - self._symbols_modified() - self._update_buttons() - - def _update_buttons(self) -> None: - self.ui.removePortButton.setEnabled(self.ui.portsTable.currentRow() >= 0) - self.ui.removeParameterButton.setEnabled( - self.ui.parametersTable.currentRow() >= 0 - ) diff --git a/BEdit/src/bedit/gui/generated/ui_text_definition_editor.py b/BEdit/src/bedit/gui/generated/ui_text_definition_editor.py index 455f10c..0016fc2 100644 --- a/BEdit/src/bedit/gui/generated/ui_text_definition_editor.py +++ b/BEdit/src/bedit/gui/generated/ui_text_definition_editor.py @@ -15,11 +15,11 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont, QFontDatabase, QGradient, QIcon, QImage, QKeySequence, QLinearGradient, QPainter, QPalette, QPixmap, QRadialGradient, QTransform) -from PySide6.QtWidgets import (QAbstractItemView, QApplication, QGroupBox, QHBoxLayout, - QHeaderView, QPushButton, QSizePolicy, QSpacerItem, - QSplitter, QTableWidget, QTableWidgetItem, QVBoxLayout, - QWidget) +from PySide6.QtWidgets import (QApplication, QGroupBox, QHBoxLayout, QSizePolicy, + QSplitter, QVBoxLayout, QWidget) +from bedit.gui.dialogs.parameter_options import ParameterEditor +from bedit.gui.dialogs.port_options import PortEditor from bedit.gui.editors.openmodelica import OpenModelicaEditor class Ui_TextDefinitionEditor(object): @@ -77,104 +77,20 @@ class Ui_TextDefinitionEditor(object): self.portsGroup.setObjectName(u"portsGroup") self.portsLayout = QVBoxLayout(self.portsGroup) self.portsLayout.setObjectName(u"portsLayout") - self.portsTable = QTableWidget(self.portsGroup) - if (self.portsTable.columnCount() < 10): - self.portsTable.setColumnCount(10) - __qtablewidgetitem = QTableWidgetItem() - self.portsTable.setHorizontalHeaderItem(0, __qtablewidgetitem) - __qtablewidgetitem1 = QTableWidgetItem() - self.portsTable.setHorizontalHeaderItem(1, __qtablewidgetitem1) - __qtablewidgetitem2 = QTableWidgetItem() - self.portsTable.setHorizontalHeaderItem(2, __qtablewidgetitem2) - __qtablewidgetitem3 = QTableWidgetItem() - self.portsTable.setHorizontalHeaderItem(3, __qtablewidgetitem3) - __qtablewidgetitem4 = QTableWidgetItem() - self.portsTable.setHorizontalHeaderItem(4, __qtablewidgetitem4) - __qtablewidgetitem5 = QTableWidgetItem() - self.portsTable.setHorizontalHeaderItem(5, __qtablewidgetitem5) - __qtablewidgetitem6 = QTableWidgetItem() - self.portsTable.setHorizontalHeaderItem(6, __qtablewidgetitem6) - __qtablewidgetitem7 = QTableWidgetItem() - self.portsTable.setHorizontalHeaderItem(7, __qtablewidgetitem7) - __qtablewidgetitem8 = QTableWidgetItem() - self.portsTable.setHorizontalHeaderItem(8, __qtablewidgetitem8) - __qtablewidgetitem9 = QTableWidgetItem() - self.portsTable.setHorizontalHeaderItem(9, __qtablewidgetitem9) - self.portsTable.setObjectName(u"portsTable") - self.portsTable.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows) - self.portsTable.setSelectionMode(QAbstractItemView.SelectionMode.SingleSelection) - self.portsTable.setColumnCount(10) + self.portEditor = PortEditor(self.portsGroup) + self.portEditor.setObjectName(u"portEditor") - self.portsLayout.addWidget(self.portsTable) - - self.portButtonsLayout = QHBoxLayout() - self.portButtonsLayout.setObjectName(u"portButtonsLayout") - self.addPortButton = QPushButton(self.portsGroup) - self.addPortButton.setObjectName(u"addPortButton") - - self.portButtonsLayout.addWidget(self.addPortButton) - - self.removePortButton = QPushButton(self.portsGroup) - self.removePortButton.setObjectName(u"removePortButton") - - self.portButtonsLayout.addWidget(self.removePortButton) - - self.portButtonSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.portButtonsLayout.addItem(self.portButtonSpacer) - - - self.portsLayout.addLayout(self.portButtonsLayout) + self.portsLayout.addWidget(self.portEditor) self.definitionSplitter.addWidget(self.portsGroup) self.parametersGroup = QGroupBox(self.definitionSplitter) self.parametersGroup.setObjectName(u"parametersGroup") self.parametersLayout = QVBoxLayout(self.parametersGroup) self.parametersLayout.setObjectName(u"parametersLayout") - self.parametersTable = QTableWidget(self.parametersGroup) - if (self.parametersTable.columnCount() < 8): - self.parametersTable.setColumnCount(8) - __qtablewidgetitem10 = QTableWidgetItem() - self.parametersTable.setHorizontalHeaderItem(0, __qtablewidgetitem10) - __qtablewidgetitem11 = QTableWidgetItem() - self.parametersTable.setHorizontalHeaderItem(1, __qtablewidgetitem11) - __qtablewidgetitem12 = QTableWidgetItem() - self.parametersTable.setHorizontalHeaderItem(2, __qtablewidgetitem12) - __qtablewidgetitem13 = QTableWidgetItem() - self.parametersTable.setHorizontalHeaderItem(3, __qtablewidgetitem13) - __qtablewidgetitem14 = QTableWidgetItem() - self.parametersTable.setHorizontalHeaderItem(4, __qtablewidgetitem14) - __qtablewidgetitem15 = QTableWidgetItem() - self.parametersTable.setHorizontalHeaderItem(5, __qtablewidgetitem15) - __qtablewidgetitem16 = QTableWidgetItem() - self.parametersTable.setHorizontalHeaderItem(6, __qtablewidgetitem16) - __qtablewidgetitem17 = QTableWidgetItem() - self.parametersTable.setHorizontalHeaderItem(7, __qtablewidgetitem17) - self.parametersTable.setObjectName(u"parametersTable") - self.parametersTable.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows) - self.parametersTable.setSelectionMode(QAbstractItemView.SelectionMode.SingleSelection) - self.parametersTable.setColumnCount(8) + self.parameterEditor = ParameterEditor(self.parametersGroup) + self.parameterEditor.setObjectName(u"parameterEditor") - self.parametersLayout.addWidget(self.parametersTable) - - self.parameterButtonsLayout = QHBoxLayout() - self.parameterButtonsLayout.setObjectName(u"parameterButtonsLayout") - self.addParameterButton = QPushButton(self.parametersGroup) - self.addParameterButton.setObjectName(u"addParameterButton") - - self.parameterButtonsLayout.addWidget(self.addParameterButton) - - self.removeParameterButton = QPushButton(self.parametersGroup) - self.removeParameterButton.setObjectName(u"removeParameterButton") - - self.parameterButtonsLayout.addWidget(self.removeParameterButton) - - self.parameterButtonSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.parameterButtonsLayout.addItem(self.parameterButtonSpacer) - - - self.parametersLayout.addLayout(self.parameterButtonsLayout) + self.parametersLayout.addWidget(self.parameterEditor) self.definitionSplitter.addWidget(self.parametersGroup) self.columnSplitter.addWidget(self.definitionSplitter) @@ -192,47 +108,7 @@ class Ui_TextDefinitionEditor(object): self.initialEquationsGroup.setTitle(QCoreApplication.translate("TextDefinitionEditor", u"Initial Equations", None)) self.equationsGroup.setTitle(QCoreApplication.translate("TextDefinitionEditor", u"Equations", None)) self.portsGroup.setTitle(QCoreApplication.translate("TextDefinitionEditor", u"Ports", None)) - ___qtablewidgetitem = self.portsTable.horizontalHeaderItem(0) - ___qtablewidgetitem.setText(QCoreApplication.translate("TextDefinitionEditor", u"Name", None)) - ___qtablewidgetitem1 = self.portsTable.horizontalHeaderItem(1) - ___qtablewidgetitem1.setText(QCoreApplication.translate("TextDefinitionEditor", u"Port Type", None)) - ___qtablewidgetitem2 = self.portsTable.horizontalHeaderItem(2) - ___qtablewidgetitem2.setText(QCoreApplication.translate("TextDefinitionEditor", u"Orientation", None)) - ___qtablewidgetitem3 = self.portsTable.horizontalHeaderItem(3) - ___qtablewidgetitem3.setText(QCoreApplication.translate("TextDefinitionEditor", u"Multiple", None)) - ___qtablewidgetitem4 = self.portsTable.horizontalHeaderItem(4) - ___qtablewidgetitem4.setText(QCoreApplication.translate("TextDefinitionEditor", u"Value Type", None)) - ___qtablewidgetitem5 = self.portsTable.horizontalHeaderItem(5) - ___qtablewidgetitem5.setText(QCoreApplication.translate("TextDefinitionEditor", u"Quantity", None)) - ___qtablewidgetitem6 = self.portsTable.horizontalHeaderItem(6) - ___qtablewidgetitem6.setText(QCoreApplication.translate("TextDefinitionEditor", u"Unit", None)) - ___qtablewidgetitem7 = self.portsTable.horizontalHeaderItem(7) - ___qtablewidgetitem7.setText(QCoreApplication.translate("TextDefinitionEditor", u"Rows", None)) - ___qtablewidgetitem8 = self.portsTable.horizontalHeaderItem(8) - ___qtablewidgetitem8.setText(QCoreApplication.translate("TextDefinitionEditor", u"Columns", None)) - ___qtablewidgetitem9 = self.portsTable.horizontalHeaderItem(9) - ___qtablewidgetitem9.setText(QCoreApplication.translate("TextDefinitionEditor", u"Description", None)) - self.addPortButton.setText(QCoreApplication.translate("TextDefinitionEditor", u"Add Port", None)) - self.removePortButton.setText(QCoreApplication.translate("TextDefinitionEditor", u"Remove Port", None)) self.parametersGroup.setTitle(QCoreApplication.translate("TextDefinitionEditor", u"Parameters", None)) - ___qtablewidgetitem10 = self.parametersTable.horizontalHeaderItem(0) - ___qtablewidgetitem10.setText(QCoreApplication.translate("TextDefinitionEditor", u"Name", None)) - ___qtablewidgetitem11 = self.parametersTable.horizontalHeaderItem(1) - ___qtablewidgetitem11.setText(QCoreApplication.translate("TextDefinitionEditor", u"Type", None)) - ___qtablewidgetitem12 = self.parametersTable.horizontalHeaderItem(2) - ___qtablewidgetitem12.setText(QCoreApplication.translate("TextDefinitionEditor", u"Value", None)) - ___qtablewidgetitem13 = self.parametersTable.horizontalHeaderItem(3) - ___qtablewidgetitem13.setText(QCoreApplication.translate("TextDefinitionEditor", u"Quantity", None)) - ___qtablewidgetitem14 = self.parametersTable.horizontalHeaderItem(4) - ___qtablewidgetitem14.setText(QCoreApplication.translate("TextDefinitionEditor", u"Unit", None)) - ___qtablewidgetitem15 = self.parametersTable.horizontalHeaderItem(5) - ___qtablewidgetitem15.setText(QCoreApplication.translate("TextDefinitionEditor", u"Rows", None)) - ___qtablewidgetitem16 = self.parametersTable.horizontalHeaderItem(6) - ___qtablewidgetitem16.setText(QCoreApplication.translate("TextDefinitionEditor", u"Columns", None)) - ___qtablewidgetitem17 = self.parametersTable.horizontalHeaderItem(7) - ___qtablewidgetitem17.setText(QCoreApplication.translate("TextDefinitionEditor", u"Description", None)) - self.addParameterButton.setText(QCoreApplication.translate("TextDefinitionEditor", u"Add Parameter", None)) - self.removeParameterButton.setText(QCoreApplication.translate("TextDefinitionEditor", u"Remove Parameter", None)) pass # retranslateUi diff --git a/BEdit/ui/text_definition_editor.ui b/BEdit/ui/text_definition_editor.ui index 9c2483e..9d3a5b2 100644 --- a/BEdit/ui/text_definition_editor.ui +++ b/BEdit/ui/text_definition_editor.ui @@ -40,15 +40,13 @@ Ports - QAbstractItemView::SelectionBehavior::SelectRowsQAbstractItemView::SelectionMode::SingleSelection10NamePort TypeOrientationMultipleValue TypeQuantityUnitRowsColumnsDescription - Add PortRemove PortQt::Orientation::Horizontal4020 + Parameters - QAbstractItemView::SelectionBehavior::SelectRowsQAbstractItemView::SelectionMode::SingleSelection8NameTypeValueQuantityUnitRowsColumnsDescription - Add ParameterRemove ParameterQt::Orientation::Horizontal4020 + @@ -62,6 +60,8 @@ QPlainTextEdit
bedit.gui.editors.openmodelica
+ PortEditorQWidget
bedit.gui.dialogs.port_options
+ ParameterEditorQWidget
bedit.gui.dialogs.parameter_options