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

svn at initng.thinktux.net svn at initng.thinktux.net
Wed Apr 5 15:02:24 CEST 2006


Author: danne
Date: Wed Apr  5 15:02:23 2006
New Revision: 3689

Modified:
   initng-gui/initconf/src/initconf.glade
   initng-gui/initconf/src/ngehandler.c
   initng-gui/initconf/src/serviceparser.c
Log:
Colorize background instead of text to increase readability. Also started working on making the service list sortable.


Modified: initng-gui/initconf/src/initconf.glade
==============================================================================
--- initng-gui/initconf/src/initconf.glade	(original)
+++ initng-gui/initconf/src/initconf.glade	Wed Apr  5 15:02:23 2006
@@ -452,7 +452,7 @@
 		  <property name="visible">True</property>
 		  <property name="can_focus">True</property>
 		  <property name="headers_visible">True</property>
-		  <property name="rules_hint">True</property>
+		  <property name="rules_hint">False</property>
 		  <property name="reorderable">False</property>
 		  <property name="enable_search">True</property>
 		  <property name="fixed_height_mode">False</property>

Modified: initng-gui/initconf/src/ngehandler.c
==============================================================================
--- initng-gui/initconf/src/ngehandler.c	(original)
+++ initng-gui/initconf/src/ngehandler.c	Wed Apr  5 15:02:23 2006
@@ -61,22 +61,22 @@
   gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 2, state, -1);
   switch(is) {
   case IS_UP:
-    gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 3, "#00FF00", -1);
+    gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 3, "#AAFFAA", -1);
     break;
   case IS_DOWN:
-    gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 3, "#0000FF", -1);
+    gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 3, "#AAAAFF", -1);
     break;
   case IS_FAILED:
-    gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 3, "#FF0000", -1);
+    gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 3, "#FFAAAA", -1);
     break;
   case IS_STARTING:
-    gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 3, "#FFFF00", -1);
+    gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 3, "#FFFFAA", -1);
     break;
   case IS_STOPPING:
-    gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 3, "#00FFFF", -1);
+    gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 3, "#AAFFFF", -1);
     break;
   case IS_WAITING:
-    gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 3, "#FF00FF", -1);
+    gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 3, "#FFAAFF", -1);
     break;
   }
   g_free(str_data);

Modified: initng-gui/initconf/src/serviceparser.c
==============================================================================
--- initng-gui/initconf/src/serviceparser.c	(original)
+++ initng-gui/initconf/src/serviceparser.c	Wed Apr  5 15:02:23 2006
@@ -149,7 +149,6 @@
         serviceinfo->path = fullpath;
         serviceinfo->startline = NULL;
       } else if(!fnmatch("*.virtual", namelist[n]->d_name, 0)) {
-	fprintf(stderr, "Found virtual %s\n", namelist[n]->d_name);
         serviceinfo = malloc(sizeof(struct s_info));
         namelist[n]->d_name[strlen(namelist[n]->d_name)-8] = 0;
         gtk_list_store_prepend (store, &iter);
@@ -222,35 +221,61 @@
   g_free(servicename);
 }
 
+gint service_sorter(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data) {
+  gint sortcol = GPOINTER_TO_INT(user_data);
+  gint ret = 0;
+  gchar *name1, *name2;
+
+  gtk_tree_model_get(model, a, sortcol, &name1, -1);
+  gtk_tree_model_get(model, b, sortcol, &name2, -1);
+
+  ret = g_utf8_collate(name1,name2);
+
+  g_free(name1);
+  g_free(name2);
+
+  return ret;
+}
+
 void populate_service_list() {
-  GtkWidget *service_list;
+  GtkWidget *service_list = glade_xml_get_widget(xml, "service_list");
   GtkTreeModel *servicemodel, *filtermodel;
+  GtkTreeViewColumn *column;
   GtkListStore  *servicestore = gtk_list_store_new (5, G_TYPE_STRING, G_TYPE_STRING,
 						    G_TYPE_STRING, G_TYPE_STRING,
 						    G_TYPE_POINTER);
 
-  service_list = glade_xml_get_widget(xml, "service_list");
-  gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(service_list),
-                                              -1, "name",
-					      GTK_CELL_RENDERER(gtk_cell_renderer_text_new()),
-					      "text", 0,
-					      "foreground", 3, NULL);
-  gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(service_list),
-                                              -1, "function",
-					      GTK_CELL_RENDERER(gtk_cell_renderer_text_new()),
-					      "text", 1,
-					      "foreground", 3, NULL);
-  gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(service_list),
-                                              -1, "state",
-					      GTK_CELL_RENDERER(gtk_cell_renderer_text_new()),
-					      "text", 2,
-					      "foreground", 3, NULL);
-  gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(service_list),
-                                              -1, "color",
-					      GTK_CELL_RENDERER(gtk_cell_renderer_text_new()),
-					      "text", 3, NULL);
-  gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(service_list),
-  							    3), FALSE);
+  //Column containing names
+  column = gtk_tree_view_column_new_with_attributes("name",
+						    GTK_CELL_RENDERER(gtk_cell_renderer_text_new()),
+						    "text", 0, "background", 3, NULL);
+  gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(servicestore), 0, service_sorter, 
+				  GINT_TO_POINTER(0), NULL);
+  gtk_tree_view_column_set_sort_column_id(column, 0);
+  gtk_tree_view_insert_column(GTK_TREE_VIEW(service_list), column, -1);
+  //Column containing function (runlevel/service/daemon/virtual)
+  column = gtk_tree_view_column_new_with_attributes("function",
+						    GTK_CELL_RENDERER(gtk_cell_renderer_text_new()),
+						    "text", 1, "background", 3, NULL);
+  gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(servicestore), 1, service_sorter, 
+				  GINT_TO_POINTER(1), NULL);
+  gtk_tree_view_column_set_sort_column_id(column, 1);
+  gtk_tree_view_insert_column(GTK_TREE_VIEW(service_list), column, -1);
+  //Column containing state
+  column = gtk_tree_view_column_new_with_attributes("state",
+						    GTK_CELL_RENDERER(gtk_cell_renderer_text_new()),
+						    "text", 2, "background", 3, NULL);
+  gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(servicestore), 2, service_sorter, 
+				  GINT_TO_POINTER(2), NULL);
+  gtk_tree_view_column_set_sort_column_id(column, 2);
+  gtk_tree_view_insert_column(GTK_TREE_VIEW(service_list), column, -1);
+  //Hidden column containing color information
+  column = gtk_tree_view_column_new_with_attributes("color",
+						    GTK_CELL_RENDERER(gtk_cell_renderer_text_new()),
+						    "text", 3,NULL);
+  gtk_tree_view_column_set_visible(column, FALSE);
+  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);


More information about the Initng-svn mailing list