Added run button and parameter dialog

This commit is contained in:
2026-07-20 18:46:59 +02:00
parent 4cfe7c3a0e
commit 38e3d7aae9
16 changed files with 587 additions and 72 deletions

View File

@@ -26,6 +26,7 @@ class SettingsDialog(QDialog):
self.ui.addLibraryFileButton.clicked.connect(self._add_library_file)
self.ui.addLibraryFolderButton.clicked.connect(self._add_library_folder)
self.ui.removeLibraryPathButton.clicked.connect(self._remove_library_path)
self.ui.browseOpenModelicaButton.clicked.connect(self._browse_openmodelica)
self.ui.libraryPathsList.itemSelectionChanged.connect(self._update_remove_button)
self.ui.syntaxStylesTable.cellDoubleClicked.connect(self._choose_syntax_color)
self._load_settings()
@@ -46,6 +47,7 @@ class SettingsDialog(QDialog):
self.ui.graphGridSpinBox.setValue(self.graph_grid_size(self.settings))
self.ui.graphSnapSpinBox.setValue(self.graph_snap_size(self.settings))
self.ui.iconGridSpinBox.setValue(self.icon_grid_size(self.settings))
self.ui.openModelicaPathEdit.setText(self.openmodelica_path(self.settings))
self._load_syntax_styles()
self._update_remove_button()
@@ -130,6 +132,25 @@ class SettingsDialog(QDialog):
settings = settings if settings is not None else application_settings()
return settings.value("grid/iconSize", 8, type=int)
@staticmethod
def openmodelica_path(settings: QSettings | None = None) -> str:
settings = settings if settings is not None else application_settings()
return str(settings.value("simulation/openModelicaPath", "") or "")
def _browse_openmodelica(self) -> None:
current = self.ui.openModelicaPathEdit.text().strip()
start = str(Path(current).expanduser().parent) if current else ""
path, _ = QFileDialog.getOpenFileName(
self,
"Select OpenModelica executable",
start,
"OpenModelica compiler (omc omc.exe);;All files (*)",
)
if path:
# Keep symlink paths such as ~/.local/bin/omc intact; resolving them
# could turn the selected launcher into an unrelated container script.
self.ui.openModelicaPathEdit.setText(str(Path(path).expanduser().absolute()))
def _add_library_file(self) -> None:
path, _ = QFileDialog.getOpenFileName(
self,
@@ -176,6 +197,10 @@ class SettingsDialog(QDialog):
self.settings.setValue("grid/graphSize", self.ui.graphGridSpinBox.value())
self.settings.setValue("grid/graphSnapSize", self.ui.graphSnapSpinBox.value())
self.settings.setValue("grid/iconSize", self.ui.iconGridSpinBox.value())
self.settings.setValue(
"simulation/openModelicaPath",
self.ui.openModelicaPathEdit.text().strip(),
)
for row in range(self.ui.syntaxStylesTable.rowCount()):
category = self.ui.syntaxStylesTable.item(row, 0).data(
Qt.ItemDataRole.UserRole