diff --git a/backend-shared/plannershared.cpp b/backend-shared/plannershared.cpp index 542f1aae1..b39aa556c 100644 --- a/backend-shared/plannershared.cpp +++ b/backend-shared/plannershared.cpp @@ -105,10 +105,18 @@ void plannerShared::set_decosac(double value) double plannerShared::sacfactor() { - return qPrefDivePlanner::sacfactor() / 100.0; + return qPrefDivePlanner::sacfactor() / +#ifdef SUBSURFACE_MOBILE + 10.0; +#else + 100.0; +#endif } void plannerShared::set_sacfactor(double value) { +#ifdef SUBSURFACE_MOBILE + value /= 10.0; +#endif // NO conversion, this is done in the planner model. DivePlannerPointsModel::instance()->setSacFactor(value); } diff --git a/mobile-widgets/qml/DivePlannerSetup.qml b/mobile-widgets/qml/DivePlannerSetup.qml index 2c04d4695..a0c4a3176 100644 --- a/mobile-widgets/qml/DivePlannerSetup.qml +++ b/mobile-widgets/qml/DivePlannerSetup.qml @@ -261,15 +261,15 @@ Kirigami.ScrollablePage { text: qsTr("SAC factor") } TemplateSpinBox { - from: 20 + from: 10 to: 99 stepSize: 1 - value: Planner.sacfactor + value: Backend.sacfactor textFromValue: function (value, locale) { return (value / 10).toFixed(1) } onValueModified: { - Planner.sacfactor = value + Backend.sacfactor = value } } TemplateLabel { diff --git a/mobile-widgets/qmlinterface.cpp b/mobile-widgets/qmlinterface.cpp index 99dc54f2f..21ab50494 100644 --- a/mobile-widgets/qmlinterface.cpp +++ b/mobile-widgets/qmlinterface.cpp @@ -69,6 +69,9 @@ void QMLInterface::setup(QQmlContext *ct) instance(), &QMLInterface::bottomsacChanged); connect(qPrefDivePlanner::instance(), &qPrefDivePlanner::decosacChanged, instance(), &QMLInterface::decosacChanged); + connect(qPrefDivePlanner::instance(), &qPrefDivePlanner::sacfactorChanged, + instance(), &QMLInterface::sacfactorChanged); + connect(qPrefDivePlanner::instance(), &qPrefDivePlanner::display_runtimeChanged, instance(), &QMLInterface::display_runtimeChanged); connect(qPrefDivePlanner::instance(), &qPrefDivePlanner::display_durationChanged, diff --git a/tests/testplannershared.cpp b/tests/testplannershared.cpp index f2655432c..da4de48fb 100644 --- a/tests/testplannershared.cpp +++ b/tests/testplannershared.cpp @@ -79,13 +79,13 @@ void TestPlannerShared::test_gas() { // test independent of metric/imperial plannerShared::set_sacfactor(4.2); - QCOMPARE(qPrefDivePlanner::sacfactor(), 420); + QCOMPARE(qPrefDivePlanner::sacfactor(), 42); plannerShared::set_sacfactor(3.5); - QCOMPARE(qPrefDivePlanner::sacfactor(), 350); + QCOMPARE(qPrefDivePlanner::sacfactor(), 35); qPrefDivePlanner::set_sacfactor(280); - QCOMPARE(plannerShared::sacfactor(), 2.8); + QCOMPARE(plannerShared::sacfactor(), 28); qPrefDivePlanner::set_sacfactor(200); - QCOMPARE(plannerShared::sacfactor(), 2.0); + QCOMPARE(plannerShared::sacfactor(), 20); // Set system to use meters qPrefUnits::set_unit_system(METRIC); @@ -139,26 +139,26 @@ void TestPlannerShared::test_gas() qPrefUnits::set_unit_system(IMPERIAL); plannerShared::set_bottomsac(0.9); - QCOMPARE(qPrefDivePlanner::bottomsac(), 25485); + QCOMPARE(qPrefDivePlanner::bottomsac(), 255); plannerShared::set_bottomsac(0.01); - QCOMPARE(qPrefDivePlanner::bottomsac(), 283); + QCOMPARE(qPrefDivePlanner::bottomsac(), 3); // Remark return will from qPref is in m / 1000. qPrefDivePlanner::set_bottomsac(2830); - QCOMPARE(int(plannerShared::bottomsac() * 1000), 99); + QCOMPARE(int(plannerShared::bottomsac()), 9); qPrefDivePlanner::set_bottomsac(16000); - QCOMPARE(int(plannerShared::bottomsac() * 1000), 565); + QCOMPARE(int(plannerShared::bottomsac()), 56); plannerShared::set_decosac(0.9); - QCOMPARE(qPrefDivePlanner::decosac(), 25485); + QCOMPARE(qPrefDivePlanner::decosac(), 255); plannerShared::set_decosac(0.01); - QCOMPARE(qPrefDivePlanner::decosac(), 283); + QCOMPARE(qPrefDivePlanner::decosac(), 3); // Remark return will from qPref is in m / 1000. qPrefDivePlanner::set_decosac(11500); - QCOMPARE(int(plannerShared::decosac() * 1000), 406); + QCOMPARE(int(plannerShared::decosac()), 40); qPrefDivePlanner::set_decosac(19800); - QCOMPARE(int(plannerShared::decosac() * 1000), 699); + QCOMPARE(int(plannerShared::decosac()), 69); // Remark bottompo2 is in BAR, even though unit system is // Imperial, the desktop version is like that.