Equipment: Include Unused Tanks in Merge if Preference is Enabled.

Include unused tanks in merges of multiple logs into a single dive if
the 'Show unused cylinders' preference is enabled.
Also rename the preference (in code) to `include_unused_tanks` to
reflect the fact that it is already used in more places than just the
display (exporting, cloning dives).
Simplified the cylinder model to make forced inclusion of unused tanks
dependent on use of the model in planner.
Leaving the persisted name of the preference as `display_unused_tanks`
to avoid resetting this for all users - is there a good way to migrate
preference names?

Signed-off-by: Michael Keller <github@ike.ch>
This commit is contained in:
Michael Keller 2023-07-09 12:14:27 +12:00
parent cb6f768865
commit 5fae7ce7a0
17 changed files with 50 additions and 47 deletions

View file

@ -1908,7 +1908,7 @@ static bool cylinder_in_use(const struct dive *dive, int idx)
return false;
/* This tests for gaschange events or pressure changes */
if (is_cylinder_used(dive, idx))
if (is_cylinder_used(dive, idx) || prefs.include_unused_tanks)
return true;
/* This tests for typenames or gas contents */

View file

@ -40,7 +40,7 @@ struct preferences default_prefs = {
.mobile_scale = 1.0,
.display_invalid_dives = false,
.show_sac = false,
.display_unused_tanks = false,
.include_unused_tanks = false,
.display_default_tank_infos = true,
.show_average_depth = true,
.show_icd = false,

View file

@ -109,7 +109,7 @@ struct preferences {
// ********** Equipment tab *******
const char *default_cylinder;
bool display_unused_tanks;
bool include_unused_tanks;
bool display_default_tank_infos;
// ********** General **********

View file

@ -13,10 +13,11 @@ qPrefEquipment *qPrefEquipment::instance()
void qPrefEquipment::loadSync(bool doSync)
{
disk_default_cylinder(doSync);
disk_display_unused_tanks(doSync);
disk_include_unused_tanks(doSync);
disk_display_default_tank_infos(doSync);
}
HANDLE_PREFERENCE_TXT(Equipment, "default_cylinder", default_cylinder);
HANDLE_PREFERENCE_BOOL(Equipment, "display_unused_tanks", display_unused_tanks);
// Keeping the persisted preference name the same to avoid resetting this for everybody
HANDLE_PREFERENCE_BOOL(Equipment, "display_unused_tanks", include_unused_tanks);
HANDLE_PREFERENCE_BOOL(Equipment, "display_default_tank_infos", display_default_tank_infos);

View file

@ -8,7 +8,7 @@
class qPrefEquipment : public QObject {
Q_OBJECT
Q_PROPERTY(QString default_cylinder READ default_cylinder WRITE set_default_cylinder NOTIFY default_cylinderChanged)
Q_PROPERTY(bool display_unused_tanks READ display_unused_tanks WRITE set_display_unused_tanks NOTIFY display_unused_tanksChanged)
Q_PROPERTY(bool include_unused_tanks READ include_unused_tanks WRITE set_include_unused_tanks NOTIFY include_unused_tanksChanged)
Q_PROPERTY(bool display_default_tank_infos READ display_default_tank_infos WRITE set_display_default_tank_infos NOTIFY display_default_tank_infosChanged)
public:
@ -21,23 +21,23 @@ public:
public:
static QString default_cylinder() { return prefs.default_cylinder; }
static bool display_unused_tanks() { return prefs.display_unused_tanks; }
static bool include_unused_tanks() { return prefs.include_unused_tanks; }
static bool display_default_tank_infos() { return prefs.display_default_tank_infos; }
public slots:
static void set_default_cylinder(const QString& value);
static void set_display_unused_tanks(bool value);
static void set_include_unused_tanks(bool value);
static void set_display_default_tank_infos(bool value);
signals:
void default_cylinderChanged(const QString& value);
void display_unused_tanksChanged(bool value);
void include_unused_tanksChanged(bool value);
void display_default_tank_infosChanged(bool value);
private:
qPrefEquipment() {}
static void disk_default_cylinder(bool doSync);
static void disk_display_unused_tanks(bool doSync);
static void disk_include_unused_tanks(bool doSync);
static void disk_display_default_tank_infos(bool doSync);
};

View file

@ -152,7 +152,7 @@ bool uploadDiveLogsDE::prepareDives(const QString &tempfile, bool selected)
return false;
}
xml_params_add_int(params, "allcylinders", prefs.display_unused_tanks);
xml_params_add_int(params, "allcylinders", prefs.include_unused_tanks);
transformed = xsltApplyStylesheet(xslt, doc, xml_params_get(params));
free_xml_params(params);
if (!transformed) {