# HG changeset patch # User giacomo # Date 1137464989 28800 # Node ID 257a8d2047fbc04975b8de132418d0f24c3684cc # Parent 623391b6463b5674e8860b261def6a76b9894699 [svn] added a new column in the treeview model to store the skin name diff -r 623391b6463b -r 257a8d2047fb audacious/skinwin.c --- a/audacious/skinwin.c Mon Jan 16 16:05:02 2006 -0800 +++ b/audacious/skinwin.c Mon Jan 16 18:29:49 2006 -0800 @@ -46,6 +46,7 @@ enum SkinViewCols { SKIN_VIEW_COL_PREVIEW, + SKIN_VIEW_COL_FORMATTEDNAME, SKIN_VIEW_COL_NAME, SKIN_VIEW_N_COLS }; @@ -265,6 +266,7 @@ GtkTreePath *path; GdkPixbuf *thumbnail; + gchar *formattedname; gchar *name; GList *entry; @@ -282,19 +284,20 @@ if (!thumbnail) continue; - name = g_strdup_printf("%s\n%s", + formattedname = g_strdup_printf("%s\n%s", SKIN_NODE(entry->data)->name, SKIN_NODE(entry->data)->desc); + name = SKIN_NODE(entry->data)->name; gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, SKIN_VIEW_COL_PREVIEW, thumbnail, + SKIN_VIEW_COL_FORMATTEDNAME, formattedname, SKIN_VIEW_COL_NAME, name, -1); - g_object_set_data(G_OBJECT(thumbnail), "skinpath", - SKIN_NODE(entry->data)->name); g_object_unref(thumbnail); + g_free(formattedname); if (g_strstr_len(bmp_active_skin->path, - strlen(bmp_active_skin->path), name)) { + strlen(bmp_active_skin->path), name) ) { iter_current_skin = iter; } @@ -320,29 +323,24 @@ GtkTreeModel *model; GtkTreeSelection *selection; GtkTreeIter iter; - GdkPixbuf *thumbnail; GList *node; - gchar *sel, *name; + gchar *name; gchar *comp = NULL; selection = gtk_tree_view_get_selection(treeview); if (!gtk_tree_selection_get_selected(selection, &model, &iter)) return; - gtk_tree_model_get(model, &iter, SKIN_VIEW_COL_PREVIEW, &thumbnail, -1); - gtk_tree_model_get(model, &iter, SKIN_VIEW_COL_NAME, &sel, -1); + gtk_tree_model_get(model, &iter, SKIN_VIEW_COL_NAME, &name, -1); - name = g_object_get_data(G_OBJECT(thumbnail), "skinpath"); - - /* FIXME: store name in skinlist */ for (node = skinlist; node; node = g_list_next(node)) { comp = SKIN_NODE(node->data)->path; if (g_strrstr(comp, name)) break; } - g_free(sel); + g_free(name); bmp_active_skin_load(comp); } @@ -362,7 +360,7 @@ gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE); store = gtk_list_store_new(SKIN_VIEW_N_COLS, GDK_TYPE_PIXBUF, - G_TYPE_STRING); + G_TYPE_STRING , G_TYPE_STRING); gtk_tree_view_set_model(treeview, GTK_TREE_MODEL(store)); column = gtk_tree_view_column_new(); @@ -379,7 +377,7 @@ renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_set_attributes(column, renderer, "markup", - SKIN_VIEW_COL_NAME, NULL); + SKIN_VIEW_COL_FORMATTEDNAME, NULL); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE);