diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index bc98d3dc2..d5cd45bc5 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -983,6 +983,9 @@ MainWindow::MainWindow(const QDir &home) : connect(this,SIGNAL(rideAdded(RideItem*)),this,SLOT(checkCPX(RideItem*))); connect(this,SIGNAL(rideDeleted(RideItem*)),this,SLOT(checkCPX(RideItem*))); + // when metricDB updates check if BlankState needs to be closed + connect(metricDB, SIGNAL(dataChanged()), this, SLOT(checkBlankState())); + // Kick off rideTreeWidgetSelectionChanged(); selectAnalysis(); @@ -1504,6 +1507,31 @@ MainWindow::helpView() QDesktopServices::openUrl(QUrl("http://www.goldencheetah.org/wiki.html")); } +void +MainWindow::checkBlankState() +{ + // Home? + if (views->currentWidget() == blankStateHomePage) { + // should it be closed? + if (allRides->childCount() > 0) closeBlankHome(); + } + // Diary? + if (views->currentWidget() == blankStateDiaryPage) { + // should it be closed? + if (allRides->childCount() > 0) closeBlankDiary(); + } + // Analysis?? + if (views->currentWidget() == blankStateAnalysisPage) { + // should it be closed? + if (allRides->childCount() > 0) closeBlankAnal(); + } + // Train?? + if (views->currentWidget() == blankStateTrainPage) { + // should it be closed? + if (appsettings->value(this, GC_DEV_COUNT).toInt() > 0 && trainDB->getCount() > 2) closeBlankTrain(); + } +} + void MainWindow::closeBlankTrain() { diff --git a/src/MainWindow.h b/src/MainWindow.h index 50b22f355..bcf8cb0d8 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -265,6 +265,7 @@ class MainWindow : public QMainWindow void closeAll(); void addDevice(); + void checkBlankState(); void closeBlankTrain(); void closeBlankAnal(); void closeBlankDiary();