# # # patch "src/view/MenuBar.cpp" # from [1ae093a261a7338c10562a077b35dc1d080b1654] # to [2cb98295099c60937b267501f5c2fa885bc3039c] # # patch "src/view/MenuBar.h" # from [89b6a0583ccb10a54ec519c3a3567d2a8f751d18] # to [74b0a739fd8d69e46642a871d844578470cc23e4] # ============================================================ --- src/view/MenuBar.cpp 1ae093a261a7338c10562a077b35dc1d080b1654 +++ src/view/MenuBar.cpp 2cb98295099c60937b267501f5c2fa885bc3039c @@ -19,9 +19,11 @@ ***************************************************************************/ #include "MenuBar.h" +#include "Settings.h" -#include "Settings.h" -#include "Guitone.h" +#include +#include +#include MenuBar::MenuBar() : QMenuBar(0) { @@ -90,13 +92,23 @@ MenuBar::MenuBar() : QMenuBar(0) addAction(menuHelp->menuAction()); connect( + actionOpen_Database, SIGNAL(triggered()), + this, SLOT(openDatabase()) + ); + + connect( + actionOpen_Workspace, SIGNAL(triggered()), + this, SLOT(openWorkspace()) + ); + + connect( actionQuit, SIGNAL(triggered()), - APP, SIGNAL(quit()) + qApp, SIGNAL(quit()) ); connect( actionAbout_Qt, SIGNAL(triggered()), - APP, SLOT(aboutQt()) + qApp, SLOT(aboutQt()) ); connect( @@ -118,30 +130,27 @@ MenuBar::MenuBar() : QMenuBar(0) actionBring_all_to_front, SIGNAL(triggered()), this, SIGNAL(bringAllWindowsToFront()) ); - - updateRecentLists(); - updateWindowList(); } MenuBar::~MenuBar() {} -void MainWindow::updateRecentLists() +void MenuBar::updateRecentLists() { - menuRecentWorkspaces->clear(); - menuRecentDatabases->clear(); + menuRecent_Workspaces->clear(); + menuRecent_Databases->clear(); QStringList previousWs = Settings::getItemList("RecentWorkspaceList"); int elemCount = previousWs.size(); if (elemCount == 0) { - menuRecentWorkspaces->addAction(tr("No previous workspaces available.")); + menuRecent_Workspaces->addAction(tr("No previous workspaces available.")); } else { QAction * act; for (int i = 0; i < elemCount; ++i) { - act = menuRecentWorkspaces->addAction( + act = menuRecent_Workspaces->addAction( tr("&%1 %2").arg(i + 1).arg(previousWs[i]), this, SLOT(openRecentWorkspace()) @@ -154,14 +163,14 @@ void MainWindow::updateRecentLists() elemCount = previousDb.size(); if (elemCount == 0) { - menuRecentDatabases->addAction(tr("No previous databases available.")); + menuRecent_Databases->addAction(tr("No previous databases available.")); } else { QAction * act; for (int i = 0; i < elemCount; ++i) { - act = menuRecentDatabases->addAction( + act = menuRecent_Databases->addAction( tr("&%1 %2").arg(i + 1).arg(previousDb[i]), this, SLOT(openRecentDatabase()) @@ -171,6 +180,31 @@ void MainWindow::updateRecentLists() } } +void MenuBar::openDatabase() +{ + QString fn = QFileDialog::getOpenFileName( + 0, + tr("Select your database..."), + QString(), + tr("monotone Databases (*.mtn *.db)") + ); + + if (fn.isEmpty()) return; + + emit loadDatabase(fn); +} + +void MenuBar::openWorkspace() +{ + QString fn = QFileDialog::getExistingDirectory(0, + tr("Select your workspace...") + ); + + if (fn.isEmpty()) return; + + emit loadWorkspace(fn); +} + void MenuBar::openRecentWorkspace() { QAction * action = qobject_cast(sender()); @@ -183,7 +217,7 @@ void MenuBar::openRecentDatabase() emit loadDatabase(action->data().toString()); } -void MenuBar::updateWindowList() +void MenuBar::updateWindowList(const QStringList & windowTitles) { // remove old actions QList actions = menuWindow->actions(); @@ -198,11 +232,10 @@ void MenuBar::updateWindowList() // TODO: we should integrate a small indicator which window is actually // active here, but this needs central work in the App - QStringList list = APP->windowTitleList(); - for (int i=0, j=list.size(); iaddAction( - tr("&%1 %2").arg(i + 1).arg(list.at(i)), + tr("&%1 %2").arg(i + 1).arg(windowTitles.at(i)), this, SLOT(activateOtherWindow()) ); ============================================================ --- src/view/MenuBar.h 89b6a0583ccb10a54ec519c3a3567d2a8f751d18 +++ src/view/MenuBar.h 74b0a739fd8d69e46642a871d844578470cc23e4 @@ -32,7 +32,7 @@ public slots: public slots: void updateRecentLists(); - void updateWindowList(); + void updateWindowList(const QStringList &); signals: void loadWorkspace(const QString &); @@ -67,6 +67,8 @@ private slots: void on_actionAbout_guitone_triggered(); void on_actionCheck_for_updates_triggered(); + void openDatabase(); + void openWorkspace(); void openRecentDatabase(); void openRecentWorkspace(); void activateOtherWindow();