call correctly in all the right places.

Wed Jan 15 20:16:21 2003  Jonathan Blandford  <jrb@redhat.com>

	* gnome-theme-info.c (remove_data_from_hash_by_name): call
	correctly in all the right places.

	* gnome-theme-manager.c (gnome_theme_manager_tree_sort_func):
	remove this unneeded sort func.

	* gnome-theme-details.c (setup_tree_view): use the right sort
	function.
This commit is contained in:
Jonathan Blandford 2003-01-16 01:16:36 +00:00 committed by Jonathan Blandford
parent ff051fce67
commit 7d8899ba2e
6 changed files with 60 additions and 61 deletions

View file

@ -1,3 +1,8 @@
Wed Jan 15 20:16:21 2003 Jonathan Blandford <jrb@redhat.com>
* gnome-theme-info.c (remove_data_from_hash_by_name): call
correctly in all the right places.
Mon Jan 13 15:04:47 2003 Jonathan Blandford <jrb@redhat.com>
* gnome-theme-info.c: rewrote to handle fam more correctly. Still

View file

@ -538,6 +538,12 @@ update_theme_index (GnomeVFSURI *index_uri,
theme_info->has_metacity = theme_exists;
}
if (!theme_info->has_metacity && !theme_info->has_keybinding && !theme_info->has_gtk)
{
g_hash_table_remove (theme_hash_by_uri, common_theme_dir);
remove_data_from_hash_by_name (theme_hash_by_name, theme_info->name, theme_info);
}
if (theme_exists && theme_used_to_exist)
{
handle_change_signal (GNOME_THEME_TYPE_REGULAR, theme_info, GNOME_THEME_CHANGE_CHANGED, key_element);
@ -553,8 +559,6 @@ update_theme_index (GnomeVFSURI *index_uri,
if (!theme_info->has_metacity && !theme_info->has_keybinding && !theme_info->has_gtk)
{
g_hash_table_remove (theme_hash_by_uri, common_theme_dir);
remove_data_from_hash_by_name (theme_hash_by_name, theme_info->name, theme_info);
gnome_theme_info_free (theme_info);
}
}
@ -710,7 +714,7 @@ update_common_theme_dir_index (GnomeVFSURI *theme_index_uri,
name = ((GnomeThemeMetaInfo *)old_theme_info)->name;
g_hash_table_remove (hash_by_uri, common_theme_dir);
remove_data_from_hash_by_name (hash_by_name, name, common_theme_dir);
remove_data_from_hash_by_name (hash_by_name, name, old_theme_info);
handle_change_signal (icon_theme?GNOME_THEME_TYPE_ICON:GNOME_THEME_TYPE_METATHEME,
old_theme_info, GNOME_THEME_CHANGE_DELETED, 0);
if (icon_theme)

View file

@ -1,3 +1,11 @@
Wed Jan 15 20:15:31 2003 Jonathan Blandford <jrb@redhat.com>
* gnome-theme-manager.c (gnome_theme_manager_tree_sort_func):
remove this unneeded sort func.
* gnome-theme-details.c (setup_tree_view): use the right sort
function.
2003-01-14 Jody Goldberg <jody@gnome.org>
* gnome-theme-manager.c (load_meta_themes) : yet another place to

View file

@ -65,6 +65,35 @@ cb_dialog_response (GtkDialog *dialog, gint response_id)
gtk_widget_hide (GTK_WIDGET (dialog));
}
static gint
details_tree_sort_func (GtkTreeModel *model,
GtkTreeIter *a,
GtkTreeIter *b,
gpointer user_data)
{
gchar *a_name = NULL;
gchar *b_name = NULL;
guint a_flag = FALSE;
guint b_flag = FALSE;
gint retval;
gtk_tree_model_get (model, a,
THEME_NAME_COLUMN, &a_name,
THEME_FLAG_COLUMN, &a_flag,
-1);
gtk_tree_model_get (model, b,
THEME_NAME_COLUMN, &b_name,
THEME_FLAG_COLUMN, &b_flag,
-1);
retval = gnome_theme_manager_sort_func (a_name, b_name, a_flag, b_flag);
g_free (a_name);
g_free (b_name);
return retval;
}
static void
setup_tree_view (GtkTreeView *tree_view,
GCallback changed_callback,
@ -75,7 +104,7 @@ setup_tree_view (GtkTreeView *tree_view,
GtkCellRenderer *renderer;
model = (GtkTreeModel *) gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT);
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (model), 0, gnome_theme_manager_tree_sort_func, NULL, NULL);
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);
@ -86,9 +115,8 @@ setup_tree_view (GtkTreeView *tree_view,
gtk_tree_view_insert_column_with_attributes (tree_view,
-1, NULL,
renderer,
"markup", THEME_NAME_COLUMN,
"text", THEME_NAME_COLUMN,
NULL);
}

View file

@ -285,11 +285,15 @@ load_meta_themes (GtkTreeView *tree_view,
current_icon_theme = gconf_client_get_string (client, ICON_THEME_KEY, NULL);
window_manager = gnome_wm_manager_get_current (gdk_display_get_default_screen (gdk_display_get_default ()));
wm_settings.flags = GNOME_WM_SETTING_THEME;
if (window_manager) {
gnome_window_manager_get_settings (window_manager, &wm_settings);
current_window_theme = g_strdup (wm_settings.theme);
} else
current_window_theme = g_strdup ("");
if (window_manager)
{
gnome_window_manager_get_settings (window_manager, &wm_settings);
current_window_theme = g_strdup (wm_settings.theme);
}
else
{
current_window_theme = g_strdup ("");
}
/* FIXME: What do we really do when there is no theme? */
if (current_icon_theme == NULL)
@ -297,7 +301,6 @@ load_meta_themes (GtkTreeView *tree_view,
if (current_gtk_theme == NULL)
current_gtk_theme = g_strdup ("Default");
/* handle first time */
if (first_time)
{
@ -443,7 +446,6 @@ load_meta_themes (GtkTreeView *tree_view,
{
/* It's a dead item. */
GtkTreeIter iter_to_remove;
iter_to_remove = iter;
valid = gtk_tree_model_iter_next (model, &iter);
gtk_list_store_remove (GTK_LIST_STORE (model), &iter_to_remove);
@ -1050,8 +1052,6 @@ setup_meta_tree_view (GtkTreeView *tree_view,
G_TYPE_STRING, /* META_THEME_ID_COLUMN */
G_TYPE_UINT, /* META_THEME_FLAG_COLUMN */
GDK_TYPE_PIXBUF); /* META_THEME_PIXBUF_COLUMN */
// gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (model), 0, gnome_theme_manager_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);
@ -1220,48 +1220,6 @@ gnome_theme_manager_sort_func (const gchar *a_str,
return retval;
}
gint
gnome_theme_manager_tree_sort_func (GtkTreeModel *model,
GtkTreeIter *a,
GtkTreeIter *b,
gpointer user_data)
{
GnomeThemeMetaInfo *a_meta_info;
GnomeThemeMetaInfo *b_meta_info;
gchar *a_id = NULL;
gchar *b_id = NULL;
guint a_flag = FALSE;
guint b_flag = FALSE;
gint retval;
gtk_tree_model_get (model, a,
META_THEME_ID_COLUMN, &a_id,
META_THEME_FLAG_COLUMN, &a_flag,
-1);
gtk_tree_model_get (model, b,
META_THEME_ID_COLUMN, &b_id,
META_THEME_FLAG_COLUMN, &b_flag,
-1);
if (a_id)
a_meta_info = gnome_theme_meta_info_find (a_id);
else
a_meta_info = &custom_meta_theme_info;
if (b_id)
b_meta_info = gnome_theme_meta_info_find (b_id);
else
b_meta_info = &custom_meta_theme_info;
retval = gnome_theme_manager_sort_func (a_meta_info?a_meta_info->readable_name:"",
b_meta_info?b_meta_info->readable_name:"",
a_flag, b_flag);
g_free (a_id);
g_free (b_id);
return retval;
}
/* Starts nautilus on the themes directory*/
void
gnome_theme_manager_show_manage_themes (GtkWidget *button, gpointer data)

View file

@ -52,10 +52,6 @@ gint gnome_theme_manager_sort_func (const gchar *a_str
const gchar *b_str,
guint a_flag,
guint b_flag);
gint gnome_theme_manager_tree_sort_func (GtkTreeModel *model,
GtkTreeIter *a,
GtkTreeIter *b,
gpointer user_data);
void gnome_theme_manager_show_manage_themes (GtkWidget *button,
gpointer data);
void gnome_theme_manager_icon_show_manage_themes (GtkWidget *button,