Allowing sorting by columns, Code cleanup

This commit is contained in:
Pierre Pronchery 2007-05-01 20:04:40 +00:00
parent 27f3ebe1f2
commit add6e9b0fd

View File

@ -1129,10 +1129,13 @@ void browser_set_view(Browser * browser, BrowserView view)
} }
} }
static void _details_column_text(GtkTreeView * view, char const * title,
int id);
static void _view_details(Browser * browser) static void _view_details(Browser * browser)
{ {
GtkTreeSelection * treesel; GtkTreeSelection * treesel;
GtkCellRenderer * renderer; GtkCellRenderer * renderer;
GtkTreeView * view;
if(browser->detailview != NULL) if(browser->detailview != NULL)
return; return;
@ -1146,10 +1149,10 @@ static void _view_details(Browser * browser)
#endif #endif
browser->detailview = gtk_tree_view_new_with_model(GTK_TREE_MODEL( browser->detailview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(
browser->store)); browser->store));
if((treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW( view = GTK_TREE_VIEW(browser->detailview);
browser->detailview))) != NULL) if((treesel = gtk_tree_view_get_selection(view)) != NULL)
gtk_tree_selection_set_mode(treesel, GTK_SELECTION_MULTIPLE); gtk_tree_selection_set_mode(treesel, GTK_SELECTION_MULTIPLE);
gtk_tree_view_append_column(GTK_TREE_VIEW(browser->detailview), gtk_tree_view_append_column(view,
gtk_tree_view_column_new_with_attributes("", gtk_tree_view_column_new_with_attributes("",
gtk_cell_renderer_pixbuf_new(), "pixbuf", gtk_cell_renderer_pixbuf_new(), "pixbuf",
BR_COL_PIXBUF_24, NULL)); BR_COL_PIXBUF_24, NULL));
@ -1157,36 +1160,31 @@ static void _view_details(Browser * browser)
g_object_set(renderer, "editable", TRUE, NULL); g_object_set(renderer, "editable", TRUE, NULL);
g_signal_connect(G_OBJECT(renderer), "edited", G_CALLBACK( g_signal_connect(G_OBJECT(renderer), "edited", G_CALLBACK(
on_filename_edited), browser); on_filename_edited), browser);
gtk_tree_view_append_column(GTK_TREE_VIEW(browser->detailview), _details_column_text(view, "Filename", BR_COL_DISPLAY_NAME);
gtk_tree_view_column_new_with_attributes("Filename", _details_column_text(view, "Size", BR_COL_SIZE);
renderer, "text", BR_COL_DISPLAY_NAME, NULL)); _details_column_text(view, "Owner", BR_COL_OWNER);
gtk_tree_view_append_column(GTK_TREE_VIEW(browser->detailview), _details_column_text(view, "Group", BR_COL_GROUP);
gtk_tree_view_column_new_with_attributes("Size", _details_column_text(view, "MIME type", BR_COL_MIME_TYPE);
gtk_cell_renderer_text_new(), "text", gtk_tree_view_set_headers_visible(view, TRUE);
BR_COL_SIZE, NULL)); g_signal_connect(G_OBJECT(view), "row-activated", G_CALLBACK(
gtk_tree_view_append_column(GTK_TREE_VIEW(browser->detailview), on_detail_default), browser);
gtk_tree_view_column_new_with_attributes("Owner", g_signal_connect(G_OBJECT(view), "button-press-event", G_CALLBACK(
gtk_cell_renderer_text_new(), "text", on_view_press), browser);
BR_COL_OWNER, NULL));
gtk_tree_view_append_column(GTK_TREE_VIEW(browser->detailview),
gtk_tree_view_column_new_with_attributes("Group",
gtk_cell_renderer_text_new(), "text",
BR_COL_GROUP, NULL));
gtk_tree_view_append_column(GTK_TREE_VIEW(browser->detailview),
gtk_tree_view_column_new_with_attributes("MIME type",
gtk_cell_renderer_text_new(), "text",
BR_COL_MIME_TYPE, NULL));
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(browser->detailview),
TRUE);
g_signal_connect(G_OBJECT(browser->detailview), "row-activated",
G_CALLBACK(on_detail_default), browser);
g_signal_connect(G_OBJECT(browser->detailview), "button-press-event",
G_CALLBACK(on_view_press), browser);
gtk_container_add(GTK_CONTAINER(browser->scrolled), gtk_container_add(GTK_CONTAINER(browser->scrolled),
browser->detailview); browser->detailview);
gtk_widget_show(browser->detailview); gtk_widget_show(browser->detailview);
} }
static void _details_column_text(GtkTreeView * view, char const * title, int id)
{
GtkTreeViewColumn * column;
column = gtk_tree_view_column_new_with_attributes(title,
gtk_cell_renderer_text_new(), "text", id, NULL);
gtk_tree_view_column_set_sort_column_id(column, id);
gtk_tree_view_append_column(view, column);
}
#if GTK_CHECK_VERSION(2, 6, 0) #if GTK_CHECK_VERSION(2, 6, 0)
static void _view_icon_view(Browser * browser); static void _view_icon_view(Browser * browser);
static void _view_icons(Browser * browser) static void _view_icons(Browser * browser)