From fff1f909c819c2ec1ba18ad663c2bbf84d9a85d4 Mon Sep 17 00:00:00 2001 From: Seth Nickell Date: Sun, 5 Jan 2003 23:26:04 +0000 Subject: [PATCH] Generate thumbnails for the custom theme. 2003-01-05 Seth Nickell * gnome-theme-manager.c: (add_custom_row_to_meta_theme), (remove_custom_row_from_meta_theme): * theme-thumbnail.c: (theme_thumbnail_invalidate_cache): * theme-thumbnail.h: Generate thumbnails for the custom theme. --- capplets/theme-switcher/ChangeLog | 9 +++++++++ capplets/theme-switcher/gnome-theme-manager.c | 15 ++++++++++++++- capplets/theme-switcher/theme-thumbnail.c | 9 +++++++++ capplets/theme-switcher/theme-thumbnail.h | 15 ++++++++------- 4 files changed, 40 insertions(+), 8 deletions(-) diff --git a/capplets/theme-switcher/ChangeLog b/capplets/theme-switcher/ChangeLog index 5d50507ab..03d506c4b 100644 --- a/capplets/theme-switcher/ChangeLog +++ b/capplets/theme-switcher/ChangeLog @@ -1,3 +1,12 @@ +2003-01-05 Seth Nickell + + * gnome-theme-manager.c: (add_custom_row_to_meta_theme), + (remove_custom_row_from_meta_theme): + * theme-thumbnail.c: (theme_thumbnail_invalidate_cache): + * theme-thumbnail.h: + + Generate thumbnails for the custom theme. + Thu Jan 2 08:57:54 2003 Jonathan Blandford * gnome-theme-manager.c: correctly merge disk updates and the diff --git a/capplets/theme-switcher/gnome-theme-manager.c b/capplets/theme-switcher/gnome-theme-manager.c index 0e3195baa..12b3fe683 100644 --- a/capplets/theme-switcher/gnome-theme-manager.c +++ b/capplets/theme-switcher/gnome-theme-manager.c @@ -620,6 +620,7 @@ add_custom_row_to_meta_theme (const gchar *current_gtk_theme, GtkTreeIter iter; gboolean valid; gchar *blurb; + GdkPixbuf *pixbuf; dialog = gnome_theme_manager_get_theme_dialog (); tree_view = WID ("meta_theme_treeview"); @@ -628,6 +629,7 @@ add_custom_row_to_meta_theme (const gchar *current_gtk_theme, custom_meta_theme_info.gtk_theme_name = g_strdup (current_gtk_theme); custom_meta_theme_info.metacity_theme_name = g_strdup (current_window_theme); custom_meta_theme_info.icon_theme_name = g_strdup (current_icon_theme); + custom_meta_theme_info.name = g_strdup (_("Custom Theme\n")); for (valid = gtk_tree_model_get_iter_first (model, &iter); valid; @@ -653,11 +655,20 @@ add_custom_row_to_meta_theme (const gchar *current_gtk_theme, blurb = g_strdup_printf ("%s\n%s", _("Custom theme"), _("You can save this theme by pressing the Save Theme button.")); + printf ("Thumbnailing\n"); + + /* Invalidate the cache because the custom theme has potentially changed */ + /* Commented out because it does odd things */ + /*theme_thumbnail_invalidate_cache (&custom_meta_theme_info);*/ + + pixbuf = generate_theme_thumbnail (&custom_meta_theme_info); + gtk_list_store_set (GTK_LIST_STORE (model), &iter, + META_THEME_PIXBUF_COLUMN, pixbuf, META_THEME_NAME_COLUMN, blurb, META_THEME_FLAG_COLUMN, THEME_FLAG_CUSTOM, - META_THEME_PIXBUF_COLUMN, default_image, -1); + gtk_widget_set_sensitive (WID ("meta_theme_save_button"), TRUE); path = gtk_tree_model_get_path (model, &iter); gtk_tree_view_set_cursor (GTK_TREE_VIEW (tree_view), path, NULL, FALSE); @@ -697,12 +708,14 @@ remove_custom_row_from_meta_theme (GtkTreeModel *model) g_free (custom_meta_theme_info.gtk_theme_name); g_free (custom_meta_theme_info.metacity_theme_name); g_free (custom_meta_theme_info.icon_theme_name); + g_free (custom_meta_theme_info.name); gtk_widget_set_sensitive (WID ("meta_theme_save_button"), FALSE); custom_meta_theme_info.gtk_theme_name = NULL; custom_meta_theme_info.metacity_theme_name = NULL; custom_meta_theme_info.icon_theme_name = NULL; + custom_meta_theme_info.name = NULL; } diff --git a/capplets/theme-switcher/theme-thumbnail.c b/capplets/theme-switcher/theme-thumbnail.c index ca343d332..84aaaeb5e 100644 --- a/capplets/theme-switcher/theme-thumbnail.c +++ b/capplets/theme-switcher/theme-thumbnail.c @@ -438,6 +438,15 @@ message_from_child (GIOChannel *source, return TRUE; } +void +theme_thumbnail_invalidate_cache (GnomeThemeMetaInfo *meta_theme_info) +{ + gboolean success; + + success = g_hash_table_remove (theme_hash, meta_theme_info->name); + printf ("Success is %d\n", success); +} + GdkPixbuf * generate_theme_thumbnail (GnomeThemeMetaInfo *meta_theme_info) { diff --git a/capplets/theme-switcher/theme-thumbnail.h b/capplets/theme-switcher/theme-thumbnail.h index 77b7278dd..27332a927 100644 --- a/capplets/theme-switcher/theme-thumbnail.h +++ b/capplets/theme-switcher/theme-thumbnail.h @@ -9,13 +9,14 @@ typedef void (* ThemeThumbnailFunc) (GdkPixbuf *pixbuf, gpointer data); -GdkPixbuf *generate_theme_thumbnail (GnomeThemeMetaInfo *meta_theme_info); -void generate_theme_thumbnail_async (GnomeThemeMetaInfo *meta_theme_info, - ThemeThumbnailFunc func, - gpointer data, - GDestroyNotify destroy); -void theme_thumbnail_factory_init (int argc, - char *argv[]); +GdkPixbuf *generate_theme_thumbnail (GnomeThemeMetaInfo *meta_theme_info); +void generate_theme_thumbnail_async (GnomeThemeMetaInfo *meta_theme_info, + ThemeThumbnailFunc func, + gpointer data, + GDestroyNotify destroy); +void theme_thumbnail_invalidate_cache (GnomeThemeMetaInfo *meta_theme_info); +void theme_thumbnail_factory_init (int argc, + char *argv[]);