Fixes bug #147665
2006-01-03 Guillaume Desmottes <cass@skynet.be> Fixes bug #147665 * gnome-theme-manager.[ch] (update_font_button_state, update_background_button_state): new functions. (background_key_changed): call the 2 above functions to update the background from metathemes that include a background.
This commit is contained in:
parent
2f465c487e
commit
9d88a0bb5e
3 changed files with 114 additions and 1 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2006-01-03 Guillaume Desmottes <cass@skynet.be>
|
||||||
|
|
||||||
|
Fixes bug #147665
|
||||||
|
|
||||||
|
* gnome-theme-manager.[ch] (update_font_button_state,
|
||||||
|
update_background_button_state): new functions.
|
||||||
|
(background_key_changed): call the 2 above functions to update
|
||||||
|
the background from metathemes that include a background.
|
||||||
|
|
||||||
2005-11-14 David Sedeño <david@alderia.com>
|
2005-11-14 David Sedeño <david@alderia.com>
|
||||||
|
|
||||||
* gnome-theme-details.c (gtk_theme_update_remove_button): Update the
|
* gnome-theme-details.c (gtk_theme_update_remove_button): Update the
|
||||||
|
|
|
@ -82,6 +82,8 @@ static void meta_theme_setup_info (GnomeThemeMetaInfo *meta_theme
|
||||||
static void meta_theme_selection_changed (GtkTreeSelection *selection,
|
static void meta_theme_selection_changed (GtkTreeSelection *selection,
|
||||||
GladeXML *dialog);
|
GladeXML *dialog);
|
||||||
static void update_themes_from_disk (GladeXML *dialog);
|
static void update_themes_from_disk (GladeXML *dialog);
|
||||||
|
static void update_font_button_state (GladeXML *dialog);
|
||||||
|
static void update_background_button_state (GladeXML *dialog);
|
||||||
static void update_settings_from_gconf (void);
|
static void update_settings_from_gconf (void);
|
||||||
static void gtk_theme_key_changed (GConfClient *client,
|
static void gtk_theme_key_changed (GConfClient *client,
|
||||||
guint cnxn_id,
|
guint cnxn_id,
|
||||||
|
@ -97,6 +99,10 @@ static void font_key_changed (GConfClient *client,
|
||||||
guint cnxn_id,
|
guint cnxn_id,
|
||||||
GConfEntry *entry,
|
GConfEntry *entry,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
static void background_key_changed (GConfClient *client,
|
||||||
|
guint cnxn_id,
|
||||||
|
GConfEntry *entry,
|
||||||
|
gpointer user_data);
|
||||||
static void theme_changed_func (gpointer uri,
|
static void theme_changed_func (gpointer uri,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
static void cb_dialog_response (GtkDialog *dialog,
|
static void cb_dialog_response (GtkDialog *dialog,
|
||||||
|
@ -895,6 +901,8 @@ update_settings_from_gconf_idle (gpointer data)
|
||||||
g_free (current_window_theme);
|
g_free (current_window_theme);
|
||||||
g_free (current_icon_theme);
|
g_free (current_icon_theme);
|
||||||
update_settings_from_gconf_idle_id = 0;
|
update_settings_from_gconf_idle_id = 0;
|
||||||
|
update_font_button_state (dialog);
|
||||||
|
update_background_button_state (dialog);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -987,6 +995,51 @@ update_font_button_state (GladeXML *dialog)
|
||||||
g_object_unref (client);
|
g_object_unref (client);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
update_background_button_state (GladeXML *dialog)
|
||||||
|
{
|
||||||
|
GConfClient *client = gconf_client_get_default ();
|
||||||
|
GtkTreeSelection *selection;
|
||||||
|
GtkTreeModel *model;
|
||||||
|
GtkTreeIter iter;
|
||||||
|
|
||||||
|
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (WID ("meta_theme_treeview")));
|
||||||
|
|
||||||
|
if (gtk_tree_selection_get_selected (selection, &model, &iter))
|
||||||
|
{
|
||||||
|
GnomeThemeMetaInfo *meta_theme_info;
|
||||||
|
char *meta_theme_name, *str;
|
||||||
|
|
||||||
|
gtk_tree_model_get (model, &iter,
|
||||||
|
META_THEME_ID_COLUMN, &meta_theme_name,
|
||||||
|
-1);
|
||||||
|
if (!meta_theme_name)
|
||||||
|
return;
|
||||||
|
|
||||||
|
meta_theme_info = gnome_theme_meta_info_find (meta_theme_name);
|
||||||
|
|
||||||
|
g_assert (meta_theme_info);
|
||||||
|
g_free (meta_theme_name);
|
||||||
|
|
||||||
|
str = gconf_client_get_string (client, BACKGROUND_KEY, NULL);
|
||||||
|
|
||||||
|
if (meta_theme_info->background_image != NULL && str != NULL &&
|
||||||
|
strcmp (meta_theme_info->background_image, str) == 0)
|
||||||
|
{
|
||||||
|
gtk_widget_set_sensitive (WID ("meta_theme_background1_button"), FALSE);
|
||||||
|
gtk_widget_set_sensitive (WID ("meta_theme_background2_button"), FALSE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gtk_widget_set_sensitive (WID ("meta_theme_background1_button"), TRUE);
|
||||||
|
gtk_widget_set_sensitive (WID ("meta_theme_background2_button"), TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free (str);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
font_key_changed (GConfClient *client,
|
font_key_changed (GConfClient *client,
|
||||||
guint cnxn_id,
|
guint cnxn_id,
|
||||||
|
@ -998,6 +1051,17 @@ font_key_changed (GConfClient *client,
|
||||||
update_font_button_state (dialog);
|
update_font_button_state (dialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
background_key_changed (GConfClient *client,
|
||||||
|
guint cnxn_id,
|
||||||
|
GConfEntry *entry,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
GladeXML *dialog = user_data;
|
||||||
|
|
||||||
|
update_background_button_state (dialog);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
icon_key_changed (GConfClient *client,
|
icon_key_changed (GConfClient *client,
|
||||||
guint cnxn_id,
|
guint cnxn_id,
|
||||||
|
@ -1137,6 +1201,36 @@ apply_font_clicked (GtkWidget *button,
|
||||||
g_object_unref (client);
|
g_object_unref (client);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
apply_background_clicked (GtkWidget *button,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GladeXML *dialog = data;
|
||||||
|
GConfClient *client;
|
||||||
|
GtkTreeSelection *selection;
|
||||||
|
GtkTreeModel *model;
|
||||||
|
GtkTreeIter iter;
|
||||||
|
|
||||||
|
client = gconf_client_get_default ();
|
||||||
|
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (WID ("meta_theme_treeview")));
|
||||||
|
|
||||||
|
if (gtk_tree_selection_get_selected (selection, &model, &iter))
|
||||||
|
{
|
||||||
|
GnomeThemeMetaInfo *meta_theme_info;
|
||||||
|
char *meta_theme_name;
|
||||||
|
|
||||||
|
gtk_tree_model_get (model, &iter,
|
||||||
|
META_THEME_ID_COLUMN, &meta_theme_name,
|
||||||
|
-1);
|
||||||
|
meta_theme_info = gnome_theme_meta_info_find (meta_theme_name);
|
||||||
|
|
||||||
|
g_assert (meta_theme_info);
|
||||||
|
g_free (meta_theme_name);
|
||||||
|
|
||||||
|
gconf_client_set_string (client, BACKGROUND_KEY, meta_theme_info->background_image, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
revert_theme_clicked (GtkWidget *button,
|
revert_theme_clicked (GtkWidget *button,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
|
@ -1185,9 +1279,13 @@ setup_dialog (GladeXML *dialog)
|
||||||
g_signal_connect (G_OBJECT (WID ("meta_theme_details_button")), "clicked", gnome_theme_details_show, NULL);
|
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);
|
g_signal_connect (G_OBJECT (WID ("meta_theme_font1_button")), "clicked", G_CALLBACK (apply_font_clicked), dialog);
|
||||||
|
g_signal_connect (G_OBJECT (WID ("meta_theme_font2_button")), "clicked", G_CALLBACK (apply_font_clicked), dialog);
|
||||||
|
|
||||||
g_signal_connect (G_OBJECT (WID ("meta_theme_revert_button")), "clicked", G_CALLBACK (revert_theme_clicked),NULL);
|
g_signal_connect (G_OBJECT (WID ("meta_theme_revert_button")), "clicked", G_CALLBACK (revert_theme_clicked),NULL);
|
||||||
|
|
||||||
|
g_signal_connect (G_OBJECT (WID ("meta_theme_background1_button")), "clicked", G_CALLBACK (apply_background_clicked), dialog);
|
||||||
|
g_signal_connect (G_OBJECT (WID ("meta_theme_background2_button")), "clicked", G_CALLBACK (apply_background_clicked), dialog);
|
||||||
|
|
||||||
setup_meta_tree_view (GTK_TREE_VIEW (WID ("meta_theme_treeview")),
|
setup_meta_tree_view (GTK_TREE_VIEW (WID ("meta_theme_treeview")),
|
||||||
(GCallback) meta_theme_selection_changed,
|
(GCallback) meta_theme_selection_changed,
|
||||||
dialog);
|
dialog);
|
||||||
|
@ -1202,11 +1300,15 @@ setup_dialog (GladeXML *dialog)
|
||||||
ICON_THEME_KEY,
|
ICON_THEME_KEY,
|
||||||
(GConfClientNotifyFunc) &icon_key_changed,
|
(GConfClientNotifyFunc) &icon_key_changed,
|
||||||
dialog, NULL, NULL);
|
dialog, NULL, NULL);
|
||||||
|
|
||||||
gconf_client_notify_add (client,
|
gconf_client_notify_add (client,
|
||||||
FONT_KEY,
|
FONT_KEY,
|
||||||
(GConfClientNotifyFunc) &font_key_changed,
|
(GConfClientNotifyFunc) &font_key_changed,
|
||||||
dialog, NULL, NULL);
|
dialog, NULL, NULL);
|
||||||
|
gconf_client_notify_add (client,
|
||||||
|
BACKGROUND_KEY,
|
||||||
|
(GConfClientNotifyFunc) &background_key_changed,
|
||||||
|
dialog, NULL, NULL);
|
||||||
|
|
||||||
g_object_unref (client);
|
g_object_unref (client);
|
||||||
|
|
||||||
if (window_manager)
|
if (window_manager)
|
||||||
|
@ -1241,6 +1343,7 @@ setup_dialog (GladeXML *dialog)
|
||||||
capplet_set_icon (parent, "gnome-settings-theme");
|
capplet_set_icon (parent, "gnome-settings-theme");
|
||||||
|
|
||||||
update_font_button_state (dialog);
|
update_font_button_state (dialog);
|
||||||
|
update_background_button_state (dialog);
|
||||||
gtk_widget_show (parent);
|
gtk_widget_show (parent);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#define FONT_KEY "/desktop/gnome/interface/font_name"
|
#define FONT_KEY "/desktop/gnome/interface/font_name"
|
||||||
#define DESKTOP_FONT_KEY "/apps/nautilus/preferences/desktop_font"
|
#define DESKTOP_FONT_KEY "/apps/nautilus/preferences/desktop_font"
|
||||||
#define MONOSPACE_FONT_KEY "/desktop/gnome/interface/monospace_font_name"
|
#define MONOSPACE_FONT_KEY "/desktop/gnome/interface/monospace_font_name"
|
||||||
|
#define BACKGROUND_KEY "/desktop/gnome/background/picture_filename"
|
||||||
|
|
||||||
#define METACITY_THEME_DIR "/apps/metacity/general"
|
#define METACITY_THEME_DIR "/apps/metacity/general"
|
||||||
#define METACITY_THEME_KEY METACITY_THEME_DIR "/theme"
|
#define METACITY_THEME_KEY METACITY_THEME_DIR "/theme"
|
||||||
|
|
Loading…
Add table
Reference in a new issue