Commit dce631b24af826ebba1401ba3f62c2dc62ead05e

Authored by Perry Werneck
1 parent 308ecd30

Sorting available actions.

src/objects/actions/view.c
@@ -51,9 +51,27 @@ @@ -51,9 +51,27 @@
51 51
52 static void list_element_free(struct ListElement *element); 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 GtkWidget * pw3270_action_view_new() { 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 gtk_widget_set_hexpand(view,TRUE); 76 gtk_widget_set_hexpand(view,TRUE);
59 gtk_widget_set_vexpand(view,TRUE); 77 gtk_widget_set_vexpand(view,TRUE);
@@ -82,6 +100,8 @@ @@ -82,6 +100,8 @@
82 NULL 100 NULL
83 ); 101 );
84 102
  103 + gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(model),view_sort,NULL,NULL);
  104 +
85 return view; 105 return view;
86 } 106 }
87 107
src/objects/toolbar/settings.c
@@ -121,6 +121,7 @@ @@ -121,6 +121,7 @@
121 } 121 }
122 122
123 gtk_tree_view_set_reorderable(GTK_TREE_VIEW(page->views[0]),TRUE); 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 // Create buttons 126 // Create buttons
126 static const gchar * icon_names[G_N_ELEMENTS(page->buttons)] = { 127 static const gchar * icon_names[G_N_ELEMENTS(page->buttons)] = {
@@ -128,7 +129,7 @@ @@ -128,7 +129,7 @@
128 "go-previous" 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 gtk_widget_set_hexpand(box,FALSE); 133 gtk_widget_set_hexpand(box,FALSE);
133 gtk_widget_set_vexpand(box,FALSE); 134 gtk_widget_set_vexpand(box,FALSE);
134 135