Hide Swap usage from statusbar when swap total equals zero

This commit is contained in:
Mike Massonnet
2010-05-23 19:57:25 +02:00
parent d806b12544
commit 4dc36d296a
5 changed files with 36 additions and 0 deletions

View File

@@ -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)

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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)
{

View File

@@ -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);