In some case the scaling (real value <-> UI value) is different
for mobile and desktop. In order to make the difference understandable
comments are added to each function.
Signed-off-by: jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Remove comment that was very false (next line contradicted the comment).
Signed-off-by: jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
setBottomSac, setDecoSac and setFactor in diveplannermodel
receives display value which are then converted.
subsurface-mobile have slightly different values, move the
correction of these from plannershared to diveplannermodel, in
order to keep the whole convert in one place.
Signed-off-by: jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Remove Q_PROPERTY and signals from plannershared, since they are
no longer used (transferred to qmlinterface).
Unregister object plannershared, since it is no longer used in QML.
Signed-off-by: jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Add surface_segment to plannerShared and then
update desktop-widgets.
Signed-off-by: jan Iversen <jan@casacondor.com>
desktop-widgets: use plannerShared for surface_segment
Change getter/setter for surface_segment to plannerShared, in
order to share the conversion with mobile diveplanner
Signed-off-by: jan Iversen <jan@casacondor.com>
The real values are 1.0 to 10.0, but QML needs int so mobile
gets values 10.0 to 100.0
add sacfactor() to QMLInterface and update QML.
Signed-off-by: jan Iversen <jan@casacondor.com>
Move conversion cuft <-> liter from desktop-widget/diveplanner.cpp
to plannerShared, to facilitate the same results in mobile
diveplanner
Use Backend for bottomsac/decosac and update to check
for switch LITER <-> CUFT
Add bottomsac/decosac to QMLinterface.
Signed-off-by: jan Iversen <jan@casacondor.com>
Variables without conversion, do not need to pass plannerShared
(due to the QML interface).
Simple variables do not pass plannerShared, but diveplanner
in desktop-widgets and qmlinterface in mobile-widgets call the
implementation directly.
Signed-off-by: jan Iversen <jan@casacondor.com>
Length variables are updated from the QML and desktop directly.
Signed-off-by: jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Make notes rates available to QML through the Backend interface.
Remove the corresponding variables from plannerShared.
Getters are from prefs. while setters are linked to diveplan model.
Remark: signals from qPrefDivePlanner is used, because the diveplanner model
sets qPrefDivePlanner but do not issue special signals.
Signed-off-by: jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Ascent/Descent rate functions are fully implemented in diveplannermodel,
therefore remove these functions.
Signed-off-by: jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This allows to update plannermodel etc. and thus avoiding a restart when
changing units for length.
Signed-off-by: Jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Test show that the ratings calculations were off by +/- 1, due
to rounding errors. Found due to test cases in tests (other commits)
The calculations are copied 1-1 from diveplanner.cpp, but are
used slightly different in plannerShared.cpp
Correct calculations, by securing the calculation is done
with float precision and the rounded with lrint().
Signed-off-by: Jan Iversen <jan@casacondor.com>
Add
display_runtime
display_duration
display_transitions
verbatim_plan
display_variations
Get is direct from qPrefDivePlanner and set is plannerModel
Signed-off-by: Jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Use plannerShared setter to update o2narcotic. This will also signal
the cylindermodel to calculate a new bestmix.
Signed-off-by: Jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Add include of cylinderModel
Add o2narcotic
the set function is special because it first
informs the plannerModel that there is a new value
and then ask cylindermodel to calculate a new bestmix
Signed-off-by: Jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
the variables are set through set functions in DivePlannerPointsModel,
but read via getters from qPrefDivePlanner.
Variables:
bottomsac
decosac
problemsolvingtime
sacfactor
Signed-off-by: Jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
the variables are set through set functions in DivePlannerPointsModel,
but read via getters from qPrefDivePlanner and converted
Variables:
min_switch_duration
Signed-off-by: Jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
These are simple pass-through functions (normally optimized away
by the compiler), and serve to make a consistent backend interface
which have a simpler use especially in QML.
Signed-off-by: Jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
the variables are set through set functions in DivePlannerPointsModel,
but read via getters from qPrefDivePlanner.
Variables:
drop_stone_mode
last_stop
switch_at_req_stop
Signed-off-by: Jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
These are simple pass-through functions (normally optimized away
by the compiler), and serve to make a consistent backend interface
which have a simpler use especially in QML.
Variables:
dobailout
Signed-off-by: Jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
the variables are set through set functions in DivePlannerPointsModel,
but read via getters from qPrefDivePlanner.
Variables:
planner_deco_mode
reserveGas
safetyStop
gflow
gfhigh
vpmb_conservatism
Signed-off-by: Jan Iversen <jan@casacondor.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
WARNING: multi directory commit, needed to secure it builds.
move the core/plannerShared.* to backend-shared.
update CMakeLists.txt to include backend-shared lib in link process.
update ios project to reflect new directory
Signed-off-by: Jan Iversen <jan@casacondor.com>
WARNING: multi directory commit, needed to secure it builds.
move the core/exportfuncs.* to backend-shared.
update backend-shared/CMakeLists.txt to generate backend-shared lib
update CMakeLists.txt to include backend-shared lib in link process.
update ios project to reflect new directory
Signed-off-by: Jan Iversen <jan@casacondor.com>
WARNING: multi directory commit, needed to secure it builds.
leaving the shared backend sources in core, imposes a severe limitation,
that they cannot make use of e.g. qt-models, because that is created
after core (first library to be created).
The shared backend uses functionality from core and qt-models, so it
must be created when those are available and before desktop-widgets
or mobile-widgets are created.
Make a new root directory "backend-shared" with empty CMakeLists.txt
Signed-off-by: Jan Iversen <jan@casacondor.com>