From fee1d97604157f587172fea8e5d37b72add88469 Mon Sep 17 00:00:00 2001 From: malte_langkabel Date: Wed, 23 Mar 2016 14:15:30 +0100 Subject: [PATCH] ui: moved recent projects submenu * moved the menu entry for "recent projects" to be placed close to "open project" * replaced enum for MaxRecentProjectsCount in AppSettings by a getter function. --- src/lib/settings/ApplicationSettings.cpp | 5 +++ src/lib/settings/ApplicationSettings.h | 5 +-- src/lib_gui/qt/window/QtMainWindow.cpp | 42 +++++++++++++----------- src/lib_gui/qt/window/QtStartScreen.cpp | 2 +- 4 files changed, 30 insertions(+), 24 deletions(-) diff --git a/src/lib/settings/ApplicationSettings.cpp b/src/lib/settings/ApplicationSettings.cpp index c15c714a..f5ae858a 100644 --- a/src/lib/settings/ApplicationSettings.cpp +++ b/src/lib/settings/ApplicationSettings.cpp @@ -23,6 +23,11 @@ std::string ApplicationSettings::getStartupProjectFilePath() const return getValue("startup_project", ""); } +int ApplicationSettings::getMaxRecentProjectsCount() const +{ + return 7; +} + std::vector ApplicationSettings::getHeaderSearchPaths() const { return getPathValues("source/header_search_paths/header_search_path"); diff --git a/src/lib/settings/ApplicationSettings.h b/src/lib/settings/ApplicationSettings.h index 35e2681e..5ab0b801 100644 --- a/src/lib/settings/ApplicationSettings.h +++ b/src/lib/settings/ApplicationSettings.h @@ -14,10 +14,7 @@ public: std::string getStartupProjectFilePath() const; - enum - { - MaximalAmountOfRecentProjects = 7 - }; + int getMaxRecentProjectsCount() const; // source std::vector getHeaderSearchPaths() const; diff --git a/src/lib_gui/qt/window/QtMainWindow.cpp b/src/lib_gui/qt/window/QtMainWindow.cpp index 53c29f80..b13834e1 100644 --- a/src/lib_gui/qt/window/QtMainWindow.cpp +++ b/src/lib_gui/qt/window/QtMainWindow.cpp @@ -146,7 +146,7 @@ QtMainWindow::QtMainWindow() app->setStyleSheet(utility::getStyleSheet(ResourcePaths::getGuiPath() + "main.css").c_str()); - m_recentProjectAction = new QAction*[ApplicationSettings::MaximalAmountOfRecentProjects]; + m_recentProjectAction = new QAction*[ApplicationSettings::getInstance()->getMaxRecentProjectsCount()]; setupProjectMenu(); setupEditMenu(); @@ -495,6 +495,27 @@ void QtMainWindow::setupProjectMenu() { menu->addAction(tr("&New Project..."), this, SLOT(newProject()), QKeySequence::New); menu->addAction(tr("&Open Project..."), this, SLOT(openProject()), QKeySequence::Open); + } + + QMenu *recentProjectMenu = new QMenu(tr("Recent Projects")); + menu->addMenu(recentProjectMenu); + + for (int i = 0; i < ApplicationSettings::getInstance()->getMaxRecentProjectsCount(); ++i) + { + m_recentProjectAction[i] = new QAction(this); + m_recentProjectAction[i]->setVisible(false); + connect(m_recentProjectAction[i], SIGNAL(triggered()), + this, SLOT(openRecentProject())); + recentProjectMenu->addAction(m_recentProjectAction[i]); + } + updateRecentProjectMenu(); + + menu->addMenu(recentProjectMenu); + + menu->addSeparator(); + + if(!isTrial()) + { menu->addAction(tr("&Edit Project..."), this, SLOT(editProject())); menu->addSeparator(); @@ -505,23 +526,6 @@ void QtMainWindow::setupProjectMenu() menu->addSeparator(); } - QMenu *recentProjectMenu = new QMenu(tr("Recent Projects")); - menu->addMenu(recentProjectMenu); - - for (int i = 0; i < ApplicationSettings::MaximalAmountOfRecentProjects; ++i) - { - m_recentProjectAction[i] = new QAction(this); - m_recentProjectAction[i]->setVisible(false); - connect(m_recentProjectAction[i], SIGNAL(triggered()), - this, SLOT(openRecentProject())); - recentProjectMenu->addAction(m_recentProjectAction[i]); - } - updateRecentProjectMenu(); - - menu->addMenu(recentProjectMenu); - - menu->addSeparator(); - menu->addAction(tr("E&xit"), QCoreApplication::instance(), SLOT(quit()), QKeySequence::Quit); } @@ -537,7 +541,7 @@ void QtMainWindow::openRecentProject() void QtMainWindow::updateRecentProjectMenu() { std::vector recentProjects = ApplicationSettings::getInstance()->getRecentProjects(); - for (size_t i = 0; i < ApplicationSettings::MaximalAmountOfRecentProjects; i++) + for (size_t i = 0; i < ApplicationSettings::getInstance()->getMaxRecentProjectsCount(); i++) { if(i < recentProjects.size()) { diff --git a/src/lib_gui/qt/window/QtStartScreen.cpp b/src/lib_gui/qt/window/QtStartScreen.cpp index 9c32d243..306d3538 100644 --- a/src/lib_gui/qt/window/QtStartScreen.cpp +++ b/src/lib_gui/qt/window/QtStartScreen.cpp @@ -69,7 +69,7 @@ void QtStartScreen::setupStartScreen() int position = 290; QIcon cpp_icon((ResourcePaths::getGuiPath() + "icon/project_256_256.png").c_str()); std::vector recentProjects = ApplicationSettings::getInstance()->getRecentProjects(); - for (size_t i = 0; i < recentProjects.size() && i < ApplicationSettings::MaximalAmountOfRecentProjects; i++) + for (size_t i = 0; i < recentProjects.size() && i < ApplicationSettings::getInstance()->getMaxRecentProjectsCount(); i++) { QtRecentProjectButton* button = new QtRecentProjectButton(recentProjects[i], this); button->setAttribute(Qt::WA_LayoutUsesWidgetRect); // fixes layouting on Mac