From 885581d4e88c26dbbd9dca5e68b6c90b3109c3dc Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Wed, 13 Mar 2024 09:31:21 +0100
Subject: [PATCH] initialize gApp in main, through same mechanism as gDoc

---
 App/main.cpp                            | 4 ++--
 GUI/View/Layout/ApplicationSettings.cpp | 4 +---
 GUI/View/Layout/ApplicationSettings.h   | 2 +-
 3 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/App/main.cpp b/App/main.cpp
index 663f58a9dde..45d009f9584 100644
--- a/App/main.cpp
+++ b/App/main.cpp
@@ -70,13 +70,13 @@ int main(int argc, char* argv[])
     app.setWindowIcon(QIcon(":/images/BornAgain.ico"));
 #endif
 
-    ApplicationSettings applicationSettings;
+    gDirs = std::make_unique<Dirs>();
+    gApp = std::make_unique<ApplicationSettings>();
 
     QString dir = GUI::Path::appDataFolder();
     if (!QDir().exists(dir))
         QDir().mkpath(dir);
 
-    gDirs = std::make_unique<Dirs>();
     gDoc = std::make_unique<ProjectDocument>();
 
     MainWindow win;
diff --git a/GUI/View/Layout/ApplicationSettings.cpp b/GUI/View/Layout/ApplicationSettings.cpp
index 3165ce9c86a..01b3b7a7dcf 100644
--- a/GUI/View/Layout/ApplicationSettings.cpp
+++ b/GUI/View/Layout/ApplicationSettings.cpp
@@ -28,12 +28,10 @@ const QString S_SINGLE_SAMPLE_MODE = "SingleSampleMode";
 
 } // namespace
 
-BA_GUI_API_ ApplicationSettings* gApp; //!< global pointer to _the_ instance
+BA_GUI_API_ std::unique_ptr<ApplicationSettings> gApp; //!< global pointer to _the_ instance
 
 ApplicationSettings::ApplicationSettings()
 {
-    gApp = this;
-
     QFile base(":/styles/Base.stylesheet");
     base.open(QFile::ReadOnly);
     QString stylesheet = base.readAll();
diff --git a/GUI/View/Layout/ApplicationSettings.h b/GUI/View/Layout/ApplicationSettings.h
index 5a486458233..3e0b676351f 100644
--- a/GUI/View/Layout/ApplicationSettings.h
+++ b/GUI/View/Layout/ApplicationSettings.h
@@ -33,6 +33,6 @@ public:
     QString xml_dir;
 };
 
-BA_GUI_API_ extern ApplicationSettings* gApp; //!< global pointer to the single instance
+BA_GUI_API_ extern std::unique_ptr<ApplicationSettings> gApp; //!< global pointer to _the_ instance
 
 #endif // BORNAGAIN_GUI_VIEW_LAYOUT_APPLICATIONSETTINGS_H
-- 
GitLab