From faa1f96f08f87c7ce9686db4ea2e82399907f157 Mon Sep 17 00:00:00 2001 From: Uwe Date: Sun, 17 Jul 2022 01:43:58 +0200 Subject: [PATCH] [FEM] check if Gmsh, CCX and Mystran solver binaries exist - adds the check like we have already for Z88 and Elmer - also remove an unnecessary return statement --- src/Mod/Fem/Gui/DlgSettingsFemCcxImp.cpp | 13 +++++++++++++ src/Mod/Fem/Gui/DlgSettingsFemCcxImp.h | 3 +++ src/Mod/Fem/Gui/DlgSettingsFemElmerImp.cpp | 1 - src/Mod/Fem/Gui/DlgSettingsFemGmshImp.cpp | 15 +++++++++++++++ src/Mod/Fem/Gui/DlgSettingsFemGmshImp.h | 3 +++ src/Mod/Fem/Gui/DlgSettingsFemMystranImp.cpp | 15 +++++++++++++++ src/Mod/Fem/Gui/DlgSettingsFemMystranImp.h | 3 +++ 7 files changed, 52 insertions(+), 1 deletion(-) diff --git a/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.cpp b/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.cpp index f3f5b5ff30..68ed8742cc 100644 --- a/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.cpp +++ b/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.cpp @@ -26,6 +26,7 @@ #include "PreCompiled.h" #ifndef _PreComp_ # include +# include #endif #include @@ -49,6 +50,9 @@ DlgSettingsFemCcxImp::DlgSettingsFemCcxImp(QWidget* parent) // hardware check might fail and then returns 0 if (processor_count > 0) ui->sb_ccx_numcpu->setMaximum(processor_count); + + connect(ui->fc_ccx_binary_path, &Gui::PrefFileChooser::fileNameChanged, + this, &DlgSettingsFemCcxImp::onfileNameChanged); } DlgSettingsFemCcxImp::~DlgSettingsFemCcxImp() @@ -135,4 +139,13 @@ void DlgSettingsFemCcxImp::changeEvent(QEvent* e) } } +void DlgSettingsFemCcxImp::onfileNameChanged(QString FileName) +{ + if (!QFileInfo::exists(FileName)) { + QMessageBox::critical(this, tr("File does not exist"), + tr("The specified executable \n'%1'\n does not exist!\n" + "Specify another file please.").arg(FileName)); + } +} + #include "moc_DlgSettingsFemCcxImp.cpp" diff --git a/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.h b/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.h index 0ef22f5594..4b5d012f30 100644 --- a/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.h +++ b/src/Mod/Fem/Gui/DlgSettingsFemCcxImp.h @@ -40,6 +40,9 @@ public: DlgSettingsFemCcxImp( QWidget* parent = nullptr ); ~DlgSettingsFemCcxImp(); +protected Q_SLOTS: + void onfileNameChanged(QString FileName); + protected: void saveSettings(); void loadSettings(); diff --git a/src/Mod/Fem/Gui/DlgSettingsFemElmerImp.cpp b/src/Mod/Fem/Gui/DlgSettingsFemElmerImp.cpp index cc6a40dc59..57abe66272 100644 --- a/src/Mod/Fem/Gui/DlgSettingsFemElmerImp.cpp +++ b/src/Mod/Fem/Gui/DlgSettingsFemElmerImp.cpp @@ -102,7 +102,6 @@ void DlgSettingsFemElmerImp::onfileNameChanged(QString FileName) QMessageBox::critical(this, tr("File does not exist"), tr("The specified executable \n'%1'\n does not exist!\n" "Specify another file please.").arg(FileName)); - return; } } diff --git a/src/Mod/Fem/Gui/DlgSettingsFemGmshImp.cpp b/src/Mod/Fem/Gui/DlgSettingsFemGmshImp.cpp index 986df854d6..6d1881bc2b 100644 --- a/src/Mod/Fem/Gui/DlgSettingsFemGmshImp.cpp +++ b/src/Mod/Fem/Gui/DlgSettingsFemGmshImp.cpp @@ -23,6 +23,9 @@ ***************************************************************************/ #include "PreCompiled.h" +#ifndef _PreComp_ +# include +#endif #include "DlgSettingsFemGmshImp.h" #include "ui_DlgSettingsFemGmsh.h" @@ -35,6 +38,9 @@ DlgSettingsFemGmshImp::DlgSettingsFemGmshImp(QWidget* parent) , ui(new Ui_DlgSettingsFemGmshImp) { ui->setupUi(this); + + connect(ui->fc_gmsh_binary_path, &Gui::PrefFileChooser::fileNameChanged, + this, &DlgSettingsFemGmshImp::onfileNameChanged); } DlgSettingsFemGmshImp::~DlgSettingsFemGmshImp() @@ -67,4 +73,13 @@ void DlgSettingsFemGmshImp::changeEvent(QEvent* e) } } +void DlgSettingsFemGmshImp::onfileNameChanged(QString FileName) +{ + if (!QFileInfo::exists(FileName)) { + QMessageBox::critical(this, tr("File does not exist"), + tr("The specified executable \n'%1'\n does not exist!\n" + "Specify another file please.").arg(FileName)); + } +} + #include "moc_DlgSettingsFemGmshImp.cpp" diff --git a/src/Mod/Fem/Gui/DlgSettingsFemGmshImp.h b/src/Mod/Fem/Gui/DlgSettingsFemGmshImp.h index cc453e70e7..9144e3015d 100644 --- a/src/Mod/Fem/Gui/DlgSettingsFemGmshImp.h +++ b/src/Mod/Fem/Gui/DlgSettingsFemGmshImp.h @@ -39,6 +39,9 @@ public: DlgSettingsFemGmshImp( QWidget* parent = nullptr ); ~DlgSettingsFemGmshImp(); +protected Q_SLOTS: + void onfileNameChanged(QString FileName); + protected: void saveSettings(); void loadSettings(); diff --git a/src/Mod/Fem/Gui/DlgSettingsFemMystranImp.cpp b/src/Mod/Fem/Gui/DlgSettingsFemMystranImp.cpp index cd86381325..2884725e56 100644 --- a/src/Mod/Fem/Gui/DlgSettingsFemMystranImp.cpp +++ b/src/Mod/Fem/Gui/DlgSettingsFemMystranImp.cpp @@ -23,6 +23,9 @@ ***************************************************************************/ #include "PreCompiled.h" +#ifndef _PreComp_ +# include +#endif #include "DlgSettingsFemMystranImp.h" #include "ui_DlgSettingsFemMystran.h" @@ -35,6 +38,9 @@ DlgSettingsFemMystranImp::DlgSettingsFemMystranImp(QWidget* parent) , ui(new Ui_DlgSettingsFemMystranImp) { ui->setupUi(this); + + connect(ui->fc_mystran_binary_path, &Gui::PrefFileChooser::fileNameChanged, + this, &DlgSettingsFemMystranImp::onfileNameChanged); } DlgSettingsFemMystranImp::~DlgSettingsFemMystranImp() @@ -69,4 +75,13 @@ void DlgSettingsFemMystranImp::changeEvent(QEvent* e) } } +void DlgSettingsFemMystranImp::onfileNameChanged(QString FileName) +{ + if (!QFileInfo::exists(FileName)) { + QMessageBox::critical(this, tr("File does not exist"), + tr("The specified executable \n'%1'\n does not exist!\n" + "Specify another file please.").arg(FileName)); + } +} + #include "moc_DlgSettingsFemMystranImp.cpp" diff --git a/src/Mod/Fem/Gui/DlgSettingsFemMystranImp.h b/src/Mod/Fem/Gui/DlgSettingsFemMystranImp.h index 8938be99e2..605d240054 100644 --- a/src/Mod/Fem/Gui/DlgSettingsFemMystranImp.h +++ b/src/Mod/Fem/Gui/DlgSettingsFemMystranImp.h @@ -40,6 +40,9 @@ public: DlgSettingsFemMystranImp( QWidget* parent = nullptr ); ~DlgSettingsFemMystranImp(); +protected Q_SLOTS: + void onfileNameChanged(QString FileName); + protected: void saveSettings(); void loadSettings();