diff options
author | Jonathan Blandford <jrb@gnome.org> | 2003-01-16 07:40:29 +0000 |
---|---|---|
committer | Jonathan Blandford <jrb@src.gnome.org> | 2003-01-16 07:40:29 +0000 |
commit | 22876b1dc37e6792f42cf3c8e24fa7de54582cae (patch) | |
tree | 41bf3f72902d456410e64ed88450422d8e36b464 | |
parent | 7d8899ba2e335baeda7092f1b422eba15a02a23b (diff) | |
download | gnome-control-center-22876b1dc37e6792f42cf3c8e24fa7de54582cae.tar.gz |
make sure we're initted, as this function can be run asynchronously.
Thu Jan 16 02:32:39 2003 Jonathan Blandford <jrb@gnome.org>
* gnome-theme-details.c (gnome_theme_details_update_from_gconf):
make sure we're initted, as this function can be run
asynchronously.
* gnome-theme-manager.c (gnome_meta_theme_installer_run_cb): hook
up the installer.
* gnome-theme-installer.c: Try to handle icon themes.
-rw-r--r-- | capplets/theme-switcher/ChangeLog | 11 | ||||
-rw-r--r-- | capplets/theme-switcher/gnome-theme-details.c | 28 | ||||
-rw-r--r-- | capplets/theme-switcher/gnome-theme-installer.c | 15 | ||||
-rw-r--r-- | capplets/theme-switcher/gnome-theme-installer.h | 2 | ||||
-rw-r--r-- | capplets/theme-switcher/gnome-theme-manager.c | 13 |
5 files changed, 57 insertions, 12 deletions
diff --git a/capplets/theme-switcher/ChangeLog b/capplets/theme-switcher/ChangeLog index 69b193e98..c41456425 100644 --- a/capplets/theme-switcher/ChangeLog +++ b/capplets/theme-switcher/ChangeLog @@ -1,3 +1,14 @@ +Thu Jan 16 02:32:39 2003 Jonathan Blandford <jrb@gnome.org> + + * gnome-theme-details.c (gnome_theme_details_update_from_gconf): + make sure we're initted, as this function can be run + asynchronously. + + * gnome-theme-manager.c (gnome_meta_theme_installer_run_cb): hook + up the installer. + + * gnome-theme-installer.c: Try to handle icon themes. + Wed Jan 15 20:15:31 2003 Jonathan Blandford <jrb@redhat.com> * gnome-theme-manager.c (gnome_theme_manager_tree_sort_func): diff --git a/capplets/theme-switcher/gnome-theme-details.c b/capplets/theme-switcher/gnome-theme-details.c index ec5249aca..257c7d6a5 100644 --- a/capplets/theme-switcher/gnome-theme-details.c +++ b/capplets/theme-switcher/gnome-theme-details.c @@ -107,6 +107,7 @@ setup_tree_view (GtkTreeView *tree_view, gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (model), 0, details_tree_sort_func, NULL, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), 0, GTK_SORT_ASCENDING); gtk_tree_view_set_model (tree_view, model); + selection = gtk_tree_view_get_selection (tree_view); gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE); g_signal_connect (G_OBJECT (selection), "changed", changed_callback, dialog); @@ -161,6 +162,21 @@ window_theme_selection_changed (GtkTreeSelection *selection, } static void +gnome_theme_installer_run_cb (GtkWidget *button, + GtkWidget *parent_window) +{ + gnome_theme_installer_run (parent_window, NULL, FALSE); +} + + +static void +gnome_icon_theme_installer_run_cb (GtkWidget *button, + GtkWidget *parent_window) +{ + gnome_theme_installer_run (parent_window, NULL, TRUE); +} + +static void icon_theme_selection_changed (GtkTreeSelection *selection, gpointer data) { @@ -267,7 +283,6 @@ update_gconf_key_from_selection (GtkTreeSelection *selection, g_object_unref (client); } - void gnome_theme_details_init (void) { @@ -297,19 +312,19 @@ gnome_theme_details_init (void) /* gtk themes */ widget = WID ("control_install_button"); - g_signal_connect_swapped (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_installer_run), parent); + g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_installer_run_cb), parent); widget = WID ("control_manage_button"); g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_manager_show_manage_themes), dialog); /* window manager themes */ widget = WID ("window_install_button"); - g_signal_connect_swapped (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_installer_run), parent); + g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_icon_theme_installer_run_cb), parent); widget = WID ("window_manage_button"); g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_manager_window_show_manage_themes), dialog); /* icon themes */ widget = WID ("icon_install_button"); - g_signal_connect_swapped (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_installer_run), parent); + g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_installer_run_cb), parent); widget = WID ("icon_manage_button"); g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (gnome_theme_manager_icon_show_manage_themes), dialog); @@ -375,6 +390,9 @@ gnome_theme_details_reread_themes_from_disk (void) gboolean have_window_theme; gboolean have_icon_theme; + + gnome_theme_details_init (); + dialog = gnome_theme_manager_get_theme_dialog (); window_manager = gnome_wm_manager_get_current (gdk_display_get_default_screen (gdk_display_get_default ())); notebook = WID ("theme_notebook"); @@ -535,6 +553,8 @@ gnome_theme_details_update_from_gconf (void) GnomeWindowManager *window_manager; GnomeWMSettings wm_settings; + gnome_theme_details_init (); + window_manager = gnome_wm_manager_get_current (gdk_display_get_default_screen (gdk_display_get_default ())); client = gconf_client_get_default (); diff --git a/capplets/theme-switcher/gnome-theme-installer.c b/capplets/theme-switcher/gnome-theme-installer.c index d826541fa..7f3b58615 100644 --- a/capplets/theme-switcher/gnome-theme-installer.c +++ b/capplets/theme-switcher/gnome-theme-installer.c @@ -104,6 +104,7 @@ install_dialog_response (GtkWidget *widget, int response_id, gpointer data) GList *src, *target; GnomeVFSURI *src_uri; const gchar *raw; + gboolean icon_theme; if (response_id == GTK_RESPONSE_HELP) { capplet_help (GTK_WINDOW (widget), @@ -113,6 +114,7 @@ install_dialog_response (GtkWidget *widget, int response_id, gpointer data) } if (response_id == 0) { + icon_theme = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "icon_theme")); raw = gtk_entry_get_text (GTK_ENTRY (gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (WID ("install_theme_picker"))))); if (raw == NULL || strlen (raw) <= 0) return; @@ -127,8 +129,10 @@ install_dialog_response (GtkWidget *widget, int response_id, gpointer data) src_uri = gnome_vfs_uri_new (filename); base = gnome_vfs_uri_extract_short_name (src_uri); src = g_list_append (NULL, src_uri); - path = g_build_filename (g_get_home_dir (), ".themes", - base, NULL); + if (icon_theme) + path = g_build_filename (g_get_home_dir (), ".icons", base, NULL); + else + path = g_build_filename (g_get_home_dir (), ".themes", base, NULL); target = g_list_append (NULL, gnome_vfs_uri_new (path)); dlg = file_transfer_dialog_new (); @@ -151,7 +155,7 @@ install_dialog_response (GtkWidget *widget, int response_id, gpointer data) } void -gnome_theme_installer_run (GtkWidget *parent, gchar *filename) +gnome_theme_installer_run (GtkWidget *parent, gchar *filename, gboolean icon_theme) { static gboolean running_theme_install = FALSE; GladeXML *dialog; @@ -165,8 +169,8 @@ gnome_theme_installer_run (GtkWidget *parent, gchar *filename) dialog = glade_xml_new (GLADEDIR "/theme-install.glade", NULL, NULL); widget = WID ("install_dialog"); - g_signal_connect (G_OBJECT (widget), "response", - G_CALLBACK (install_dialog_response), dialog); + g_object_set_data (G_OBJECT (widget), "icon_theme", GINT_TO_POINTER (icon_theme)); + g_signal_connect (G_OBJECT (widget), "response", G_CALLBACK (install_dialog_response), dialog); gtk_window_set_transient_for (GTK_WINDOW (widget), GTK_WINDOW (parent)); gtk_window_set_position (GTK_WINDOW (widget), GTK_WIN_POS_CENTER_ON_PARENT); if (filename) @@ -180,4 +184,3 @@ gnome_theme_installer_run (GtkWidget *parent, gchar *filename) running_theme_install = FALSE; } - diff --git a/capplets/theme-switcher/gnome-theme-installer.h b/capplets/theme-switcher/gnome-theme-installer.h index b23ff2557..a0878786f 100644 --- a/capplets/theme-switcher/gnome-theme-installer.h +++ b/capplets/theme-switcher/gnome-theme-installer.h @@ -24,6 +24,6 @@ #include <gtk/gtk.h> -void gnome_theme_installer_run (GtkWidget *parent, gchar *filename); +void gnome_theme_installer_run (GtkWidget *parent, gchar *filename, gboolean icon_theme); #endif /* GNOME_THEME_INSTALLER_H */ diff --git a/capplets/theme-switcher/gnome-theme-manager.c b/capplets/theme-switcher/gnome-theme-manager.c index 2e1375dad..13d06d25d 100644 --- a/capplets/theme-switcher/gnome-theme-manager.c +++ b/capplets/theme-switcher/gnome-theme-manager.c @@ -1058,6 +1058,15 @@ setup_meta_tree_view (GtkTreeView *tree_view, g_signal_connect (G_OBJECT (selection), "changed", changed_callback, dialog); } + +static void +gnome_meta_theme_installer_run_cb (GtkWidget *button, + GtkWidget *parent_window) +{ + gnome_theme_installer_run (parent_window, NULL, FALSE); +} + + static void gnome_theme_save_clicked (GtkWidget *button, gpointer data) @@ -1125,6 +1134,8 @@ setup_dialog (GladeXML *dialog) gtk_size_group_add_widget (size_group, WID ("meta_theme_background2_button")); g_object_unref (size_group); + g_signal_connect (G_OBJECT (WID ("meta_theme_install_button")), "clicked", G_CALLBACK (gnome_meta_theme_installer_run_cb), parent); + g_signal_connect (G_OBJECT (WID ("meta_theme_details_button")), "clicked", gnome_theme_details_show, NULL); g_signal_connect (G_OBJECT (WID ("meta_theme_font1_button")), "clicked", G_CALLBACK (apply_font_clicked), dialog); @@ -1340,7 +1351,7 @@ gnome_theme_manager_drag_data_received_cb (GtkWidget *widget, GdkDragContext *co gnome_vfs_uri_list_unref (uris); } - gnome_theme_installer_run (widget, filename); + gnome_theme_installer_run (widget, filename, FALSE); g_free (filename); } |