gnome-system-monitor r2367 - trunk/src



Author: bdejean
Date: Tue Mar 18 21:37:01 2008
New Revision: 2367
URL: http://svn.gnome.org/viewvc/gnome-system-monitor?rev=2367&view=rev

Log:
More glibmm for option parsing.


Added:
   trunk/src/argv.cpp
   trunk/src/argv.h
Modified:
   trunk/src/Makefile.am
   trunk/src/procman.cpp

Modified: trunk/src/Makefile.am
==============================================================================
--- trunk/src/Makefile.am	(original)
+++ trunk/src/Makefile.am	Tue Mar 18 21:37:01 2008
@@ -9,6 +9,7 @@
 bin_PROGRAMS = gnome-system-monitor
 
 gnome_system_monitor_SOURCES = \
+	argv.h argv.cpp \
 	procman.cpp  procman.h \
 	interface.cpp interface.h \
 	callbacks.cpp callbacks.h \

Added: trunk/src/argv.cpp
==============================================================================
--- (empty file)
+++ trunk/src/argv.cpp	Tue Mar 18 21:37:01 2008
@@ -0,0 +1,21 @@
+#include <config.h>
+
+#include <glibmm.h>
+#include <glib/gi18n.h>
+
+#include "argv.h"
+
+namespace procman
+{
+  OptionGroup::OptionGroup()
+    : Glib::OptionGroup("", ""),
+      show_system_tab(false)
+  {
+    Glib::OptionEntry sys_tab;
+    sys_tab.set_long_name("show-system-tab");
+    sys_tab.set_short_name('s');
+    sys_tab.set_description(_("Show the System tab"));
+    this->add_entry(sys_tab, this->show_system_tab);
+  }
+}
+

Added: trunk/src/argv.h
==============================================================================
--- (empty file)
+++ trunk/src/argv.h	Tue Mar 18 21:37:01 2008
@@ -0,0 +1,18 @@
+#ifndef H_PROCMAN_ARGV_1205873424
+#define H_PROCMAN_ARGV_1205873424
+
+#include <glibmm.h>
+
+namespace procman
+{
+  class OptionGroup
+    : public Glib::OptionGroup
+  {
+  public:
+    OptionGroup();
+
+    bool show_system_tab;
+  };
+}
+
+#endif // H_PROCMAN_ARGV_1205873424

Modified: trunk/src/procman.cpp
==============================================================================
--- trunk/src/procman.cpp	(original)
+++ trunk/src/procman.cpp	Tue Mar 18 21:37:01 2008
@@ -42,7 +42,7 @@
 #include "smooth_refresh.h"
 #include "util.h"
 #include "gconf-keys.h"
-
+#include "argv.h"
 
 
 ProcData::ProcData()
@@ -651,27 +651,23 @@
 	ProcData *procdata;
 	BaconMessageConnection *conn;
 
-	/* Parse commandline arguments */
-	GError *error = NULL;
-	GOptionContext *context;
-	static gboolean show_system_tab = FALSE;
-	static GOptionEntry entries[] =
-	{
-		{ "show-system-tab", 's', 0, G_OPTION_ARG_NONE, &show_system_tab, "Show the System tab", NULL },
-		{ NULL }
-	};
-
 	bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 	textdomain (GETTEXT_PACKAGE);
 
 	startup_timestamp = get_startup_timestamp();
 
-	context = g_option_context_new(_("- a simple process and system monitor."));
-	g_option_context_set_ignore_unknown_options(context, TRUE);
-	g_option_context_add_main_entries(context, entries, GETTEXT_PACKAGE);
-	g_option_context_parse(context, &argc, &argv, &error);
-	g_option_context_free(context);
+	Glib::OptionContext context;
+	context.set_summary(_("A simple process and system monitor."));
+	context.set_ignore_unknown_options(true);
+	procman::OptionGroup option_group;
+	context.set_main_group(option_group);
+
+	try {
+		context.parse(argc, argv);
+	} catch (const Glib::Error& ex) {
+		g_error("Arguments parse error : %s", ex.what().c_str());
+	}
 
 	Gtk::Main kit(&argc, &argv);
 	procman_debug("post gtk_init");
@@ -689,7 +685,7 @@
 
 		timestamp = g_strdup_printf ("%" G_GUINT32_FORMAT, startup_timestamp);
 
-		if (show_system_tab)
+		if (option_group.show_system_tab)
 			bacon_message_connection_send(conn, procman::SHOW_SYSTEM_TAB_CMD.c_str());
 
 		bacon_message_connection_send (conn, timestamp);
@@ -728,7 +724,7 @@
 
 	g_assert(procdata->app);
 			
-	if (show_system_tab) {
+	if (option_group.show_system_tab) {
 		procman_debug("Starting with PROCMAN_TAB_SYSINFO by commandline request");
 		gtk_notebook_set_current_page(GTK_NOTEBOOK(procdata->notebook), PROCMAN_TAB_SYSINFO);
 		cb_change_current_page (GTK_NOTEBOOK(procdata->notebook), PROCMAN_TAB_SYSINFO, procdata);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]