From c5c1f47c20452048fa62a1b3c14db502c01fc48d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 14 Jun 2025 19:04:43 -0400 Subject: [PATCH] move redundant code to find pointer to main widget to helper function --- tools/lammps-gui/chartviewer.cpp | 9 +++------ tools/lammps-gui/fileviewer.cpp | 9 +++------ tools/lammps-gui/findandreplace.cpp | 5 ++--- tools/lammps-gui/helpers.cpp | 11 +++++++++++ tools/lammps-gui/helpers.h | 3 +++ tools/lammps-gui/imageviewer.cpp | 5 ++--- tools/lammps-gui/lammpsgui.cpp | 4 +--- tools/lammps-gui/logwindow.cpp | 9 +++------ tools/lammps-gui/preferences.cpp | 5 +---- tools/lammps-gui/slideshow.cpp | 8 ++------ 10 files changed, 31 insertions(+), 37 deletions(-) diff --git a/tools/lammps-gui/chartviewer.cpp b/tools/lammps-gui/chartviewer.cpp index 211371e7a6..821abdb921 100644 --- a/tools/lammps-gui/chartviewer.cpp +++ b/tools/lammps-gui/chartviewer.cpp @@ -13,6 +13,7 @@ #include "chartviewer.h" +#include "helpers.h" #include "lammpsgui.h" #include @@ -221,9 +222,7 @@ void ChartWindow::add_data(int step, double data, int index) void ChartWindow::quit() { - LammpsGui *main = nullptr; - for (QWidget *widget : QApplication::topLevelWidgets()) - if (widget->objectName() == "LammpsGui") main = dynamic_cast(widget); + auto *main = dynamic_cast(get_main_widget()); if (main) main->quit(); } @@ -238,9 +237,7 @@ void ChartWindow::reset_zoom() void ChartWindow::stop_run() { - LammpsGui *main = nullptr; - for (QWidget *widget : QApplication::topLevelWidgets()) - if (widget->objectName() == "LammpsGui") main = dynamic_cast(widget); + auto *main = dynamic_cast(get_main_widget()); if (main) main->stop_run(); } diff --git a/tools/lammps-gui/fileviewer.cpp b/tools/lammps-gui/fileviewer.cpp index 996c5eb890..7af4ae642e 100644 --- a/tools/lammps-gui/fileviewer.cpp +++ b/tools/lammps-gui/fileviewer.cpp @@ -13,6 +13,7 @@ #include "fileviewer.h" +#include "helpers.h" #include "lammpsgui.h" #include @@ -107,17 +108,13 @@ FileViewer::FileViewer(const QString &_filename, QString title, QWidget *parent) void FileViewer::quit() { - LammpsGui *main = nullptr; - for (QWidget *widget : QApplication::topLevelWidgets()) - if (widget->objectName() == "LammpsGui") main = dynamic_cast(widget); + auto *main = dynamic_cast(get_main_widget()); if (main) main->quit(); } void FileViewer::stop_run() { - LammpsGui *main = nullptr; - for (QWidget *widget : QApplication::topLevelWidgets()) - if (widget->objectName() == "LammpsGui") main = dynamic_cast(widget); + auto *main = dynamic_cast(get_main_widget()); if (main) main->stop_run(); } diff --git a/tools/lammps-gui/findandreplace.cpp b/tools/lammps-gui/findandreplace.cpp index e986dc4edf..723f6a4833 100644 --- a/tools/lammps-gui/findandreplace.cpp +++ b/tools/lammps-gui/findandreplace.cpp @@ -14,6 +14,7 @@ #include "findandreplace.h" #include "codeeditor.h" +#include "helpers.h" #include "lammpsgui.h" #include @@ -137,9 +138,7 @@ void FindAndReplace::replace_all() void FindAndReplace::quit() { - LammpsGui *main = nullptr; - for (QWidget *widget : QApplication::topLevelWidgets()) - if (widget->objectName() == "LammpsGui") main = dynamic_cast(widget); + auto *main = dynamic_cast(get_main_widget()); if (main) main->quit(); } diff --git a/tools/lammps-gui/helpers.cpp b/tools/lammps-gui/helpers.cpp index cac5d86482..c486c9e670 100644 --- a/tools/lammps-gui/helpers.cpp +++ b/tools/lammps-gui/helpers.cpp @@ -13,6 +13,7 @@ #include "helpers.h" +#include #include #include #include @@ -21,6 +22,7 @@ #include #include #include +#include // duplicate string, STL version char *mystrdup(const std::string &text) @@ -42,6 +44,15 @@ char *mystrdup(const QString &text) return mystrdup(text.toStdString()); } +// get pointer to LAMMPS-GUI main widget + +QWidget *get_main_widget() +{ + for (QWidget *widget : QApplication::topLevelWidgets()) + if (widget->objectName() == "LammpsGui") return widget; + return nullptr; +} + // find if executable is in path // https://stackoverflow.com/a/51041497 diff --git a/tools/lammps-gui/helpers.h b/tools/lammps-gui/helpers.h index b3269e6d61..bc8ebd0fa8 100644 --- a/tools/lammps-gui/helpers.h +++ b/tools/lammps-gui/helpers.h @@ -22,6 +22,9 @@ extern char *mystrdup(const std::string &text); extern char *mystrdup(const char *text); extern char *mystrdup(const QString &text); +// get pointer to LAMMPS-GUI main widget +extern class QWidget *get_main_widget(); + // find if executable is in path extern bool has_exe(const QString &exe); diff --git a/tools/lammps-gui/imageviewer.cpp b/tools/lammps-gui/imageviewer.cpp index 5f519ca9a7..e6e3d7ad66 100644 --- a/tools/lammps-gui/imageviewer.cpp +++ b/tools/lammps-gui/imageviewer.cpp @@ -13,6 +13,7 @@ #include "imageviewer.h" +#include "helpers.h" #include "lammpsgui.h" #include "lammpswrapper.h" @@ -769,9 +770,7 @@ void ImageViewer::copy() {} void ImageViewer::quit() { - LammpsGui *main = nullptr; - for (QWidget *widget : QApplication::topLevelWidgets()) - if (widget->objectName() == "LammpsGui") main = dynamic_cast(widget); + auto *main = dynamic_cast(get_main_widget()); if (main) main->quit(); } diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index f23f2daa31..ec7fc6bf90 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -2215,9 +2215,7 @@ void TutorialWizard::accept() // get hold of LAMMPS-GUI main widget if (dirname) { - LammpsGui *main = nullptr; - for (QWidget *widget : QApplication::topLevelWidgets()) - if (widget->objectName() == "LammpsGui") main = dynamic_cast(widget); + auto *main = dynamic_cast(get_main_widget()); if (main) main->setup_tutorial(_ntutorial, curdir, purgedir, getsolution, openwebpage); } } diff --git a/tools/lammps-gui/logwindow.cpp b/tools/lammps-gui/logwindow.cpp index 49b168b616..ff81af291b 100644 --- a/tools/lammps-gui/logwindow.cpp +++ b/tools/lammps-gui/logwindow.cpp @@ -14,6 +14,7 @@ #include "logwindow.h" #include "flagwarnings.h" +#include "helpers.h" #include "lammpsgui.h" #include @@ -107,17 +108,13 @@ void LogWindow::closeEvent(QCloseEvent *event) void LogWindow::quit() { - LammpsGui *main = nullptr; - for (QWidget *widget : QApplication::topLevelWidgets()) - if (widget->objectName() == "LammpsGui") main = dynamic_cast(widget); + auto *main = dynamic_cast(get_main_widget()); if (main) main->quit(); } void LogWindow::stop_run() { - LammpsGui *main = nullptr; - for (QWidget *widget : QApplication::topLevelWidgets()) - if (widget->objectName() == "LammpsGui") main = dynamic_cast(widget); + auto *main = dynamic_cast(get_main_widget()); if (main) main->stop_run(); } diff --git a/tools/lammps-gui/preferences.cpp b/tools/lammps-gui/preferences.cpp index 6eba1ed19d..609f82a276 100644 --- a/tools/lammps-gui/preferences.cpp +++ b/tools/lammps-gui/preferences.cpp @@ -337,10 +337,7 @@ GeneralTab::GeneralTab(QSettings *_settings, LammpsWrapper *_lammps, QWidget *pa void GeneralTab::updatefonts(const QFont &all, const QFont &text) { - LammpsGui *main = nullptr; - for (QWidget *widget : QApplication::topLevelWidgets()) - if (widget->objectName() == "LammpsGui") main = dynamic_cast(widget); - + auto *main = dynamic_cast(get_main_widget()); if (main) { main->setFont(all); main->ui->textEdit->document()->setDefaultFont(text); diff --git a/tools/lammps-gui/slideshow.cpp b/tools/lammps-gui/slideshow.cpp index 08b854becd..df1659e4f5 100644 --- a/tools/lammps-gui/slideshow.cpp +++ b/tools/lammps-gui/slideshow.cpp @@ -212,17 +212,13 @@ void SlideShow::loadImage(int idx) void SlideShow::quit() { - LammpsGui *main = nullptr; - for (QWidget *widget : QApplication::topLevelWidgets()) - if (widget->objectName() == "LammpsGui") main = dynamic_cast(widget); + auto *main = dynamic_cast(get_main_widget()); if (main) main->quit(); } void SlideShow::stop_run() { - LammpsGui *main = nullptr; - for (QWidget *widget : QApplication::topLevelWidgets()) - if (widget->objectName() == "LammpsGui") main = dynamic_cast(widget); + auto *main = dynamic_cast(get_main_widget()); if (main) main->stop_run(); }