[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