[Xfce4-commits] <xfce4-taskmanager:master> Hide Swap usage from statusbar when swap total equals zero

Mike Massonnet noreply at xfce.org
Sun May 23 20:58:06 CEST 2010


Updating branch refs/heads/master
         to 4dc36d296aec5e862e4887612368249f82649930 (commit)
       from d806b12544e29ee05dffe23e4a1f34d16377734c (commit)

commit 4dc36d296aec5e862e4887612368249f82649930
Author: Mike Massonnet <mmassonnet at xfce.org>
Date:   Sun May 23 19:57:25 2010 +0200

    Hide Swap usage from statusbar when swap total equals zero

 src/main.c              |    4 ++++
 src/process-statusbar.c |   10 ++++++++++
 src/process-window.c    |    8 ++++++++
 src/task-manager.c      |   13 +++++++++++++
 src/task-manager.h      |    1 +
 5 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/src/main.c b/src/main.c
index 79e0cb5..9503ec7 100644
--- a/src/main.c
+++ b/src/main.c
@@ -29,10 +29,14 @@ init_timeout (void)
 {
 	guint num_processes;
 	gfloat cpu, memory, swap;
+	guint64 swap_free, swap_total;
 
 	xtm_task_manager_get_system_info (task_manager, &num_processes, &cpu, &memory, &swap);
 	xtm_process_window_set_system_info (XTM_PROCESS_WINDOW (window), num_processes, cpu, memory, swap);
 
+	xtm_task_manager_get_swap_usage (task_manager, &swap_free, &swap_total);
+	xtm_process_window_show_swap_usage (XTM_PROCESS_WINDOW (window), (swap_total > 0));
+
 	xtm_task_manager_update_model (task_manager);
 
 	if (timeout == 0)
diff --git a/src/process-statusbar.c b/src/process-statusbar.c
index 60a64b8..836e2ad 100644
--- a/src/process-statusbar.c
+++ b/src/process-statusbar.c
@@ -25,6 +25,7 @@ enum
 	PROP_CPU = 1,
 	PROP_MEMORY,
 	PROP_SWAP,
+	PROP_SHOW_SWAP,
 	PROP_NUM_PROCESSES,
 };
 typedef struct _XtmProcessStatusbarClass XtmProcessStatusbarClass;
@@ -66,6 +67,8 @@ xtm_process_statusbar_class_init (XtmProcessStatusbarClass *klass)
 		g_param_spec_float ("memory", "Memory", "Memory usage", 0, 100, 0, G_PARAM_CONSTRUCT|G_PARAM_WRITABLE));
 	g_object_class_install_property (class, PROP_SWAP,
 		g_param_spec_float ("swap", "Swap", "Swap usage", 0, 100, 0, G_PARAM_CONSTRUCT|G_PARAM_WRITABLE));
+	g_object_class_install_property (class, PROP_SHOW_SWAP,
+		g_param_spec_boolean ("show-swap", "ShowSwap", "Show or hide swap usage", TRUE, G_PARAM_WRITABLE));
 	g_object_class_install_property (class, PROP_NUM_PROCESSES,
 		g_param_spec_uint ("num-processes", "NumProcesses", "Number of processes", 0, G_MAXUINT, 0, G_PARAM_CONSTRUCT|G_PARAM_WRITABLE));
 }
@@ -157,6 +160,13 @@ xtm_process_statusbar_set_property (GObject *object, guint property_id, const GV
 		g_free (text);
 		break;
 
+		case PROP_SHOW_SWAP:
+		if (g_value_get_boolean (value))
+			gtk_widget_show (statusbar->label_swap);
+		else
+			gtk_widget_hide (statusbar->label_swap);
+		break;
+
 		case PROP_NUM_PROCESSES:
 		statusbar->num_processes = g_value_get_uint (value);
 		text = g_strdup_printf (_("Processes: %d"), statusbar->num_processes);
diff --git a/src/process-window.c b/src/process-window.c
index 4cbe9af..da40c7e 100644
--- a/src/process-window.c
+++ b/src/process-window.c
@@ -424,3 +424,11 @@ xtm_process_window_set_system_info (XtmProcessWindow *window, guint num_processe
 	gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (window->priv->cpu_monitor), cpu / 100.0);
 }
 
+void
+xtm_process_window_show_swap_usage (XtmProcessWindow *window, gboolean show_swap_usage)
+{
+	g_return_if_fail (XTM_IS_PROCESS_WINDOW (window));
+	g_return_if_fail (GTK_IS_STATUSBAR (window->priv->statusbar));
+	g_object_set (window->priv->statusbar, "show-swap", show_swap_usage, NULL);
+}
+
diff --git a/src/task-manager.c b/src/task-manager.c
index 32fef58..9f13c48 100644
--- a/src/task-manager.c
+++ b/src/task-manager.c
@@ -269,6 +269,8 @@ xtm_task_manager_get_system_info (XtmTaskManager *manager, guint *num_processes,
 {
 	guint64 memory_used, swap_used;
 
+	g_return_if_fail (XTM_IS_TASK_MANAGER (manager));
+
 	/* Set number of processes */
 	*num_processes = manager->tasks->len;
 
@@ -287,9 +289,18 @@ xtm_task_manager_get_system_info (XtmTaskManager *manager, guint *num_processes,
 	*cpu = manager->cpu_user + manager->cpu_system;
 }
 
+void
+xtm_task_manager_get_swap_usage (XtmTaskManager *manager, guint64 *swap_free, guint64 *swap_total)
+{
+	g_return_if_fail (XTM_IS_TASK_MANAGER (manager));
+	*swap_free = manager->swap_free;
+	*swap_total = manager->swap_total;
+}
+
 const GArray *
 xtm_task_manager_get_task_list (XtmTaskManager *manager)
 {
+	g_return_val_if_fail (XTM_IS_TASK_MANAGER (manager), NULL);
 	xtm_task_manager_update_model (manager);
 	return manager->tasks;
 }
@@ -300,6 +311,8 @@ xtm_task_manager_update_model (XtmTaskManager *manager)
 	GArray *array;
 	guint i;
 
+	g_return_if_fail (XTM_IS_TASK_MANAGER (manager));
+
 	/* Retrieve initial task list and return */
 	if (manager->tasks->len == 0)
 	{
diff --git a/src/task-manager.h b/src/task-manager.h
index df6e939..ab386a0 100644
--- a/src/task-manager.h
+++ b/src/task-manager.h
@@ -86,6 +86,7 @@ XtmTaskManager *	xtm_task_manager_new				(GtkTreeModel *model);
 const gchar *		xtm_task_manager_get_username			(XtmTaskManager *manager);
 const gchar *		xtm_task_manager_get_hostname			(XtmTaskManager *manager);
 void			xtm_task_manager_get_system_info		(XtmTaskManager *manager, guint *num_processes, gfloat *cpu, gfloat *memory, gfloat *swap);
+void			xtm_task_manager_get_swap_usage			(XtmTaskManager *manager, guint64 *swap_free, guint64 *swap_total);
 const GArray *		xtm_task_manager_get_task_list			(XtmTaskManager *manager);
 void			xtm_task_manager_update_model			(XtmTaskManager *manager);
 



More information about the Xfce4-commits mailing list