summaryrefslogtreecommitdiffstats
path: root/desktop-widgets
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2018-10-06 10:58:12 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2018-10-07 17:50:51 +0300
commit97991e2b9fff4254c2b40417bf6d7496ba0d849f (patch)
treea2b9af681e9ac5e72e4846736df001f75f7cc788 /desktop-widgets
parent68fdc0b6f49c81cb61387b7d006807509280c9df (diff)
downloadsubsurface-97991e2b9fff4254c2b40417bf6d7496ba0d849f.tar.gz
Statistics: remove global state / calculate only when needed
Statistics were calculated into global variables every time the current dive was changed. Calculate statistics only when needed and into a structure provided by the caller. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets')
-rw-r--r--desktop-widgets/tab-widgets/maintab.cpp6
-rw-r--r--desktop-widgets/templatelayout.cpp6
2 files changed, 4 insertions, 8 deletions
diff --git a/desktop-widgets/tab-widgets/maintab.cpp b/desktop-widgets/tab-widgets/maintab.cpp
index ffcb70f5a..25fe34adc 100644
--- a/desktop-widgets/tab-widgets/maintab.cpp
+++ b/desktop-widgets/tab-widgets/maintab.cpp
@@ -424,13 +424,7 @@ void MainTab::updateDiveInfo(bool clear)
setEnabled(false);
editMode = IGNORE; // don't trigger on changes to the widgets
- // This method updates ALL tabs whenever a new dive or trip is
- // selected.
- // If exactly one trip has been selected, we show the location / notes
- // for the trip in the Info tab, otherwise we show the info of the
- // selected_dive
process_selected_dives();
- process_all_dives();
for (auto widget : extraWidgets) {
widget->updateData();
diff --git a/desktop-widgets/templatelayout.cpp b/desktop-widgets/templatelayout.cpp
index 0d6586390..5bef7b172 100644
--- a/desktop-widgets/templatelayout.cpp
+++ b/desktop-widgets/templatelayout.cpp
@@ -207,8 +207,10 @@ QString TemplateLayout::generateStatistics()
QVariantList years;
int i = 0;
- while (stats_yearly != NULL && stats_yearly[i].period) {
- YearInfo year(stats_yearly[i]);
+ stats_summary_auto_free stats;
+ calculate_stats_summary(&stats);
+ while (stats.stats_yearly != NULL && stats.stats_yearly[i].period) {
+ YearInfo year(stats.stats_yearly[i]);
years.append(QVariant::fromValue(year));
i++;
}