From a6f186279fcce9631623b94bfdc00fa3fd071b4c Mon Sep 17 00:00:00 2001 From: "Robert C. Helling" Date: Mon, 18 Sep 2017 16:10:47 +0200 Subject: Add a checkbox to turn off plan variations ... as those come with a performance penalty Signed-off-by: Robert C. Helling --- desktop-widgets/diveplanner.cpp | 2 ++ desktop-widgets/plannerSettings.ui | 35 ++++++++++++++++++++++++----------- desktop-widgets/templatelayout.cpp | 24 +++++++++++++++--------- 3 files changed, 41 insertions(+), 20 deletions(-) (limited to 'desktop-widgets') diff --git a/desktop-widgets/diveplanner.cpp b/desktop-widgets/diveplanner.cpp index dd91e88c7..b90772f39 100644 --- a/desktop-widgets/diveplanner.cpp +++ b/desktop-widgets/diveplanner.cpp @@ -322,6 +322,7 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f) ui.display_duration->setChecked(prefs.display_duration); ui.display_runtime->setChecked(prefs.display_runtime); ui.display_transitions->setChecked(prefs.display_transitions); + ui.display_variations->setChecked(prefs.display_variations); ui.safetystop->setChecked(prefs.safetystop); ui.sacfactor->setValue(prefs.sacfactor / 100.0); ui.problemsolvingtime->setValue(prefs.problemsolvingtime); @@ -355,6 +356,7 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f) connect(ui.display_duration, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayDuration(bool))); connect(ui.display_runtime, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayRuntime(bool))); connect(ui.display_transitions, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayTransitions(bool))); + connect(ui.display_variations, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayVariations(bool))); connect(ui.safetystop, SIGNAL(toggled(bool)), plannerModel, SLOT(setSafetyStop(bool))); connect(ui.reserve_gas, SIGNAL(valueChanged(int)), plannerModel, SLOT(setReserveGas(int))); connect(ui.ascRate75, SIGNAL(valueChanged(int)), plannerModel, SLOT(emitDataChanged())); diff --git a/desktop-widgets/plannerSettings.ui b/desktop-widgets/plannerSettings.ui index 22dcda86a..44cc45e27 100644 --- a/desktop-widgets/plannerSettings.ui +++ b/desktop-widgets/plannerSettings.ui @@ -685,6 +685,23 @@ 2 + + + + Verbatim dive plan + + + + + + + In diveplan, list transitions or treat them as implicit + + + Display transitions in deco + + + @@ -708,20 +725,16 @@ - - - - In diveplan, list transitions or treat them as implicit + + + + true - - Display transitions in deco + + Compute variations of plan (performance cost) - - - - - Verbatim dive plan + Display plan variations diff --git a/desktop-widgets/templatelayout.cpp b/desktop-widgets/templatelayout.cpp index a059a2dad..9f933e91c 100644 --- a/desktop-widgets/templatelayout.cpp +++ b/desktop-widgets/templatelayout.cpp @@ -12,7 +12,7 @@ int getTotalWork(print_options *printOptions) if (printOptions->print_selected) { // return the correct number depending on all/selected dives // but don't return 0 as we might divide by this number - return amount_selected ? amount_selected : 1; + return amount_selected && !in_planner() ? amount_selected : 1; } return dive_table.nr; } @@ -98,15 +98,21 @@ QString TemplateLayout::generate() QVariantList diveList; struct dive *dive; - int i; - for_each_dive (i, dive) { - //TODO check for exporting selected dives only - if (!dive->selected && PrintOptions->print_selected) - continue; - DiveObjectHelper *d = new DiveObjectHelper(dive); + if (in_planner()) { + DiveObjectHelper *d = new DiveObjectHelper(&displayed_dive); diveList.append(QVariant::fromValue(d)); - progress++; - emit progressUpdated(lrint(progress * 100.0 / totalWork)); + emit progressUpdated(100.0); + } else { + int i; + for_each_dive (i, dive) { + //TODO check for exporting selected dives only + if (!dive->selected && PrintOptions->print_selected) + continue; + DiveObjectHelper *d = new DiveObjectHelper(dive); + diveList.append(QVariant::fromValue(d)); + progress++; + emit progressUpdated(lrint(progress * 100.0 / totalWork)); + } } Grantlee::Context c; c.insert("dives", diveList); -- cgit v1.2.3-70-g09d2