Implement. Create a copy of a preferences structure (clone_cb): Implement
2001-05-06 Bradford Hovinen <hovinen@ximian.com> * preferences.c (preferences_clone): Implement. Create a copy of a preferences structure (clone_cb): Implement (read_prefs_from_db): Parse screensavers from a copy of the string so that we don't overwrite the original * main.c (main): Call preferences_clone instead of reloading old preferences
This commit is contained in:
parent
7bfddd30e4
commit
6fb797ca6b
5 changed files with 58 additions and 4 deletions
|
@ -1,3 +1,14 @@
|
||||||
|
2001-05-06 Bradford Hovinen <hovinen@ximian.com>
|
||||||
|
|
||||||
|
* preferences.c (preferences_clone): Implement. Create a copy of a
|
||||||
|
preferences structure
|
||||||
|
(clone_cb): Implement
|
||||||
|
(read_prefs_from_db): Parse screensavers from a copy of the string
|
||||||
|
so that we don't overwrite the original
|
||||||
|
|
||||||
|
* main.c (main): Call preferences_clone instead of reloading old
|
||||||
|
preferences
|
||||||
|
|
||||||
2001-05-05 Bradford Hovinen <hovinen@ximian.com>
|
2001-05-05 Bradford Hovinen <hovinen@ximian.com>
|
||||||
|
|
||||||
* prefs-widget.c (one_screensaver_cb): Fix segv
|
* prefs-widget.c (one_screensaver_cb): Fix segv
|
||||||
|
|
|
@ -400,8 +400,7 @@ main (int argc, char **argv)
|
||||||
#endif /* HAVE_XIMIAN_ARCHIVER */
|
#endif /* HAVE_XIMIAN_ARCHIVER */
|
||||||
|
|
||||||
if (!res) {
|
if (!res) {
|
||||||
old_prefs = preferences_new ();
|
old_prefs = preferences_clone (prefs);
|
||||||
preferences_load (old_prefs);
|
|
||||||
setup_capplet_widget ();
|
setup_capplet_widget ();
|
||||||
|
|
||||||
capplet_gtk_main ();
|
capplet_gtk_main ();
|
||||||
|
|
|
@ -59,7 +59,7 @@ remove_entry (GTree *config_db, gchar *entry)
|
||||||
static void
|
static void
|
||||||
read_prefs_from_db (Preferences *prefs)
|
read_prefs_from_db (Preferences *prefs)
|
||||||
{
|
{
|
||||||
gchar *value;
|
gchar *value, *tmp;
|
||||||
|
|
||||||
value = g_tree_lookup (prefs->config_db, "verbose");
|
value = g_tree_lookup (prefs->config_db, "verbose");
|
||||||
if (value) prefs->verbose = parse_boolean_resource (value);
|
if (value) prefs->verbose = parse_boolean_resource (value);
|
||||||
|
@ -95,7 +95,12 @@ read_prefs_from_db (Preferences *prefs)
|
||||||
if (value) prefs->cycle = parse_minutes_resource (value);
|
if (value) prefs->cycle = parse_minutes_resource (value);
|
||||||
|
|
||||||
value = g_tree_lookup (prefs->config_db, "programs");
|
value = g_tree_lookup (prefs->config_db, "programs");
|
||||||
if (value) prefs->screensavers = parse_screensaver_list (value);
|
|
||||||
|
if (value) {
|
||||||
|
tmp = g_strdup (value);
|
||||||
|
prefs->screensavers = parse_screensaver_list (tmp);
|
||||||
|
g_free (tmp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -169,6 +174,38 @@ preferences_new (void)
|
||||||
return prefs;
|
return prefs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gint
|
||||||
|
clone_cb (gchar *key, gchar *value, Preferences *new_prefs)
|
||||||
|
{
|
||||||
|
if (!strcmp (key, "programs"))
|
||||||
|
g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Programs value is:\n%s", value);
|
||||||
|
|
||||||
|
g_tree_insert (new_prefs->config_db, key, g_strdup (value));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Preferences *
|
||||||
|
preferences_clone (Preferences *prefs)
|
||||||
|
{
|
||||||
|
Preferences *new_prefs;
|
||||||
|
|
||||||
|
new_prefs = g_new0 (Preferences, 1);
|
||||||
|
|
||||||
|
new_prefs->config_db = g_tree_new ((GCompareFunc) strcmp);
|
||||||
|
|
||||||
|
new_prefs->selection_mode = prefs->selection_mode;
|
||||||
|
new_prefs->power_management = prefs->power_management;
|
||||||
|
new_prefs->standby_time = prefs->standby_time;
|
||||||
|
new_prefs->suspend_time = prefs->suspend_time;
|
||||||
|
new_prefs->power_down_time = prefs->power_down_time;
|
||||||
|
|
||||||
|
g_tree_traverse (prefs->config_db, (GTraverseFunc) clone_cb,
|
||||||
|
G_IN_ORDER, new_prefs);
|
||||||
|
|
||||||
|
read_prefs_from_db (new_prefs);
|
||||||
|
return new_prefs;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
preferences_destroy (Preferences *prefs)
|
preferences_destroy (Preferences *prefs)
|
||||||
{
|
{
|
||||||
|
|
|
@ -95,6 +95,7 @@ struct _Preferences
|
||||||
typedef struct _Preferences Preferences;
|
typedef struct _Preferences Preferences;
|
||||||
|
|
||||||
Preferences *preferences_new (void);
|
Preferences *preferences_new (void);
|
||||||
|
Preferences *preferences_clone (Preferences *prefs);
|
||||||
void preferences_destroy (Preferences *prefs);
|
void preferences_destroy (Preferences *prefs);
|
||||||
|
|
||||||
void preferences_load (Preferences *prefs);
|
void preferences_load (Preferences *prefs);
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
/*
|
||||||
|
* Translatable strings file generated by extract-labels
|
||||||
|
* Add this file to your project's POTFILES.in.
|
||||||
|
* DO NOT compile it as part of your application.
|
||||||
|
*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue