+/*
+ * viking -- GPS Data and Topo Analyzer, Explorer, and Manager
+ *
+ * Copyright (C) 2003-2007, Evan Battaglia <gtoevan@gmx.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
#include <gtk/gtk.h>
#include <glib/gi18n.h>
#include <string.h>
#include <stdio.h>
#include <glib/gstdio.h>
#include "preferences.h"
+#include "dir.h"
#include "file.h"
// TODO: register_group
void a_preferences_register_group ( const gchar *key, const gchar *name )
{
if ( g_hash_table_lookup ( groups_keys_to_indices, key ) )
- g_error("Duplicate preferences group keys");
+ g_critical("Duplicate preferences group keys");
else {
g_ptr_array_add ( groups_names, g_strdup(name) );
g_hash_table_insert ( groups_keys_to_indices, g_strdup(key), GINT_TO_POINTER ( (gint) groups_names->len ) ); /* index + 1 */
* by the layer -- i.e. free'd by the layer.
*/
case VIK_LAYER_PARAM_STRING_LIST:
- g_error ( "Param strings not implemented in preferences"); //fake it
+ g_critical ( "Param strings not implemented in preferences"); //fake it
break;
}
g_free ( val );
* by the layer -- i.e. free'd by the layer.
*/
case VIK_LAYER_PARAM_STRING_LIST:
- g_error ( "Param strings not implemented in preferences"); //fake it
+ g_critical ( "Param strings not implemented in preferences"); //fake it
break;
}
return newval;
gchar *key, *val;
VikLayerTypedParamData *oldval, *newval;
while ( ! feof (f) ) {
- fgets(buf,sizeof(buf),f);
+ if (fgets(buf,sizeof(buf),f) == NULL)
+ break;
if ( preferences_load_parse_param(buf, &key, &val ) ) {
// if it's not in there, ignore it
oldval = g_hash_table_lookup ( values, key );
// otherwise change it (you know the type!)
// if it's a string list do some funky stuff ... yuck... not yet.
if ( oldval->type == VIK_LAYER_PARAM_STRING_LIST )
- g_error ( "Param strings not implemented in preferences"); // fake it
+ g_critical ( "Param strings not implemented in preferences"); // fake it
newval = layer_data_typed_param_copy_from_string ( oldval->type, val );
g_hash_table_insert ( values, key, newval );
static void preferences_run_setparam ( gpointer notused, guint16 i, VikLayerParamData data, VikLayerParam *params )
{
if ( params[i].type == VIK_LAYER_PARAM_STRING_LIST )
- g_error ( "Param strings not implemented in preferences"); //fake it
+ g_critical ( "Param strings not implemented in preferences"); //fake it
g_hash_table_insert ( values, (gchar *)(params[i].name), layer_typed_param_data_copy_from_data(params[i].type, data) );
}
preferences_run_setparam (NULL, 0, data, params);
}
-static VikLayerParamData preferences_run_getparam ( gpointer notused, guint16 i )
+static VikLayerParamData preferences_run_getparam ( gpointer notused, guint16 i, gboolean notused2 )
{
VikLayerTypedParamData *val = (VikLayerTypedParamData *) g_hash_table_lookup ( values, ((VikLayerParam *)g_ptr_array_index(params,i))->name );
g_assert ( val != NULL );
if ( val->type == VIK_LAYER_PARAM_STRING_LIST )
- g_error ( "Param strings not implemented in preferences"); //fake it
+ g_critical ( "Param strings not implemented in preferences"); //fake it
return val->data;
}
preferences_load_from_file();
if ( a_uibuilder_properties_factory ( _("Preferences"), parent, contiguous_params, params_count,
(gchar **) groups_names->pdata, groups_names->len, // groups, groups_count, // groups? what groups?!
- (gboolean (*) (gpointer,guint16,VikLayerParamData,gpointer)) preferences_run_setparam,
+ (gboolean (*) (gpointer,guint16,VikLayerParamData,gpointer,gboolean)) preferences_run_setparam,
NULL /* not used */, contiguous_params,
preferences_run_getparam, NULL /* not used */ ) ) {
a_preferences_save_to_file();