port and param editor in and outside of text editor the same
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -40,15 +40,13 @@
|
||||
<widget class="QGroupBox" name="portsGroup">
|
||||
<property name="title"><string>Ports</string></property>
|
||||
<layout class="QVBoxLayout" name="portsLayout">
|
||||
<item><widget class="QTableWidget" name="portsTable"><property name="selectionBehavior"><enum>QAbstractItemView::SelectionBehavior::SelectRows</enum></property><property name="selectionMode"><enum>QAbstractItemView::SelectionMode::SingleSelection</enum></property><property name="columnCount"><number>10</number></property><column><property name="text"><string>Name</string></property></column><column><property name="text"><string>Port Type</string></property></column><column><property name="text"><string>Orientation</string></property></column><column><property name="text"><string>Multiple</string></property></column><column><property name="text"><string>Value Type</string></property></column><column><property name="text"><string>Quantity</string></property></column><column><property name="text"><string>Unit</string></property></column><column><property name="text"><string>Rows</string></property></column><column><property name="text"><string>Columns</string></property></column><column><property name="text"><string>Description</string></property></column></widget></item>
|
||||
<item><layout class="QHBoxLayout" name="portButtonsLayout"><item><widget class="QPushButton" name="addPortButton"><property name="text"><string>Add Port</string></property></widget></item><item><widget class="QPushButton" name="removePortButton"><property name="text"><string>Remove Port</string></property></widget></item><item><spacer name="portButtonSpacer"><property name="orientation"><enum>Qt::Orientation::Horizontal</enum></property><property name="sizeHint" stdset="0"><size><width>40</width><height>20</height></size></property></spacer></item></layout></item>
|
||||
<item><widget class="PortEditor" name="portEditor"/></item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="parametersGroup">
|
||||
<property name="title"><string>Parameters</string></property>
|
||||
<layout class="QVBoxLayout" name="parametersLayout">
|
||||
<item><widget class="QTableWidget" name="parametersTable"><property name="selectionBehavior"><enum>QAbstractItemView::SelectionBehavior::SelectRows</enum></property><property name="selectionMode"><enum>QAbstractItemView::SelectionMode::SingleSelection</enum></property><property name="columnCount"><number>8</number></property><column><property name="text"><string>Name</string></property></column><column><property name="text"><string>Type</string></property></column><column><property name="text"><string>Value</string></property></column><column><property name="text"><string>Quantity</string></property></column><column><property name="text"><string>Unit</string></property></column><column><property name="text"><string>Rows</string></property></column><column><property name="text"><string>Columns</string></property></column><column><property name="text"><string>Description</string></property></column></widget></item>
|
||||
<item><layout class="QHBoxLayout" name="parameterButtonsLayout"><item><widget class="QPushButton" name="addParameterButton"><property name="text"><string>Add Parameter</string></property></widget></item><item><widget class="QPushButton" name="removeParameterButton"><property name="text"><string>Remove Parameter</string></property></widget></item><item><spacer name="parameterButtonSpacer"><property name="orientation"><enum>Qt::Orientation::Horizontal</enum></property><property name="sizeHint" stdset="0"><size><width>40</width><height>20</height></size></property></spacer></item></layout></item>
|
||||
<item><widget class="ParameterEditor" name="parameterEditor"/></item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
@@ -62,6 +60,8 @@
|
||||
<extends>QPlainTextEdit</extends>
|
||||
<header>bedit.gui.editors.openmodelica</header>
|
||||
</customwidget>
|
||||
<customwidget><class>PortEditor</class><extends>QWidget</extends><header>bedit.gui.dialogs.port_options</header></customwidget>
|
||||
<customwidget><class>ParameterEditor</class><extends>QWidget</extends><header>bedit.gui.dialogs.parameter_options</header></customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
||||
Reference in New Issue
Block a user