mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Connect preferences to the rest of the code
The biggest problem here was that bool has different sizes in C and C++ code. So using this in a structure shared between the two sides wasn't a smart idea. Instead I went with 'short', but that caused problems with Qt being to smart for its own good and not doing the right thing when dealing with 'boolean' settings and a short value. This may be something in the way I implemented things (as I doubt that something this fundamental would be broken) but the workaround implemented here (explicitly using 0 or 1 depending on the value of the boolean) seems to work. I also decided to get rid of the confusion of where gflow/gfhigh are floating point (0..1) and when they are integers (0..100). We now use integers anywhere outside of deco.c. I also applied some serious spelling corrections to the preferences dialog's ui file. Finally, this enables the code that selects which partial pressure graph to show. Still to do: font size, metric/imperial logic Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
8394828806
commit
4f53ad736d
10 changed files with 120 additions and 92 deletions
54
pref.h
54
pref.h
|
@ -5,42 +5,46 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* can't use 'bool' for the boolean values - different size in C and C++ */
|
||||
typedef struct {
|
||||
gboolean cylinder;
|
||||
gboolean temperature;
|
||||
gboolean totalweight;
|
||||
gboolean suit;
|
||||
gboolean nitrox;
|
||||
gboolean sac;
|
||||
gboolean otu;
|
||||
gboolean maxcns;
|
||||
short cylinder;
|
||||
short temperature;
|
||||
short totalweight;
|
||||
short suit;
|
||||
short nitrox;
|
||||
short sac;
|
||||
short otu;
|
||||
short maxcns;
|
||||
} visible_cols_t;
|
||||
|
||||
typedef struct {
|
||||
gboolean po2;
|
||||
gboolean pn2;
|
||||
gboolean phe;
|
||||
short po2;
|
||||
short pn2;
|
||||
short phe;
|
||||
double po2_threshold;
|
||||
double pn2_threshold;
|
||||
double phe_threshold;
|
||||
} partial_pressure_graphs_t;
|
||||
|
||||
struct preferences {
|
||||
struct units units;
|
||||
visible_cols_t visible_cols;
|
||||
partial_pressure_graphs_t pp_graphs;
|
||||
gboolean mod;
|
||||
double mod_ppO2;
|
||||
gboolean ead;
|
||||
gboolean profile_red_ceiling;
|
||||
gboolean profile_calc_ceiling;
|
||||
gboolean calc_ceiling_3m_incr;
|
||||
double gflow;
|
||||
double gfhigh;
|
||||
int map_provider;
|
||||
const char *divelist_font;
|
||||
const char *default_filename;
|
||||
short display_invalid_dives;
|
||||
double font_size;
|
||||
visible_cols_t visible_cols;
|
||||
partial_pressure_graphs_t pp_graphs;
|
||||
short mod;
|
||||
double mod_ppO2;
|
||||
short ead;
|
||||
short profile_dc_ceiling;
|
||||
short profile_red_ceiling;
|
||||
short profile_calc_ceiling;
|
||||
short calc_ceiling_3m_incr;
|
||||
short gflow;
|
||||
short gfhigh;
|
||||
int map_provider;
|
||||
short display_invalid_dives;
|
||||
short show_invalid;
|
||||
struct units units;
|
||||
};
|
||||
|
||||
extern struct preferences prefs, default_prefs;
|
||||
|
@ -49,7 +53,7 @@ extern struct preferences prefs, default_prefs;
|
|||
|
||||
extern void subsurface_open_conf(void);
|
||||
extern void subsurface_set_conf(const char *name, const char *value);
|
||||
extern void subsurface_set_conf_bool(const char *name, gboolean value);
|
||||
extern void subsurface_set_conf_bool(const char *name, bool value);
|
||||
extern void subsurface_set_conf_int(const char *name, int value);
|
||||
extern void subsurface_unset_conf(const char *name);
|
||||
extern const char *subsurface_get_conf(const char *name);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue