[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