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

svn at initng.thinktux.net svn at initng.thinktux.net
Mon Apr 3 12:28:05 CEST 2006


Author: danne
Date: Mon Apr  3 12:28:04 2006
New Revision: 3643

Modified:
   initng-gui/initconf/TODO
   initng-gui/initconf/src/callbacks.c
   initng-gui/initconf/src/initconf.glade
   initng-gui/initconf/src/main.c
   initng-gui/initconf/src/ngehandler.c
   initng-gui/initconf/src/serviceparser.c
Log:
Grey out start/stop/restart buttons as appropriate.


Modified: initng-gui/initconf/TODO
==============================================================================
--- initng-gui/initconf/TODO	(original)
+++ initng-gui/initconf/TODO	Mon Apr  3 12:28:04 2006
@@ -5,4 +5,3 @@
 * Code commenting
 * Clean up stuff on quit, free memory etc.
 * Visualize service states using colours
-* Grey out start, stop, restart if not applicable

Modified: initng-gui/initconf/src/callbacks.c
==============================================================================
--- initng-gui/initconf/src/callbacks.c	(original)
+++ initng-gui/initconf/src/callbacks.c	Mon Apr  3 12:28:04 2006
@@ -119,14 +119,62 @@
 
 void on_service_list_cursor_changed (GtkTreeView *treeview, gpointer user_data)
 {
-  GtkWidget *add_button, *runlevel_combo;
+  GtkWidget *runlevel_combo;
   GtkTreeIter iter;
 
-  add_button = glade_xml_get_widget(xml, "add_button");
   runlevel_combo = glade_xml_get_widget(xml, "runlevel_combo");
 
-  if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(runlevel_combo), &iter))
+  if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(runlevel_combo), &iter)) {
+    GtkWidget *add_button = glade_xml_get_widget(xml, "add_button");
     gtk_widget_set_sensitive(add_button, TRUE);
+  }
+
+  gint status_id;
+  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(GTK_TREE_VIEW(treeview));
+  GtkTreeModel *model;
+
+  gtk_tree_selection_get_selected(selected, &model, &iter);
+  gtk_tree_model_get(model, &iter, 3, &status_id, -1);
+  switch(status_id) {
+  case IS_UP:
+    gtk_widget_set_sensitive(start_button, FALSE);
+    gtk_widget_set_sensitive(stop_button, TRUE);
+    gtk_widget_set_sensitive(restart_button, TRUE);
+    break;
+  case IS_DOWN:
+    gtk_widget_set_sensitive(start_button, TRUE);
+    gtk_widget_set_sensitive(stop_button, FALSE);
+    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);
+    gtk_widget_set_sensitive(restart_button, FALSE);
+    break;
+  default:
+    gtk_widget_set_sensitive(start_button, TRUE);
+    gtk_widget_set_sensitive(stop_button, FALSE);
+    gtk_widget_set_sensitive(restart_button, FALSE);
+    break;
+  }
 }
 
 void on_runlevel_list_cursor_changed (GtkTreeView *treeview, gpointer user_data)

Modified: initng-gui/initconf/src/initconf.glade
==============================================================================
--- initng-gui/initconf/src/initconf.glade	(original)
+++ initng-gui/initconf/src/initconf.glade	Mon Apr  3 12:28:04 2006
@@ -208,15 +208,17 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkToolButton" id="stop_button">
+		<widget class="GtkToolButton" id="start_button">
 		  <property name="border_width">3</property>
 		  <property name="visible">True</property>
-		  <property name="tooltip" translatable="yes">Stop marked runlevel</property>
-		  <property name="stock_id">gtk-stop</property>
+		  <property name="tooltip" translatable="yes">Start marked runlevel</property>
+		  <property name="label" translatable="yes">Start</property>
+		  <property name="use_underline">True</property>
+		  <property name="stock_id">gtk-media-play</property>
 		  <property name="visible_horizontal">True</property>
 		  <property name="visible_vertical">True</property>
 		  <property name="is_important">False</property>
-		  <signal name="clicked" handler="on_stop_button_clicked" last_modification_time="Wed, 29 Mar 2006 06:55:21 GMT"/>
+		  <signal name="clicked" handler="on_start_button_clicked" last_modification_time="Wed, 29 Mar 2006 06:55:31 GMT"/>
 		</widget>
 		<packing>
 		  <property name="expand">False</property>
@@ -225,17 +227,15 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkToolButton" id="start_button">
+		<widget class="GtkToolButton" id="stop_button">
 		  <property name="border_width">3</property>
 		  <property name="visible">True</property>
-		  <property name="tooltip" translatable="yes">Start marked runlevel</property>
-		  <property name="label" translatable="yes">Start</property>
-		  <property name="use_underline">True</property>
-		  <property name="stock_id">gtk-media-play</property>
+		  <property name="tooltip" translatable="yes">Stop marked runlevel</property>
+		  <property name="stock_id">gtk-stop</property>
 		  <property name="visible_horizontal">True</property>
 		  <property name="visible_vertical">True</property>
 		  <property name="is_important">False</property>
-		  <signal name="clicked" handler="on_start_button_clicked" last_modification_time="Wed, 29 Mar 2006 06:55:31 GMT"/>
+		  <signal name="clicked" handler="on_stop_button_clicked" last_modification_time="Wed, 29 Mar 2006 06:55:21 GMT"/>
 		</widget>
 		<packing>
 		  <property name="expand">False</property>

Modified: initng-gui/initconf/src/main.c
==============================================================================
--- initng-gui/initconf/src/main.c	(original)
+++ initng-gui/initconf/src/main.c	Mon Apr  3 12:28:04 2006
@@ -41,6 +41,7 @@
   GtkWidget *save_button, *save1, *preferences1;
   GtkWidget *add_button, *remove_button;
   GtkWidget *runlevel_filter_combo;
+  GtkWidget *start_button, *stop_button, *restart_button;
   
   /*
    * note:
@@ -55,6 +56,9 @@
   add_button = glade_xml_get_widget(xml, "add_button");
   remove_button = glade_xml_get_widget(xml, "remove_button");
   runlevel_filter_combo = glade_xml_get_widget(xml, "runlevel_filter_combo");
+  start_button = glade_xml_get_widget(xml, "start_button");
+  stop_button = glade_xml_get_widget(xml, "stop_button");
+  restart_button = glade_xml_get_widget(xml, "restart_button");
 
   /*
    * note:
@@ -65,6 +69,9 @@
   gtk_widget_set_sensitive(preferences1, FALSE);
   gtk_widget_set_sensitive(add_button, FALSE);
   gtk_widget_set_sensitive(remove_button, FALSE);
+  gtk_widget_set_sensitive(start_button, FALSE);
+  gtk_widget_set_sensitive(stop_button, FALSE);
+  gtk_widget_set_sensitive(restart_button, FALSE);
 
   gtk_combo_box_set_active(GTK_COMBO_BOX(runlevel_filter_combo), 1);
 }

Modified: initng-gui/initconf/src/ngehandler.c
==============================================================================
--- initng-gui/initconf/src/ngehandler.c	(original)
+++ initng-gui/initconf/src/ngehandler.c	Mon Apr  3 12:28:04 2006
@@ -31,19 +31,20 @@
   GtkWidget *initconf_app = GTK_WIDGET(e->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));
-  GtkListStore *service_model = GTK_LIST_STORE(gtk_tree_model_filter_get_model(filtermodel));
+  GtkTreeModel *service_model = gtk_tree_model_filter_get_model(filtermodel);
   GtkTreeIter iter;
 
-  gboolean valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(service_model), &iter);
+  gboolean valid = gtk_tree_model_get_iter_first(service_model, &iter);
   while(valid) {
     gchar *str_data;
-    gtk_tree_model_get(GTK_TREE_MODEL(service_model), &iter, 0, &str_data, -1);
+    gtk_tree_model_get(service_model, &iter, 0, &str_data, -1);
     if(!strcmp(str_data, service)) {
-      gtk_list_store_set(service_model, &iter, 2, state, -1);
+      gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 2, state, -1);
+      gtk_list_store_set(GTK_LIST_STORE(service_model), &iter, 3, is, -1);
       break;
     }
     g_free(str_data);
-    valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(service_model), &iter);
+    valid = gtk_tree_model_iter_next(service_model, &iter);
 
     if(!valid)
       fprintf(stderr, "Service %s not found in service list!\n", service);
@@ -52,7 +53,6 @@
   gtk_tree_model_filter_refilter(filtermodel);
   gdk_flush();
   gdk_threads_leave();
-
 }
 
 void *nge_thread(void *args) {

Modified: initng-gui/initconf/src/serviceparser.c
==============================================================================
--- initng-gui/initconf/src/serviceparser.c	(original)
+++ initng-gui/initconf/src/serviceparser.c	Mon Apr  3 12:28:04 2006
@@ -218,7 +218,8 @@
   GtkWidget *service_list;
   GtkCellRenderer *servicerenderer;
   GtkTreeModel *servicemodel, *filtermodel;
-  GtkListStore  *servicestore = gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+  GtkListStore  *servicestore = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_STRING,
+						    G_TYPE_STRING, G_TYPE_UINT);
 
   service_list = glade_xml_get_widget(xml, "service_list");
   servicerenderer = gtk_cell_renderer_text_new();
@@ -236,6 +237,14 @@
                                               -1, "state",
 					      servicerenderer, "text", 2,
 					      NULL);
+  servicerenderer = gtk_cell_renderer_text_new();
+  gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(service_list),
+                                              -1, "state_id",
+					      servicerenderer, "text", 3,
+					      NULL);
+  //  gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(service_list),
+  //							    3), 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