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 | ... | ... |