Commit dce631b24af826ebba1401ba3f62c2dc62ead05e
1 parent
308ecd30
Exists in
master
and in
4 other branches
Sorting available actions.
Showing
2 changed files
with
23 additions
and
2 deletions
Show diff stats
src/objects/actions/view.c
... | ... | @@ -51,9 +51,27 @@ |
51 | 51 | |
52 | 52 | static void list_element_free(struct ListElement *element); |
53 | 53 | |
54 | + static gint view_sort(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer G_GNUC_UNUSED(user_data)) { | |
55 | + | |
56 | + gint rc = 0; | |
57 | + GValue value[] = { G_VALUE_INIT, G_VALUE_INIT }; | |
58 | + | |
59 | + gtk_tree_model_get_value(model, a, COLUMN_LABEL, &value[0]); | |
60 | + gtk_tree_model_get_value(model, b, COLUMN_LABEL, &value[1]); | |
61 | + | |
62 | + rc = g_ascii_strcasecmp(g_value_get_string(&value[0]),g_value_get_string(&value[1])); | |
63 | + | |
64 | + g_value_unset(&value[0]); | |
65 | + g_value_unset(&value[1]); | |
66 | + | |
67 | + return rc; | |
68 | + | |
69 | + } | |
70 | + | |
54 | 71 | GtkWidget * pw3270_action_view_new() { |
55 | 72 | |
56 | - GtkWidget * view = GTK_WIDGET(gtk_tree_view_new_with_model(GTK_TREE_MODEL(gtk_list_store_new(3,G_TYPE_OBJECT,G_TYPE_STRING,G_TYPE_STRING)))); | |
73 | + GtkTreeModel * model = GTK_TREE_MODEL(gtk_list_store_new(3,G_TYPE_OBJECT,G_TYPE_STRING,G_TYPE_STRING)); | |
74 | + GtkWidget * view = GTK_WIDGET(gtk_tree_view_new_with_model(model)); | |
57 | 75 | |
58 | 76 | gtk_widget_set_hexpand(view,TRUE); |
59 | 77 | gtk_widget_set_vexpand(view,TRUE); |
... | ... | @@ -82,6 +100,8 @@ |
82 | 100 | NULL |
83 | 101 | ); |
84 | 102 | |
103 | + gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(model),view_sort,NULL,NULL); | |
104 | + | |
85 | 105 | return view; |
86 | 106 | } |
87 | 107 | ... | ... |
src/objects/toolbar/settings.c
... | ... | @@ -121,6 +121,7 @@ |
121 | 121 | } |
122 | 122 | |
123 | 123 | gtk_tree_view_set_reorderable(GTK_TREE_VIEW(page->views[0]),TRUE); |
124 | + gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(gtk_tree_view_get_model(GTK_TREE_VIEW(page->views[1]))), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); | |
124 | 125 | |
125 | 126 | // Create buttons |
126 | 127 | static const gchar * icon_names[G_N_ELEMENTS(page->buttons)] = { |
... | ... | @@ -128,7 +129,7 @@ |
128 | 129 | "go-previous" |
129 | 130 | }; |
130 | 131 | |
131 | - GtkWidget * box = gtk_vbutton_box_new(); | |
132 | + GtkWidget * box = gtk_button_box_new(GTK_ORIENTATION_VERTICAL); | |
132 | 133 | gtk_widget_set_hexpand(box,FALSE); |
133 | 134 | gtk_widget_set_vexpand(box,FALSE); |
134 | 135 | ... | ... |