basic openmodelica model emitting

This commit is contained in:
2026-07-20 17:34:18 +02:00
parent 42bf09610b
commit d368b36b8c
26 changed files with 1608 additions and 594 deletions

View File

@@ -73,6 +73,8 @@ class Ui_MainWindow(object):
self.actionOpen.setIcon(icon7)
self.actionReloadLibraries = QAction(MainWindow)
self.actionReloadLibraries.setObjectName(u"actionReloadLibraries")
self.actionReloadSimulation = QAction(MainWindow)
self.actionReloadSimulation.setObjectName(u"actionReloadSimulation")
self.actionSave = QAction(MainWindow)
self.actionSave.setObjectName(u"actionSave")
icon8 = QIcon()
@@ -397,6 +399,7 @@ class Ui_MainWindow(object):
self.menuFile.addAction(self.actionNew)
self.menuFile.addAction(self.actionOpen)
self.menuFile.addAction(self.actionReloadLibraries)
self.menuFile.addAction(self.actionReloadSimulation)
self.menuFile.addSeparator()
self.menuFile.addAction(self.actionSave)
self.menuFile.addAction(self.actionSaveAs)
@@ -450,6 +453,9 @@ class Ui_MainWindow(object):
#if QT_CONFIG(statustip)
self.actionCompile.setStatusTip(QCoreApplication.translate("MainWindow", u"Compile the active graph for simulation", None))
#endif // QT_CONFIG(statustip)
#if QT_CONFIG(shortcut)
self.actionCompile.setShortcut(QCoreApplication.translate("MainWindow", u"F5", None))
#endif // QT_CONFIG(shortcut)
self.actionNew.setText(QCoreApplication.translate("MainWindow", u"&New", None))
#if QT_CONFIG(statustip)
self.actionNew.setStatusTip(QCoreApplication.translate("MainWindow", u"Create a new document", None))
@@ -488,7 +494,14 @@ class Ui_MainWindow(object):
self.actionReloadLibraries.setStatusTip(QCoreApplication.translate("MainWindow", u"Reload configured library files from disk", None))
#endif // QT_CONFIG(statustip)
#if QT_CONFIG(shortcut)
self.actionReloadLibraries.setShortcut(QCoreApplication.translate("MainWindow", u"F5", None))
self.actionReloadLibraries.setShortcut(QCoreApplication.translate("MainWindow", u"Shift+F5", None))
#endif // QT_CONFIG(shortcut)
self.actionReloadSimulation.setText(QCoreApplication.translate("MainWindow", u"Reload &Simulation Code", None))
#if QT_CONFIG(statustip)
self.actionReloadSimulation.setStatusTip(QCoreApplication.translate("MainWindow", u"Reload the simulation package while preserving runtime state", None))
#endif // QT_CONFIG(statustip)
#if QT_CONFIG(shortcut)
self.actionReloadSimulation.setShortcut(QCoreApplication.translate("MainWindow", u"Ctrl+F5", None))
#endif // QT_CONFIG(shortcut)
self.actionSave.setText(QCoreApplication.translate("MainWindow", u"&Save", None))
#if QT_CONFIG(statustip)

View File

@@ -0,0 +1,120 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'parameter_options_dialog.ui'
##
## Created by: Qt User Interface Compiler version 6.11.1
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QAbstractButton, QApplication, QDialog, QDialogButtonBox,
QFormLayout, QHBoxLayout, QLabel, QLineEdit,
QListWidget, QListWidgetItem, QPushButton, QSizePolicy,
QSplitter, QVBoxLayout, QWidget)
class Ui_ParameterOptionsDialog(object):
def setupUi(self, ParameterOptionsDialog):
if not ParameterOptionsDialog.objectName():
ParameterOptionsDialog.setObjectName(u"ParameterOptionsDialog")
ParameterOptionsDialog.resize(620, 380)
self.dialogLayout = QVBoxLayout(ParameterOptionsDialog)
self.dialogLayout.setObjectName(u"dialogLayout")
self.parameterSplitter = QSplitter(ParameterOptionsDialog)
self.parameterSplitter.setObjectName(u"parameterSplitter")
self.parameterSplitter.setOrientation(Qt.Orientation.Horizontal)
self.parameterListPanel = QWidget(self.parameterSplitter)
self.parameterListPanel.setObjectName(u"parameterListPanel")
self.parameterListLayout = QVBoxLayout(self.parameterListPanel)
self.parameterListLayout.setObjectName(u"parameterListLayout")
self.parameterListLayout.setContentsMargins(0, 0, 0, 0)
self.parameterList = QListWidget(self.parameterListPanel)
self.parameterList.setObjectName(u"parameterList")
self.parameterListLayout.addWidget(self.parameterList)
self.parameterButtonsLayout = QHBoxLayout()
self.parameterButtonsLayout.setObjectName(u"parameterButtonsLayout")
self.addParameterButton = QPushButton(self.parameterListPanel)
self.addParameterButton.setObjectName(u"addParameterButton")
self.parameterButtonsLayout.addWidget(self.addParameterButton)
self.removeParameterButton = QPushButton(self.parameterListPanel)
self.removeParameterButton.setObjectName(u"removeParameterButton")
self.parameterButtonsLayout.addWidget(self.removeParameterButton)
self.parameterListLayout.addLayout(self.parameterButtonsLayout)
self.parameterSplitter.addWidget(self.parameterListPanel)
self.parameterDetailsPanel = QWidget(self.parameterSplitter)
self.parameterDetailsPanel.setObjectName(u"parameterDetailsPanel")
self.parameterDetailsForm = QFormLayout(self.parameterDetailsPanel)
self.parameterDetailsForm.setObjectName(u"parameterDetailsForm")
self.parameterDetailsForm.setContentsMargins(0, 0, 0, 0)
self.nameLabel = QLabel(self.parameterDetailsPanel)
self.nameLabel.setObjectName(u"nameLabel")
self.parameterDetailsForm.setWidget(0, QFormLayout.ItemRole.LabelRole, self.nameLabel)
self.nameEdit = QLineEdit(self.parameterDetailsPanel)
self.nameEdit.setObjectName(u"nameEdit")
self.parameterDetailsForm.setWidget(0, QFormLayout.ItemRole.FieldRole, self.nameEdit)
self.typeLabel = QLabel(self.parameterDetailsPanel)
self.typeLabel.setObjectName(u"typeLabel")
self.parameterDetailsForm.setWidget(1, QFormLayout.ItemRole.LabelRole, self.typeLabel)
self.typeEdit = QLineEdit(self.parameterDetailsPanel)
self.typeEdit.setObjectName(u"typeEdit")
self.parameterDetailsForm.setWidget(1, QFormLayout.ItemRole.FieldRole, self.typeEdit)
self.valueLabel = QLabel(self.parameterDetailsPanel)
self.valueLabel.setObjectName(u"valueLabel")
self.parameterDetailsForm.setWidget(2, QFormLayout.ItemRole.LabelRole, self.valueLabel)
self.valueEdit = QLineEdit(self.parameterDetailsPanel)
self.valueEdit.setObjectName(u"valueEdit")
self.parameterDetailsForm.setWidget(2, QFormLayout.ItemRole.FieldRole, self.valueEdit)
self.parameterSplitter.addWidget(self.parameterDetailsPanel)
self.dialogLayout.addWidget(self.parameterSplitter)
self.buttonBox = QDialogButtonBox(ParameterOptionsDialog)
self.buttonBox.setObjectName(u"buttonBox")
self.buttonBox.setStandardButtons(QDialogButtonBox.StandardButton.Cancel|QDialogButtonBox.StandardButton.Ok)
self.dialogLayout.addWidget(self.buttonBox)
self.retranslateUi(ParameterOptionsDialog)
self.buttonBox.accepted.connect(ParameterOptionsDialog.accept)
self.buttonBox.rejected.connect(ParameterOptionsDialog.reject)
QMetaObject.connectSlotsByName(ParameterOptionsDialog)
# setupUi
def retranslateUi(self, ParameterOptionsDialog):
ParameterOptionsDialog.setWindowTitle(QCoreApplication.translate("ParameterOptionsDialog", u"Parameter Options", None))
self.addParameterButton.setText(QCoreApplication.translate("ParameterOptionsDialog", u"Add Parameter", None))
self.removeParameterButton.setText(QCoreApplication.translate("ParameterOptionsDialog", u"Remove Parameter", None))
self.nameLabel.setText(QCoreApplication.translate("ParameterOptionsDialog", u"Name:", None))
self.typeLabel.setText(QCoreApplication.translate("ParameterOptionsDialog", u"Type:", None))
self.valueLabel.setText(QCoreApplication.translate("ParameterOptionsDialog", u"Value:", None))
# retranslateUi

View File

@@ -15,17 +15,18 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QAbstractButton, QApplication, QDialog, QDialogButtonBox,
QFormLayout, QGroupBox, QHBoxLayout, QLabel,
QListWidget, QListWidgetItem, QPushButton, QSizePolicy,
QSpacerItem, QSpinBox, QTabWidget, QVBoxLayout,
from PySide6.QtWidgets import (QAbstractButton, QAbstractItemView, QApplication, QDialog,
QDialogButtonBox, QFormLayout, QGroupBox, QHBoxLayout,
QHeaderView, QLabel, QListWidget, QListWidgetItem,
QPushButton, QSizePolicy, QSpacerItem, QSpinBox,
QTabWidget, QTableWidget, QTableWidgetItem, QVBoxLayout,
QWidget)
class Ui_SettingsDialog(object):
def setupUi(self, SettingsDialog):
if not SettingsDialog.objectName():
SettingsDialog.setObjectName(u"SettingsDialog")
SettingsDialog.resize(480, 420)
SettingsDialog.resize(480, 520)
SettingsDialog.setModal(True)
self.dialogLayout = QVBoxLayout(SettingsDialog)
self.dialogLayout.setObjectName(u"dialogLayout")
@@ -103,6 +104,34 @@ class Ui_SettingsDialog(object):
self.generalLayout.addItem(self.generalSpacer)
self.settingsTabs.addTab(self.generalTab, "")
self.syntaxTab = QWidget()
self.syntaxTab.setObjectName(u"syntaxTab")
self.syntaxTabLayout = QVBoxLayout(self.syntaxTab)
self.syntaxTabLayout.setObjectName(u"syntaxTabLayout")
self.syntaxHintLabel = QLabel(self.syntaxTab)
self.syntaxHintLabel.setObjectName(u"syntaxHintLabel")
self.syntaxHintLabel.setWordWrap(True)
self.syntaxTabLayout.addWidget(self.syntaxHintLabel)
self.syntaxStylesTable = QTableWidget(self.syntaxTab)
if (self.syntaxStylesTable.columnCount() < 4):
self.syntaxStylesTable.setColumnCount(4)
__qtablewidgetitem = QTableWidgetItem()
self.syntaxStylesTable.setHorizontalHeaderItem(0, __qtablewidgetitem)
__qtablewidgetitem1 = QTableWidgetItem()
self.syntaxStylesTable.setHorizontalHeaderItem(1, __qtablewidgetitem1)
__qtablewidgetitem2 = QTableWidgetItem()
self.syntaxStylesTable.setHorizontalHeaderItem(2, __qtablewidgetitem2)
__qtablewidgetitem3 = QTableWidgetItem()
self.syntaxStylesTable.setHorizontalHeaderItem(3, __qtablewidgetitem3)
self.syntaxStylesTable.setObjectName(u"syntaxStylesTable")
self.syntaxStylesTable.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
self.syntaxStylesTable.setColumnCount(4)
self.syntaxTabLayout.addWidget(self.syntaxStylesTable)
self.settingsTabs.addTab(self.syntaxTab, "")
self.librariesTab = QWidget()
self.librariesTab.setObjectName(u"librariesTab")
self.librariesTabLayout = QVBoxLayout(self.librariesTab)
@@ -176,6 +205,16 @@ class Ui_SettingsDialog(object):
self.iconGridLabel.setText(QCoreApplication.translate("SettingsDialog", u"Icon grid size:", None))
self.iconGridSpinBox.setSuffix(QCoreApplication.translate("SettingsDialog", u" units", None))
self.settingsTabs.setTabText(self.settingsTabs.indexOf(self.generalTab), QCoreApplication.translate("SettingsDialog", u"General", None))
self.syntaxHintLabel.setText(QCoreApplication.translate("SettingsDialog", u"Double-click a colour cell to choose a colour. Word lists remain editable in data/syntax/openmodelica.json.", None))
___qtablewidgetitem = self.syntaxStylesTable.horizontalHeaderItem(0)
___qtablewidgetitem.setText(QCoreApplication.translate("SettingsDialog", u"Expression type", None))
___qtablewidgetitem1 = self.syntaxStylesTable.horizontalHeaderItem(1)
___qtablewidgetitem1.setText(QCoreApplication.translate("SettingsDialog", u"Colour", None))
___qtablewidgetitem2 = self.syntaxStylesTable.horizontalHeaderItem(2)
___qtablewidgetitem2.setText(QCoreApplication.translate("SettingsDialog", u"Bold", None))
___qtablewidgetitem3 = self.syntaxStylesTable.horizontalHeaderItem(3)
___qtablewidgetitem3.setText(QCoreApplication.translate("SettingsDialog", u"Italic", None))
self.settingsTabs.setTabText(self.settingsTabs.indexOf(self.syntaxTab), QCoreApplication.translate("SettingsDialog", u"Text highlighting", None))
self.libraryPathsLabel.setText(QCoreApplication.translate("SettingsDialog", u"Load library JSON or BEdit Binary files from these files or folders at startup:", None))
self.addLibraryFileButton.setText(QCoreApplication.translate("SettingsDialog", u"Add File\u2026", None))
self.addLibraryFolderButton.setText(QCoreApplication.translate("SettingsDialog", u"Add Folder\u2026", None))

View File

@@ -16,9 +16,11 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QAbstractItemView, QApplication, QGroupBox, QHBoxLayout,
QHeaderView, QPlainTextEdit, QPushButton, QSizePolicy,
QSpacerItem, QSplitter, QTableWidget, QTableWidgetItem,
QVBoxLayout, QWidget)
QHeaderView, QPushButton, QSizePolicy, QSpacerItem,
QSplitter, QTableWidget, QTableWidgetItem, QVBoxLayout,
QWidget)
from bedit.gui.editors.openmodelica import OpenModelicaEditor
class Ui_TextDefinitionEditor(object):
def setupUi(self, TextDefinitionEditor):
@@ -36,9 +38,8 @@ class Ui_TextDefinitionEditor(object):
self.equationsGroup.setObjectName(u"equationsGroup")
self.equationsLayout = QVBoxLayout(self.equationsGroup)
self.equationsLayout.setObjectName(u"equationsLayout")
self.equationsEdit = QPlainTextEdit(self.equationsGroup)
self.equationsEdit = OpenModelicaEditor(self.equationsGroup)
self.equationsEdit.setObjectName(u"equationsEdit")
self.equationsEdit.setLineWrapMode(QPlainTextEdit.LineWrapMode.NoWrap)
self.equationsLayout.addWidget(self.equationsEdit)
@@ -141,7 +142,6 @@ class Ui_TextDefinitionEditor(object):
def retranslateUi(self, TextDefinitionEditor):
self.equationsGroup.setTitle(QCoreApplication.translate("TextDefinitionEditor", u"Equations", None))
self.equationsEdit.setPlaceholderText(QCoreApplication.translate("TextDefinitionEditor", u"Enter equations here\u2026", None))
self.portsGroup.setTitle(QCoreApplication.translate("TextDefinitionEditor", u"Ports", None))
___qtablewidgetitem = self.portsTable.horizontalHeaderItem(0)
___qtablewidgetitem.setText(QCoreApplication.translate("TextDefinitionEditor", u"Name", None))