From 772727fc7f44faaf94afc24bd1f151e40ddaefef Mon Sep 17 00:00:00 2001 From: "Robert C. Helling" Date: Wed, 25 Jun 2014 00:08:36 +0200 Subject: Hook up UI elements for ascent rates to planner That provides some UI elements that were recently introduced with function of allowing the ascent rates of the planner to be configured by the user. I tried to make it work both with senisble as well as with imperial units. Signed-off-by: Robert C. Helling Signed-off-by: Dirk Hohndel --- qt-ui/diveplanner.cpp | 49 ++++++++++++++++++ qt-ui/diveplanner.h | 5 ++ qt-ui/plannerSettings.ui | 128 ++++++++++++++++++++++++----------------------- 3 files changed, 119 insertions(+), 63 deletions(-) (limited to 'qt-ui') diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp index 516b36b0f..249b03773 100644 --- a/qt-ui/diveplanner.cpp +++ b/qt-ui/diveplanner.cpp @@ -31,6 +31,8 @@ #define MAX_DEPTH M_OR_FT(150, 450) #define MIN_DEPTH M_OR_FT(20, 60) +#define UNIT_FACTOR ((prefs.units.length == units::METERS) ? 1000.0 / 60.0 : feet_to_mm(1.0) / 60.0) + QString gasToStr(struct gasmix gas) { uint o2 = (gas.o2.permille + 5) / 10, he = (gas.he.permille + 5) / 10; @@ -333,11 +335,34 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f) { ui.setupUi(this); + if (prefs.units.METERS == units::FEET) { + ui.ascRate75->setSuffix("ft/min"); + ui.ascRate50->setSuffix("ft/min"); + ui.ascRateStops->setSuffix("ft/min"); + ui.ascRateLast6m->setSuffix("ft/min"); + ui.descRate->setSuffix("ft/min"); + } + ui.ascRate75->setValue(prefs.ascrate75 / UNIT_FACTOR); + ui.ascRate50->setValue(prefs.ascrate50 / UNIT_FACTOR); + ui.ascRateStops->setValue(prefs.ascratestops / UNIT_FACTOR); + ui.ascRateLast6m->setValue(prefs.ascratelast6m / UNIT_FACTOR); + ui.descRate->setValue(prefs.descrate / UNIT_FACTOR); + connect(ui.lastStop, SIGNAL(toggled(bool)), plannerModel, SLOT(setLastStop6m(bool))); connect(ui.verbatim_plan, SIGNAL(toggled(bool)), plannerModel, SLOT(setVerbatim(bool))); 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.ascRate75, SIGNAL(valueChanged(int)), this, SLOT(setAscRate75(int))); + connect(ui.ascRate75, SIGNAL(valueChanged(int)), plannerModel, SLOT(emitDataChanged())); + connect(ui.ascRate50, SIGNAL(valueChanged(int)), this, SLOT(setAscRate50(int))); + connect(ui.ascRate50, SIGNAL(valueChanged(int)), plannerModel, SLOT(emitDataChanged())); + connect(ui.ascRateStops, SIGNAL(valueChanged(int)), this, SLOT(setAscRateStops(int))); + connect(ui.ascRateStops, SIGNAL(valueChanged(int)), plannerModel, SLOT(emitDataChanged())); + connect(ui.ascRateLast6m, SIGNAL(valueChanged(int)), this, SLOT(setAscRateLast6m(int))); + connect(ui.ascRateLast6m, SIGNAL(valueChanged(int)), plannerModel, SLOT(emitDataChanged())); + connect(ui.descRate, SIGNAL(valueChanged(int)), this, SLOT(setDescRate())); + connect(ui.descRate, SIGNAL(valueChanged(int)), plannerModel, SLOT(emitDataChanged())); setMinimumWidth(0); setMinimumHeight(0); @@ -363,6 +388,30 @@ void PlannerSettingsWidget::printDecoPlan() { } +void PlannerSettingsWidget::setAscRate75(int rate) +{ + prefs.ascrate75 = rate * UNIT_FACTOR; +} + +void PlannerSettingsWidget::setAscRate50(int rate) +{ + prefs.ascrate50 = rate * UNIT_FACTOR; +} + +void PlannerSettingsWidget::setAscRateStops(int rate) +{ + prefs.ascratestops = rate * UNIT_FACTOR; +} + +void PlannerSettingsWidget::setAscRateLast6m(int rate) +{ + prefs.ascratelast6m = rate * UNIT_FACTOR; +} + +void PlannerSettingsWidget::setDescRate(int rate) +{ + prefs.descrate = rate * UNIT_FACTOR; +} void DivePlannerPointsModel::setPlanMode(Mode m) { diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h index 0b4e783cb..9f6052b4a 100644 --- a/qt-ui/diveplanner.h +++ b/qt-ui/diveplanner.h @@ -159,6 +159,11 @@ slots: void bottomSacChanged(const int bottomSac); void decoSacChanged(const int decosac); void printDecoPlan(); + void setAscRate75(int rate); + void setAscRate50(int rate); + void setAscRateStops(int rate); + void setAscRateLast6m(int rate); + void setDescRate(int rate); private: Ui::plannerSettingsWidget ui; diff --git a/qt-ui/plannerSettings.ui b/qt-ui/plannerSettings.ui index 82584fa0e..519f3ea7c 100644 --- a/qt-ui/plannerSettings.ui +++ b/qt-ui/plannerSettings.ui @@ -19,7 +19,7 @@ 20 20 872 - 203 + 463 @@ -62,6 +62,9 @@ QFrame::Raised + + QFormLayout::FieldsStayAtSizeHint + @@ -69,15 +72,8 @@ - - - - deco pO₂ - - - - + 16777215 @@ -86,8 +82,15 @@ + + + + deco pO₂ + + + - + 16777215 @@ -176,67 +179,27 @@ - - - - - 16777215 - 20 - - - - - + 75%-50% avg. depth - + 50% avg. depth - 6m/20ft - + 6m/20ft to surface - - - - - 16777215 - 20 - - - - - - - - - 16777215 - 20 - - - - - - - - - 16777215 - 20 - - - - @@ -244,21 +207,21 @@ - + - Decent rate + Descent rate - + surface to the bottom - + @@ -272,6 +235,9 @@ 20 + + m/min + 1 @@ -280,6 +246,46 @@ + + + + m/min + + + 1 + + + + + + + m/min + + + 1 + + + + + + + m/min + + + 1 + + + + + + + m/min + + + 1 + + + @@ -291,14 +297,10 @@ display_runtime display_duration display_transitions - ascRate75 - ascRate50 - ascRateStops - ascRateLast6m lastStop backgasBreaks - ascRate75_2 - ascRate75_3 + bottompo2 + decopo2 descRate -- cgit v1.2.3-70-g09d2