From 3a8aedf39ea1de8c570c2bab866e8dbcee4ff506 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Thu, 23 Nov 2023 14:01:21 +0100
Subject: [PATCH] Revert "remove autocreation project on startup"

This reverts commit bfdf0aaf07cf5912a2cd92d519082ccf0cd65b83.
---
 GUI/View/Main/ActionManager.cpp         | 10 ++++++++++
 GUI/View/Main/MainWindow.cpp            |  3 +++
 GUI/View/Widget/ApplicationSettings.cpp | 11 +++++++++++
 GUI/View/Widget/ApplicationSettings.h   |  2 ++
 4 files changed, 26 insertions(+)

diff --git a/GUI/View/Main/ActionManager.cpp b/GUI/View/Main/ActionManager.cpp
index 363393c4dbb..3e5ce8e85ff 100644
--- a/GUI/View/Main/ActionManager.cpp
+++ b/GUI/View/Main/ActionManager.cpp
@@ -225,6 +225,16 @@ void ActionManager::onAboutToShowSettingsMenu()
             &ProjectManager::setAutosaveEnabled);
     m_settingsMenu->addAction(action);
 
+    action = new QWidgetAction(m_settingsMenu);
+    checkBox = new QCheckBox("&Create project on startup", m_settingsMenu);
+    action->setText("&Create project on startup");
+    action->setDefaultWidget(checkBox);
+    action->setCheckable(true);
+    checkBox->setChecked(appSettings->createNewProjectOnStartup());
+    connect(checkBox, &QCheckBox::toggled,
+            [](bool b) { appSettings->setCreateNewProjectOnStartup(b); });
+    m_settingsMenu->addAction(action);
+
     m_settingsMenu->addSeparator();
 
     auto* styleMenu = m_settingsMenu->addMenu("Interface Style");
diff --git a/GUI/View/Main/MainWindow.cpp b/GUI/View/Main/MainWindow.cpp
index 7bdaeb4a59b..af66ce8b559 100644
--- a/GUI/View/Main/MainWindow.cpp
+++ b/GUI/View/Main/MainWindow.cpp
@@ -102,6 +102,9 @@ MainWindow::MainWindow()
     m_viewSelectionButtons->button(GUI::ID::ViewId::Projects)->setChecked(true);
 
     updateTitle();
+    if (appSettings)
+        if (appSettings->createNewProjectOnStartup())
+            m_projectManager->newProject();
 }
 
 MainWindow::~MainWindow() = default;
diff --git a/GUI/View/Widget/ApplicationSettings.cpp b/GUI/View/Widget/ApplicationSettings.cpp
index e497d6199e2..292c6923b0d 100644
--- a/GUI/View/Widget/ApplicationSettings.cpp
+++ b/GUI/View/Widget/ApplicationSettings.cpp
@@ -23,6 +23,7 @@
 
 namespace {
 
+const QString S_CREATE_NEW_PROJECT_ON_STARTUP = "CreateNewProjectOnStartup";
 const QString S_STYLE = "UiStyle";
 const QString S_SIZE = "Size";
 const QString S_POS = "Pos";
@@ -48,6 +49,16 @@ bool ApplicationSettings::useNativeFileDialog() const
 #endif
 }
 
+bool ApplicationSettings::createNewProjectOnStartup() const
+{
+    return QSettings().value(S_CREATE_NEW_PROJECT_ON_STARTUP, false).toBool();
+}
+
+void ApplicationSettings::setCreateNewProjectOnStartup(bool b)
+{
+    QSettings().setValue(S_CREATE_NEW_PROJECT_ON_STARTUP, b);
+}
+
 ApplicationSettings::Style ApplicationSettings::styleToUse() const
 {
     return static_cast<Style>(QSettings().value(S_STYLE, static_cast<int>(Style::light)).toInt());
diff --git a/GUI/View/Widget/ApplicationSettings.h b/GUI/View/Widget/ApplicationSettings.h
index c2a24f7c3d1..86b8a8a57b0 100644
--- a/GUI/View/Widget/ApplicationSettings.h
+++ b/GUI/View/Widget/ApplicationSettings.h
@@ -32,6 +32,8 @@ public:
     ApplicationSettings();
 
     bool useNativeFileDialog() const;
+    bool createNewProjectOnStartup() const;
+    void setCreateNewProjectOnStartup(bool b);
     Style styleToUse() const;
     void setStyleToUse(Style style);
 
-- 
GitLab