[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