From 224951af814ecee63d24944c31169971680c2ee8 Mon Sep 17 00:00:00 2001 From: marioalexis Date: Wed, 29 Oct 2025 01:47:38 -0300 Subject: [PATCH] Fem: Use FileChooser widget in CalculiX task panel --- .../Fem/Gui/Resources/ui/SolverCalculiX.ui | 12 ++++------ .../Fem/femsolver/calculix/calculixtools.py | 4 ++-- .../Fem/femtaskpanels/task_solver_calculix.py | 23 +++++-------------- 3 files changed, 12 insertions(+), 27 deletions(-) diff --git a/src/Mod/Fem/Gui/Resources/ui/SolverCalculiX.ui b/src/Mod/Fem/Gui/Resources/ui/SolverCalculiX.ui index cc4f0869b6..a3b311be81 100644 --- a/src/Mod/Fem/Gui/Resources/ui/SolverCalculiX.ui +++ b/src/Mod/Fem/Gui/Resources/ui/SolverCalculiX.ui @@ -51,19 +51,15 @@ - + Path to working directory - true + false - - - - - - + + Gui::FileChooser::Mode::Directory diff --git a/src/Mod/Fem/femsolver/calculix/calculixtools.py b/src/Mod/Fem/femsolver/calculix/calculixtools.py index 4a49d1f557..a9921ca122 100644 --- a/src/Mod/Fem/femsolver/calculix/calculixtools.py +++ b/src/Mod/Fem/femsolver/calculix/calculixtools.py @@ -26,7 +26,7 @@ __author__ = "Mario Passaglia" __url__ = "https://www.freecad.org" -from PySide.QtCore import QProcess, QThread +from PySide.QtCore import QProcess, QThread, QProcessEnvironment import tempfile import os import shutil @@ -111,7 +111,7 @@ class CalculiXTools: def compute(self): self._clear_results() ccx_bin = settings.get_binary("Calculix") - env = self.process.processEnvironment() + env = QProcessEnvironment.systemEnvironment() num_cpu = self.fem_param.GetGroup("Ccx").GetInt( "AnalysisNumCPUs", QThread.idealThreadCount() ) diff --git a/src/Mod/Fem/femtaskpanels/task_solver_calculix.py b/src/Mod/Fem/femtaskpanels/task_solver_calculix.py index 583286706e..3ef72ab39f 100644 --- a/src/Mod/Fem/femtaskpanels/task_solver_calculix.py +++ b/src/Mod/Fem/femtaskpanels/task_solver_calculix.py @@ -81,18 +81,13 @@ class _TaskPanel(base_femlogtaskpanel._BaseLogTaskPanel): self.form.pb_edit_input, QtCore.SIGNAL("clicked()"), self.edit_input_clicked ) QtCore.QObject.connect( - self.form.pb_working_directory, - QtCore.SIGNAL("clicked()"), - self.working_directory_clicked, + self.form.fc_working_directory, + QtCore.SIGNAL("fileNameSelected(QString)"), + self.working_directory_selected, ) QtCore.QObject.connect( self.form.pb_solver_version, QtCore.SIGNAL("clicked()"), self.get_version ) - QtCore.QObject.connect( - self.form.let_working_directory, - QtCore.SIGNAL("editingFinished()"), - self.working_directory_edited, - ) self.get_object_params() self.set_widgets() @@ -131,7 +126,7 @@ class _TaskPanel(base_femlogtaskpanel._BaseLogTaskPanel): self.form.cb_analysis_type.addItems(self.analysis_type_enum) self.form.cb_analysis_type.setCurrentIndex(index) - self.form.let_working_directory.setText(self.obj.WorkingDirectory) + self.form.fc_working_directory.setProperty("fileName", self.obj.WorkingDirectory) self.form.ckb_working_directory.setChecked(False) self.form.gpb_working_directory.setVisible(False) @@ -139,14 +134,8 @@ class _TaskPanel(base_femlogtaskpanel._BaseLogTaskPanel): self.analysis_type = self.analysis_type_enum[index] self.obj.AnalysisType = self.analysis_type - def working_directory_clicked(self): - directory = QtGui.QFileDialog.getExistingDirectory(dir=self.obj.WorkingDirectory) - if directory: - self.form.let_working_directory.setText(directory) - self.form.let_working_directory.editingFinished.emit() - - def working_directory_edited(self): - self.obj.WorkingDirectory = self.form.let_working_directory.text() + def working_directory_selected(self): + self.obj.WorkingDirectory = self.form.fc_working_directory.property("fileName") def write_input_clicked(self): self.prepared = False