Remove screen.png, which was commented out anyway.

2001-08-10  Richard Hestilow  <hestilow@ximian.com>

	* Makefile.am (pixmaps_DATA): Remove screen.png,
	  which was commented out anyway.

	* preferences.c (screensaver_clone): Added.
	  (copy_screensavers): Added.
	  (preferences_clone): Copy screensaver list.
	  (screensaver_destroy): Destroy new fields.
	* prefs-widget.c (prefs_widget_set_screensavers): Translate
	  strings and utf8ize ahead of time.
	  (prefs_widget_destroy): Free translated strings.
	  (model_value_at): Return pre-translated string.
	  (about_cb): Call gettext on desc, name, and title.
	* screensaver-prefs-dialog.c (screensaver_prefs_dialog_new):
	  Call gettext on label and desc.
	* capplets/screensavers/Makefile.am: Fixes for make distcheck.
	* capplets/screensavers/magic.pl.in: Fix description parsing bug,
	  and fakepreview lost bug.
This commit is contained in:
Richard Hestilow 2001-08-10 17:55:36 +00:00 committed by Rachel Hestilow
parent 6d643347af
commit b35c2cf932
26 changed files with 177 additions and 58 deletions

View file

@ -251,6 +251,59 @@ clone_cb (gchar *key, gchar *value, Preferences *new_prefs)
return 0;
}
static Screensaver*
screensaver_clone (Screensaver *oldsaver)
{
Screensaver *saver;
GList *l;
g_return_val_if_fail (oldsaver != NULL, NULL);
saver = screensaver_new ();
saver->id = oldsaver->id;
saver->name = g_strdup (oldsaver->name);
saver->filename = g_strdup (oldsaver->filename);
saver->label = g_strdup (oldsaver->label);
saver->description = g_strdup (oldsaver->description);
if (oldsaver->command_line)
saver->command_line = g_strdup (oldsaver->command_line);
if (oldsaver->compat_command_line)
saver->compat_command_line = g_strdup (oldsaver->compat_command_line);
if (oldsaver->visual)
saver->visual = g_strdup (oldsaver->name);
saver->enabled = oldsaver->enabled;
if (oldsaver->fakepreview)
saver->fakepreview = g_strdup (oldsaver->fakepreview);
for (l = oldsaver->fakes; l != NULL; l = l->next)
{
saver->fakes = g_list_prepend (saver->fakes, g_strdup (l->data));
}
saver->fakes = g_list_reverse (saver->fakes);
return saver;
}
static GList*
copy_screensavers (GList *screensavers, GHashTable *savers_hash)
{
GList *ret = NULL, *l;
Screensaver *saver;
g_return_val_if_fail (savers_hash != NULL, NULL);
for (l = screensavers; l != NULL; l = l->next)
{
saver = screensaver_clone (l->data);
ret = g_list_prepend (ret, saver);
g_hash_table_insert (savers_hash, saver->name, saver);
saver->link = ret;
}
ret = g_list_reverse (ret);
return ret;
}
Preferences *
preferences_clone (Preferences *prefs)
{
@ -271,6 +324,9 @@ preferences_clone (Preferences *prefs)
g_tree_traverse (prefs->config_db, (GTraverseFunc) clone_cb,
G_IN_ORDER, new_prefs);
new_prefs->screensavers = copy_screensavers (prefs->screensavers,
new_prefs->savers_hash);
read_prefs_from_db (new_prefs);
return new_prefs;
}
@ -514,14 +570,27 @@ screensaver_new (void)
void
screensaver_destroy (Screensaver *saver)
{
GList *l;
if (!saver) return;
if (saver->visual) g_free (saver->visual);
if (saver->name) g_free (saver->name);
if (saver->filename) g_free (saver->filename);
if (saver->command_line) g_free (saver->command_line);
if (saver->compat_command_line) g_free (saver->compat_command_line);
if (saver->label) g_free (saver->label);
if (saver->description) g_free (saver->description);
if (saver->fakepreview) g_free (saver->fakepreview);
for (l = saver->fakes; l != NULL; l = l->next)
{
g_free (l->data);
}
if (saver->fakes)
g_list_free (saver->fakes);
g_free (saver);
}