Commit dce631b24af826ebba1401ba3f62c2dc62ead05e

Authored by Perry Werneck
1 parent 308ecd30

Sorting available actions.

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