Hello all,

I was wondering why not to make that component treeview sorted
alphabetically, so I'm trying to modify the code for it to become
sortable...

I already made some progress but still not working...

Already converted the treeview into a treeviewsortable...

below.. my (preliminary) patch... code anyone comment out the code and
help me getting this working ??

Index: gschem/src/x_compselect.c
===================================================================
--- gschem.orig/src/x_compselect.c
+++ gschem/src/x_compselect.c
@@ -705,6 +705,11 @@ compselect_init (Compselect *compselect)
  child_model  = compselect_create_child_model ();
-  model = (GtkTreeModel*)g_object_new (GTK_TYPE_TREE_MODEL_FILTER,
-                                       "child-model",  child_model,
-                                       "virtual-root", NULL,
-                                       NULL);
+  model = gtk_tree_model_filter_new (child_model, NULL);
+  gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER(model),
+                 compselect_model_filter_visible_func,
+                 compselect,
+                 NULL);
+//  model = (GtkTreeModel*)g_object_new (GTK_TYPE_TREE_MODEL_FILTER,
+//                                       "child-model",  child_model,
+//                                       "virtual-root", NULL,
+//                                       NULL);
/*   gtk_tree_model_filter_set_visible_func ((GtkTreeModelFilter*)model, */
@@ -721,8 +726,11 @@ compselect_init (Compselect *compselect)
                  NULL));
+  /* FOR SORTING STUFF */
+  model = gtk_tree_model_sort_new_with_model (child_model);
  /* create the treeview */
-  treeview = GTK_WIDGET (g_object_new (GTK_TYPE_TREE_VIEW,
-                                       /* GtkTreeView */
-                                       "model",      model,
-                                       "rules-hint", TRUE,
-                                       NULL));
+  treeview = gtk_tree_view_new_with_model (model);
+//  treeview = GTK_WIDGET (g_object_new (GTK_TYPE_TREE_VIEW,
+//                                       /* GtkTreeView */
+//                                       "model",      model,
+//                                       "rules-hint", TRUE,
+//                                       NULL));
  /* connect callback to selection */
@@ -741,7 +749,8 @@ compselect_init (Compselect *compselect)
                  NULL));
-  column = GTK_TREE_VIEW_COLUMN (
-    g_object_new (GTK_TYPE_TREE_VIEW_COLUMN,
-                  /* GtkTreeViewColumn */
-                  "title", _("Components"),
-                  NULL));
+  column = gtk_tree_view_column_new_with_attributes (_("Components"),
renderer, NULL);
+//  column = GTK_TREE_VIEW_COLUMN (
+//    g_object_new (GTK_TYPE_TREE_VIEW_COLUMN,
+//                  /* GtkTreeViewColumn */
+//                  "title", _("Components"),
+//                  NULL));
  gtk_tree_view_column_pack_start (column, renderer, TRUE);
@@ -756,2 +765,8 @@ compselect_init (Compselect *compselect)
  compselect->treeview = GTK_TREE_VIEW (treeview);
+  /* for sorting stuff */
+  gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model),
+                 1, GTK_SORT_ASCENDING);
+  gtk_tree_view_column_set_sort_column_id (column, 1);
+  gtk_tree_view_column_set_sort_indicator (column, TRUE);
+  gtk_tree_view_column_set_sort_order (column, GTK_SORT_ASCENDING);


PS: Why are you guys using such low-level GTK functions if we have
higher level ones ??

Thanks in advance...

--
Best Regards,

Felipe Balbi
[EMAIL PROTECTED]


_______________________________________________
geda-dev mailing list
[email protected]
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev

Reply via email to