[Initng-svn] r3660 - in initng-gui/initconf: . src

svn at initng.thinktux.net svn at initng.thinktux.net
Tue Apr 4 09:24:40 CEST 2006


Author: danne
Date: Tue Apr  4 09:24:38 2006
New Revision: 3660

Modified:
   initng-gui/initconf/TODO
   initng-gui/initconf/src/callbacks.c
   initng-gui/initconf/src/ngehandler.c
   initng-gui/initconf/src/serviceparser.c
Log:
Now with nice colours!!!


Modified: initng-gui/initconf/TODO
==============================================================================
--- initng-gui/initconf/TODO	(original)
+++ initng-gui/initconf/TODO	Tue Apr  4 09:24:38 2006
@@ -4,7 +4,4 @@
 * Nice way of editing service files, and also a way of creating new ones
 * Code commenting
 * Clean up stuff on quit, free memory etc.
-* Visualize service states using colours
-* Disable remove button when marked service is removed from runlevel
-* Don't let user add same service twice to runlevel
 * Don't add system/modules/* to runlevel, somehow ask user what to do

Modified: initng-gui/initconf/src/callbacks.c
==============================================================================
--- initng-gui/initconf/src/callbacks.c	(original)
+++ initng-gui/initconf/src/callbacks.c	Tue Apr  4 09:24:38 2006
@@ -146,20 +146,8 @@
     gtk_widget_set_sensitive(restart_button, FALSE);
     break;
   case IS_FAILED:
-    gtk_widget_set_sensitive(start_button, FALSE);
-    gtk_widget_set_sensitive(stop_button, FALSE);
-    gtk_widget_set_sensitive(restart_button, FALSE);
-    break;
   case IS_STARTING:
-    gtk_widget_set_sensitive(start_button, FALSE);
-    gtk_widget_set_sensitive(stop_button, FALSE);
-    gtk_widget_set_sensitive(restart_button, FALSE);
-    break;
   case IS_STOPPING:
-    gtk_widget_set_sensitive(start_button, FALSE);
-    gtk_widget_set_sensitive(stop_button, FALSE);
-    gtk_widget_set_sensitive(restart_button, FALSE);
-    break;
   case IS_WAITING:
     gtk_widget_set_sensitive(start_button, FALSE);
     gtk_widget_set_sensitive(stop_button, FALSE);
@@ -254,8 +242,14 @@
   GtkWidget *initconf_app = glade_xml_get_widget(xml, "initconf_app");
   GtkWidget *runlevel_combo = glade_xml_get_widget(xml, "runlevel_combo");
   if(gtk_check_menu_item_get_active(show_runlevel_editor)) {
+    GtkWidget *add_button = glade_xml_get_widget(xml, "add_button");
+    GtkTreeView *service_list = GTK_TREE_VIEW(glade_xml_get_widget(xml, "service_list"));
+    GtkTreeSelection *selected = gtk_tree_view_get_selection(service_list);
+    if(gtk_tree_selection_get_selected(selected, NULL, NULL))
+      gtk_widget_set_sensitive(add_button, TRUE);
     gtk_widget_show_all(runlevel_editor);
-    gtk_combo_box_set_active(GTK_COMBO_BOX(runlevel_combo), 0);
+    if(gtk_combo_box_get_active(GTK_COMBO_BOX(runlevel_combo)) < 0)
+      gtk_combo_box_set_active(GTK_COMBO_BOX(runlevel_combo), 0);
   } else {
     gint window_height;
     gtk_widget_hide_all(runlevel_editor);
@@ -326,5 +320,15 @@
 {
   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));
+
+  GtkWidget *start_button = glade_xml_get_widget(xml, "start_button");
+  GtkWidget *stop_button = glade_xml_get_widget(xml, "stop_button");
+  GtkWidget *restart_button = glade_xml_get_widget(xml, "restart_button");
+  GtkTreeSelection *selected = gtk_tree_view_get_selection(service_list);
   gtk_tree_model_filter_refilter(filtermodel);
+  if(!gtk_tree_selection_get_selected(selected, NULL, NULL)) {
+    gtk_widget_set_sensitive(start_button, FALSE);
+    gtk_widget_set_sensitive(stop_button, FALSE);
+    gtk_widget_set_sensitive(restart_button, FALSE);
+  }
 }

Modified: initng-gui/initconf/src/ngehandler.c
==============================================================================
--- initng-gui/initconf/src/ngehandler.c	(original)
+++ initng-gui/initconf/src/ngehandler.c	Tue Apr  4 09:24:38 2006
@@ -40,7 +40,26 @@
     gtk_tree_model_get(service_model, &iter, 0, &str_data, -1);
     if(!strcmp(str_data, service)) {
       gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 2, state, 3, is, -1);
-      //gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 3, is, -1);
+      switch(is) {
+      case IS_UP:
+	gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 4, "#00FF00", -1);
+	break;
+      case IS_DOWN:
+	gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 4, "#0000FF", -1);
+	break;
+      case IS_FAILED:
+	gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 4, "#FF0000", -1);
+	break;
+      case IS_STARTING:
+	gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 4, "#FFFF00", -1);
+	break;
+      case IS_STOPPING:
+	gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 4, "#00FFFF", -1);
+	break;
+      case IS_WAITING:
+	gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 4, "#FF00FF", -1);
+	break;
+      }
       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	Tue Apr  4 09:24:38 2006
@@ -216,35 +216,39 @@
 
 void populate_service_list() {
   GtkWidget *service_list;
-  GtkCellRenderer *servicerenderer;
   GtkTreeModel *servicemodel, *filtermodel;
-  GtkListStore  *servicestore = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_STRING,
-						    G_TYPE_STRING, G_TYPE_UINT);
+  GtkListStore  *servicestore = gtk_list_store_new (5, G_TYPE_STRING, G_TYPE_STRING,
+						    G_TYPE_STRING, G_TYPE_UINT,
+						    G_TYPE_STRING);
 
   service_list = glade_xml_get_widget(xml, "service_list");
-  servicerenderer = gtk_cell_renderer_text_new();
   gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(service_list),
                                               -1, "name",
-					      servicerenderer, "text", 0,
-					      NULL);
-  servicerenderer = gtk_cell_renderer_text_new();
+					      GTK_CELL_RENDERER(gtk_cell_renderer_text_new()),
+					      "text", 0,
+					      "foreground", 4, NULL);
   gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(service_list),
                                               -1, "function",
-					      servicerenderer, "text", 1,
-					      NULL);
-  servicerenderer = gtk_cell_renderer_text_new();
+					      GTK_CELL_RENDERER(gtk_cell_renderer_text_new()),
+					      "text", 1,
+					      "foreground", 4, NULL);
   gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(service_list),
                                               -1, "state",
-					      servicerenderer, "text", 2,
-					      NULL);
-  servicerenderer = gtk_cell_renderer_text_new();
+					      GTK_CELL_RENDERER(gtk_cell_renderer_text_new()),
+					      "text", 2,
+					      "foreground", 4, NULL);
   gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(service_list),
                                               -1, "state_id",
-					      servicerenderer, "text", 3,
-					      NULL);
+					      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);
-
+  gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(service_list),
+                                              -1, "color",
+					      GTK_CELL_RENDERER(gtk_cell_renderer_text_new()),
+					      "text", 4, NULL);
+  gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(service_list),
+  							    4), FALSE);
   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