diff --git a/src/MainWindow.h b/src/MainWindow.h index 53e26e2ee..12d11f5d1 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -143,6 +143,7 @@ class MainWindow : public QMainWindow SpecialFields specialFields; int session; bool isclean; + bool ismultisave; void setBubble(QString text, QPoint pos = QPoint(), Qt::Orientation o = Qt::Horizontal); diff --git a/src/MetricAggregator.cpp b/src/MetricAggregator.cpp index 12113096d..a9b9f2432 100644 --- a/src/MetricAggregator.cpp +++ b/src/MetricAggregator.cpp @@ -205,6 +205,13 @@ void MetricAggregator::addRide(RideItem*ride) } } +void MetricAggregator::update() { + main->isclean = false; + if (!main->ismultisave) { + refreshMetrics(); + } +} + bool MetricAggregator::importRide(QDir path, RideFile *ride, QString fileName, unsigned long fingerprint, bool modify) { SummaryMetrics *summaryMetric = new SummaryMetrics(); diff --git a/src/MetricAggregator.h b/src/MetricAggregator.h index cd9e0e880..fc497d808 100644 --- a/src/MetricAggregator.h +++ b/src/MetricAggregator.h @@ -56,7 +56,7 @@ class MetricAggregator : public QObject void dataChanged(); // when metricDB table changed public slots: - void update() { main->isclean = false; refreshMetrics(); } + void update(); void addRide(RideItem*); void importMeasure(SummaryMetrics *sm); diff --git a/src/SaveDialogs.cpp b/src/SaveDialogs.cpp index ed30b090d..a54972c36 100644 --- a/src/SaveDialogs.cpp +++ b/src/SaveDialogs.cpp @@ -320,12 +320,20 @@ SaveOnExitDialogWidget::saveClicked() { // whizz through the list and save one by one using // singleSave to ensure warnings are given if neccessary + // use mainWindow->ismultisave to prevent refreshing stats + // for each file + mainWindow->ismultisave = true; for (int i=0; icellWidget(i,0); if (c->isChecked()) { + if (i==dirtyList.count()-1) { + mainWindow->ismultisave = false; + } mainWindow->saveRideSingleDialog(dirtyList.at(i)); } } + + mainWindow->ismultisave = false; accept(); }