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.
This commit is contained in:
@@ -23,6 +23,11 @@ std::string ApplicationSettings::getStartupProjectFilePath() const
|
||||
return getValue<std::string>("startup_project", "");
|
||||
}
|
||||
|
||||
int ApplicationSettings::getMaxRecentProjectsCount() const
|
||||
{
|
||||
return 7;
|
||||
}
|
||||
|
||||
std::vector<FilePath> ApplicationSettings::getHeaderSearchPaths() const
|
||||
{
|
||||
return getPathValues("source/header_search_paths/header_search_path");
|
||||
|
||||
@@ -14,10 +14,7 @@ public:
|
||||
|
||||
std::string getStartupProjectFilePath() const;
|
||||
|
||||
enum
|
||||
{
|
||||
MaximalAmountOfRecentProjects = 7
|
||||
};
|
||||
int getMaxRecentProjectsCount() const;
|
||||
|
||||
// source
|
||||
std::vector<FilePath> getHeaderSearchPaths() const;
|
||||
|
||||
@@ -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<FilePath> 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())
|
||||
{
|
||||
|
||||
@@ -69,7 +69,7 @@ void QtStartScreen::setupStartScreen()
|
||||
int position = 290;
|
||||
QIcon cpp_icon((ResourcePaths::getGuiPath() + "icon/project_256_256.png").c_str());
|
||||
std::vector<FilePath> 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
|
||||
|
||||
Reference in New Issue
Block a user