[Initng-svn] r3701 - initng-gui/initconf/src

svn at initng.thinktux.net svn at initng.thinktux.net
Thu Apr 6 08:40:48 CEST 2006


Author: danne
Date: Thu Apr  6 08:40:47 2006
New Revision: 3701

Modified:
   initng-gui/initconf/src/callbacks.c
   initng-gui/initconf/src/ngehandler.c
   initng-gui/initconf/src/serviceparser.c
Log:
Got sorting of servicelist working.


Modified: initng-gui/initconf/src/callbacks.c
==============================================================================
--- initng-gui/initconf/src/callbacks.c	(original)
+++ initng-gui/initconf/src/callbacks.c	Thu Apr  6 08:40:47 2006
@@ -364,7 +364,8 @@
 void on_runlevel_filter_combo_changed (GtkComboBox *combobox, gpointer user_data)
 {
   GtkTreeView *service_list = GTK_TREE_VIEW(glade_xml_get_widget(xml, "service_list"));
-  GtkTreeModelFilter *filtermodel = GTK_TREE_MODEL_FILTER(gtk_tree_view_get_model(service_list));
+  GtkTreeModelSort *sortmodel = GTK_TREE_MODEL_SORT(gtk_tree_view_get_model(service_list));
+  GtkTreeModelFilter *filtermodel = GTK_TREE_MODEL_FILTER(gtk_tree_model_sort_get_model(sortmodel));
 
   GtkWidget *start_button = glade_xml_get_widget(xml, "start_button");
   GtkWidget *stop_button = glade_xml_get_widget(xml, "stop_button");

Modified: initng-gui/initconf/src/ngehandler.c
==============================================================================
--- initng-gui/initconf/src/ngehandler.c	(original)
+++ initng-gui/initconf/src/ngehandler.c	Thu Apr  6 08:40:47 2006
@@ -30,7 +30,8 @@
   gdk_threads_enter();
 
   GtkTreeView *service_list = GTK_TREE_VIEW(glade_xml_get_widget(xml, "service_list"));
-  GtkTreeModelFilter *filtermodel = GTK_TREE_MODEL_FILTER(gtk_tree_view_get_model(service_list));
+  GtkTreeModelSort *sortmodel = GTK_TREE_MODEL_SORT(gtk_tree_view_get_model(service_list));
+  GtkTreeModelFilter *filtermodel = GTK_TREE_MODEL_FILTER(gtk_tree_model_sort_get_model(sortmodel));
   GtkTreeModel *service_model = gtk_tree_model_filter_get_model(filtermodel);
   GtkTreeIter iter;
   gchar *str_data;

Modified: initng-gui/initconf/src/serviceparser.c
==============================================================================
--- initng-gui/initconf/src/serviceparser.c	(original)
+++ initng-gui/initconf/src/serviceparser.c	Thu Apr  6 08:40:47 2006
@@ -226,6 +226,8 @@
   gint ret = 0;
   gchar *name1, *name2;
 
+  fprintf(stderr, "service_sorter check 1\n");
+
   gtk_tree_model_get(model, a, sortcol, &name1, -1);
   gtk_tree_model_get(model, b, sortcol, &name2, -1);
 
@@ -239,7 +241,7 @@
 
 void populate_service_list() {
   GtkWidget *service_list = glade_xml_get_widget(xml, "service_list");
-  GtkTreeModel *servicemodel, *filtermodel;
+  GtkTreeModel *filtermodel, *sortmodel;
   GtkTreeViewColumn *column;
   GtkListStore  *servicestore = gtk_list_store_new (5, G_TYPE_STRING, G_TYPE_STRING,
 						    G_TYPE_STRING, G_TYPE_STRING,
@@ -277,12 +279,10 @@
   gtk_tree_view_insert_column(GTK_TREE_VIEW(service_list), column, -1);
 
   recursive_scan(BASEDIR, servicestore);
-  servicemodel = GTK_TREE_MODEL(servicestore);
-  filtermodel = gtk_tree_model_filter_new(servicemodel, NULL);
+  //service_list -> sortmodel -> filtermodel -> servicestore
+  filtermodel = gtk_tree_model_filter_new(GTK_TREE_MODEL(servicestore), NULL);
   gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(filtermodel),
-					 (GtkTreeModelFilterVisibleFunc)service_filter,
-					 NULL, NULL);
-  gtk_tree_view_set_model(GTK_TREE_VIEW(service_list), filtermodel);
-  
-  g_object_unref(servicemodel);
+					 service_filter, NULL, NULL);
+  sortmodel = gtk_tree_model_sort_new_with_model(filtermodel);
+  gtk_tree_view_set_model(GTK_TREE_VIEW(service_list), sortmodel);
 }


More information about the Initng-svn mailing list