]> git.street.me.uk Git - andy/viking.git/blobdiff - src/viklayer_defaults.c
Add a preference to control the number of recent files made available.
[andy/viking.git] / src / viklayer_defaults.c
index 6fec3d9a87f541fc9f7beea4b471347acd392d0b..a962a5d6e590f0a303caa175a534fa9e68c76cc9 100644 (file)
@@ -38,7 +38,7 @@ static GKeyFile *keyfile;
 
 static gboolean loaded;
 
-static VikLayerParamData get_default_data_answer ( const gchar *group, const gchar *name, VikLayerParamType ptype, gpointer success )
+static VikLayerParamData get_default_data_answer ( const gchar *group, const gchar *name, VikLayerParamType ptype, gpointer *success )
 {
        VikLayerParamData data = VIK_LPD_BOOLEAN ( FALSE );
 
@@ -86,11 +86,11 @@ static VikLayerParamData get_default_data_answer ( const gchar *group, const gch
        }
        default: break;
        }
-       success = GINT_TO_POINTER (TRUE);
+       *success = GINT_TO_POINTER (TRUE);
        if ( error ) {
-               g_warning ( error->message );
+               g_warning ( "%s", error->message );
                g_error_free ( error );
-               success = GINT_TO_POINTER (FALSE);
+               *success = GINT_TO_POINTER (FALSE);
        }
 
        return data;
@@ -100,7 +100,7 @@ static VikLayerParamData get_default_data ( const gchar *group, const gchar *nam
 {
        gpointer success = GINT_TO_POINTER (TRUE);
        // NB This should always succeed - don't worry about 'success'
-       return get_default_data_answer ( group, name, ptype, success );
+       return get_default_data_answer ( group, name, ptype, &success );
 }
 
 static void set_default_data ( VikLayerParamData data, const gchar *group, const gchar *name, VikLayerParamType ptype )
@@ -162,7 +162,7 @@ static void use_internal_defaults_if_missing_default ( VikLayerTypeEnum type )
                if ( params[i].group != VIK_LAYER_NOT_IN_PROPERTIES ) {
                        gpointer success = GINT_TO_POINTER (FALSE);
                        // Check current default is available
-                       get_default_data_answer ( vik_layer_get_interface(type)->fixed_layer_name, params[i].name, params[i].type, success);
+                       get_default_data_answer ( vik_layer_get_interface(type)->fixed_layer_name, params[i].name, params[i].type, &success );
                        // If no longer have a viable default
                        if ( ! GPOINTER_TO_INT (success) ) {
                                // Reset value
@@ -212,7 +212,7 @@ static gboolean layer_defaults_save_to_file()
     gchar *keyfilestr = g_key_file_to_data ( keyfile, &size, &error );
 
     if ( error ) {
-               g_warning ( error->message );
+               g_warning ( "%s", error->message );
                g_error_free ( error );
                answer = FALSE;
                goto tidy;
@@ -308,11 +308,12 @@ gboolean a_layer_defaults_show_window ( GtkWindow *parent, const gchar *layernam
                                              layer_params_count,
                                              vik_layer_get_interface(layer)->params_groups,
                                              vik_layer_get_interface(layer)->params_groups_count,
-                                                         (gboolean (*) (gpointer,guint16,VikLayerParamData,gpointer,gboolean)) defaults_run_setparam,
+                                             (gboolean (*) (gpointer,guint16,VikLayerParamData,gpointer,gboolean)) defaults_run_setparam,
                                              GINT_TO_POINTER ( index ),
                                              params,
                                              defaults_run_getparam,
-                                             GINT_TO_POINTER ( index ) ) ) {
+                                             GINT_TO_POINTER ( index ),
+                                             NULL ) ) {
                // Save
                layer_defaults_save_to_file();
     }
@@ -365,6 +366,7 @@ void a_layer_defaults_init()
 void a_layer_defaults_uninit()
 {
        g_key_file_free ( keyfile );    
+       g_ptr_array_foreach ( paramsVD, (GFunc)g_free, NULL );
        g_ptr_array_free ( paramsVD, TRUE );
 }