]> git.tdb.fi Git - ext/subsurface.git/commitdiff
Store options in gconf
authorDirk Hohndel <dirk@hohndel.org>
Tue, 27 Sep 2011 17:46:59 +0000 (10:46 -0700)
committerDirk Hohndel <dirk@hohndel.org>
Tue, 27 Sep 2011 17:47:28 +0000 (10:47 -0700)
While it's not the most elegant way to do this I opted to store the
options with "inverted polarity" - i.e., the options that are supposed to
default to "True" are stored inverted since gconf reports an unset option
(first time the user runs the program) as "False".

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
gtk-gui.c

index 2a53f00e218bd26ddeb4c27bcbdedc17462febd5..77e46c952da358e983caeb8c8102b81d91e507b5 100644 (file)
--- a/gtk-gui.c
+++ b/gtk-gui.c
@@ -330,7 +330,7 @@ static void preferences_dialog(GtkWidget *w, gpointer data)
                gconf_client_set_bool(gconf, GCONF_NAME(psi), output_units.pressure == PSI, NULL);
                gconf_client_set_bool(gconf, GCONF_NAME(cuft), output_units.volume == CUFT, NULL);
                gconf_client_set_bool(gconf, GCONF_NAME(fahrenheit), output_units.temperature == FAHRENHEIT, NULL);
-               gconf_client_set_bool(gconf, GCONF_NAME(SAC), visible_cols.sac, NULL);
+               gconf_client_set_bool(gconf, GCONF_NAME(SAC), ! visible_cols.sac, NULL); /* inverted to get the correct default */
                gconf_client_set_bool(gconf, GCONF_NAME(OTU), visible_cols.otu, NULL);
                gconf_client_set_string(gconf, GCONF_NAME(divelist_font), divelist_font, NULL);
        }
@@ -445,7 +445,11 @@ void init_ui(int argc, char **argv)
                output_units.volume = CUFT;
        if (gconf_client_get_bool(gconf, GCONF_NAME(fahrenheit), NULL))
                output_units.temperature = FAHRENHEIT;
-
+       /* an unset key is FALSE - so in order to get the default behavior right we 
+          invert the meaning of the SAC key */
+       visible_cols.otu = gconf_client_get_bool(gconf, GCONF_NAME(OTU), NULL);
+       visible_cols.sac = ! gconf_client_get_bool(gconf, GCONF_NAME(SAC), NULL);
+               
        divelist_font = gconf_client_get_string(gconf, GCONF_NAME(divelist_font), NULL);
        if (!divelist_font)
                divelist_font = DIVELIST_DEFAULT_FONT;