From 97991e2b9fff4254c2b40417bf6d7496ba0d849f Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Sat, 6 Oct 2018 10:58:12 +0200 Subject: 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 --- desktop-widgets/tab-widgets/maintab.cpp | 6 ------ desktop-widgets/templatelayout.cpp | 6 ++++-- 2 files changed, 4 insertions(+), 8 deletions(-) (limited to 'desktop-widgets') 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++; } -- cgit v1.2.3-70-g09d2