# # # patch "src/view/mainwindows/DatabaseWindow.cpp" # from [32afece8ed33326fca00fe4180fcc440dcf07256] # to [11a5a3244707aad985e490ab0ee1b9d91ca2e597] # # patch "src/view/mainwindows/DatabaseWindow.h" # from [619c1ab06edb685d2db3381db9ea5bb31481c546] # to [a2174a941fd5af62a44699d2a36bb08c078cbe6c] # ============================================================ --- src/view/mainwindows/DatabaseWindow.cpp 32afece8ed33326fca00fe4180fcc440dcf07256 +++ src/view/mainwindows/DatabaseWindow.cpp 11a5a3244707aad985e490ab0ee1b9d91ca2e597 @@ -21,6 +21,7 @@ #include "DatabaseDialogManager.h" #include "GuitoneCore.h" #include "Settings.h" +#include "MonotoneUtil.h" #include #include @@ -63,6 +64,11 @@ void DatabaseWindow::init() ); connect( + dialogManager, SIGNAL(newProjectCreated(const QString &)), + APP, SLOT(loadWorkspace(const QString &)) + ); + + connect( menuBar, SIGNAL(showNetsync()), dialogManager, SLOT(showNetsync()) ); @@ -82,6 +88,11 @@ void DatabaseWindow::init() dialogManager, SLOT(showKeyManagement()) ); + connect( + menuBar, SIGNAL(showNewProjectSetup()), + dialogManager, SLOT(showNewProjectSetup()) + ); + databaseVariables = new DatabaseVariables(this); dynamic_cast(menuBar) @@ -155,5 +166,38 @@ void DatabaseWindow::load(const QString reinterpret_cast(dialogManager)->init(databaseFile); databaseVariables->setDatabaseFile(databaseFile); + + QTimer::singleShot(0, this, SLOT(checkForEmptyDatabase())); } +void DatabaseWindow::checkForEmptyDatabase() +{ + if (MonotoneUtil::getRoots(databaseFile).size() == 0) + { + QMessageBox msgBox(this); + msgBox.setWindowFlags(Qt::Sheet); + msgBox.setIcon(QMessageBox::Question); + msgBox.setText("This database is empty"); + msgBox.setInformativeText("Do you want to pull in new changes " + "or setup a new project?"); + + QPushButton * netsyncBtn = msgBox.addButton(tr("Pull data"), + QMessageBox::ActionRole); + QPushButton * setupBtn = msgBox.addButton(tr("Setup project"), + QMessageBox::ActionRole); + msgBox.addButton(QMessageBox::Abort); + + msgBox.exec(); + + if (msgBox.clickedButton() == netsyncBtn) + { + qobject_cast(dialogManager)->showNetsync(); + } + else + if (msgBox.clickedButton() == setupBtn) + { + qobject_cast(dialogManager)->showNewProjectSetup(); + } + } +} + ============================================================ --- src/view/mainwindows/DatabaseWindow.h 619c1ab06edb685d2db3381db9ea5bb31481c546 +++ src/view/mainwindows/DatabaseWindow.h a2174a941fd5af62a44699d2a36bb08c078cbe6c @@ -45,6 +45,9 @@ protected: QPushButton * revisionBrowser; QPushButton * checkoutRevision; DatabaseVariables * databaseVariables; + +protected slots: + void checkForEmptyDatabase(); }; #endif