prefs: add option to display only actually used tanks

A user complained about the default cylinders list. Provide
a preferences option to turn this off.

When changing the preferences, the tank-info model will be
completely rebuilt. Currently, this is a bit crude as this
will be done for any preferences change.

Suggested-by: Adolph Weidanz <weidanz.adolph@gmail.com>
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2020-12-11 23:55:18 +01:00 committed by Dirk Hohndel
parent 11e576ffbf
commit 296a391faa
8 changed files with 47 additions and 7 deletions

View file

@ -14,8 +14,9 @@ void qPrefEquipment::loadSync(bool doSync)
{
disk_default_cylinder(doSync);
disk_display_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);
HANDLE_PREFERENCE_BOOL(Equipment, "display_default_tank_infos", display_default_tank_infos);

View file

@ -9,6 +9,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 display_default_tank_infos READ display_default_tank_infos WRITE set_display_default_tank_infos NOTIFY display_default_tank_infosChanged)
public:
static qPrefEquipment *instance();
@ -21,19 +22,23 @@ public:
public:
static QString default_cylinder() { return prefs.default_cylinder; }
static bool display_unused_tanks() { return prefs.display_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_display_default_tank_infos(bool value);
signals:
void default_cylinderChanged(const QString& value);
void display_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_display_default_tank_infos(bool doSync);
};
#endif