From b7502b80bd86f13fc2fe04676e4bbd2fc8b58837 Mon Sep 17 00:00:00 2001 From: Mark Liversedge Date: Sat, 12 Jan 2013 21:52:38 +0000 Subject: [PATCH] Clear blankstate screen if conditions change The diary, home and analysis blank state screens will now close if rides are added. Still need to make the train view blank state screen close when devices and workouts are added. --- src/MainWindow.cpp | 28 ++++++++++++++++++++++++++++ src/MainWindow.h | 1 + 2 files changed, 29 insertions(+) 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();