diff --git a/GUI/View/Main/ActionManager.cpp b/GUI/View/Main/ActionManager.cpp index 363393c4dbb6a2c3567127fe4fbff009e7ffc5ec..3e5ce8e85ff6243d8bbbe40cb23bae8de3017f6a 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 7bdaeb4a59bf4861f8e0fdde9b79abcd06896433..af66ce8b5593570f08adb32400fa33b2f913801e 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 e497d6199e2f2cded789823a08f0e95710f7597e..292c6923b0db97c4b36956aa33cd27f55728d206 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 c2a24f7c3d1b4c4b86edbf799ddc8d6f3e0729c6..86b8a8a57b0e52ae2134293f3b097efec64f4526 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);