]> git.street.me.uk Git - andy/viking.git/blobdiff - src/preferences.c
[QA] Use correct type in sizeof function for memory allocation.
[andy/viking.git] / src / preferences.c
index 8336ba4c655e44190548aaad3a893db195027be0..975f54d331474b2f35f6f2c34445f7872a146b62 100644 (file)
@@ -121,6 +121,9 @@ static gboolean preferences_load_from_file()
 
 static void preferences_run_setparam ( gpointer notused, guint16 i, VikLayerParamData data, VikLayerParam *vlparams )
 {
+  // Don't change stored pointer values
+  if ( vlparams[i].type == VIK_LAYER_PARAM_PTR )
+    return;
   if ( vlparams[i].type == VIK_LAYER_PARAM_STRING_LIST )
     g_critical ( "Param strings not implemented in preferences"); //fake it
   g_hash_table_insert ( values, (gchar *)(vlparams[i].name), vik_layer_typed_param_data_copy_from_data(vlparams[i].type, data) );
@@ -201,6 +204,9 @@ void a_preferences_show_window(GtkWindow *parent) {
 
 void a_preferences_register(VikLayerParam *pref, VikLayerParamData defaultval, const gchar *group_key )
 {
+  // All preferences should be registered before loading
+  if ( loaded )
+    g_critical ( "REGISTERING preference %s after LOADING from " VIKING_PREFS_FILE, pref->name );
   /* copy value */
   VikLayerParam *newpref = g_new(VikLayerParam,1);
   *newpref = *pref;
@@ -239,6 +245,7 @@ void a_preferences_uninit()
 VikLayerParamData *a_preferences_get(const gchar *key)
 {
   if ( ! loaded ) {
+    g_debug ( "%s: First time: %s\n", __FUNCTION__, key );
     /* since we can't load the file in a_preferences_init (no params registered yet),
      * do it once before we get the first key. */
     preferences_load_from_file();