[gnome-utils] Get rid of the g_fs global and some other code cleanup
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-utils] Get rid of the g_fs global and some other code cleanup
- Date: Sun, 29 Aug 2010 17:50:05 +0000 (UTC)
commit e055a83e6226d6359a7ed3d57dfaaa12831891b6
Author: Paolo Borelli <pborelli gnome org>
Date: Sun Aug 29 19:36:43 2010 +0200
Get rid of the g_fs global and some other code cleanup
baobab/src/baobab-scan.h | 1 -
baobab/src/baobab-treeview.c | 8 ++--
baobab/src/baobab-utils.c | 64 ++++++---------------------------
baobab/src/baobab-utils.h | 4 +--
baobab/src/baobab.c | 80 ++++++++++++++++++++++++++++-------------
baobab/src/baobab.h | 22 ++++++------
6 files changed, 81 insertions(+), 98 deletions(-)
---
diff --git a/baobab/src/baobab-scan.h b/baobab/src/baobab-scan.h
index ef66626..c6400d5 100644
--- a/baobab/src/baobab-scan.h
+++ b/baobab/src/baobab-scan.h
@@ -27,5 +27,4 @@
void baobab_scan_execute (GFile *location);
-
#endif /* __BAOBAB_SCAN_H__ */
diff --git a/baobab/src/baobab-treeview.c b/baobab/src/baobab-treeview.c
index d4d50db..2a3aad3 100644
--- a/baobab/src/baobab-treeview.c
+++ b/baobab/src/baobab-treeview.c
@@ -79,15 +79,15 @@ on_tv_cur_changed (GtkTreeView *treeview, gpointer data)
static void
contents_changed (void)
{
- baobab_get_filesystem (&g_fs);
- set_label_scan (&g_fs);
- show_label ();
-
if (messageyesno (_("Rescan your home folder?"),
_("The content of your home folder has changed. Select rescan to update the disk usage details."),
GTK_MESSAGE_QUESTION, _("_Rescan"), baobab.window) == GTK_RESPONSE_OK) {
baobab_rescan_current_dir ();
}
+ else {
+ /* Just update the total */
+ baobab_update_filesystem ();
+ }
}
static gboolean
diff --git a/baobab/src/baobab-utils.c b/baobab/src/baobab-utils.c
index 2857c5c..deab561 100644
--- a/baobab/src/baobab-utils.c
+++ b/baobab/src/baobab-utils.c
@@ -39,9 +39,8 @@
#include "baobab-utils.h"
#include "callbacks.h"
-
void
-baobab_get_filesystem (baobab_fs *fs)
+baobab_get_filesystem (BaobabFS *fs)
{
size_t i;
glibtop_mountlist mountlist;
@@ -52,24 +51,21 @@ baobab_get_filesystem (baobab_fs *fs)
mountentries = glibtop_get_mountlist (&mountlist, FALSE);
for (i = 0; i < mountlist.number; ++i) {
- GFile *file;
+ GFile *file;
glibtop_fsusage fsusage;
-
- file = g_file_new_for_path(mountentries[i].mountdir);
- if (baobab_is_excluded_location (file)){
- g_object_unref(file);
- continue;
- }
+ file = g_file_new_for_path (mountentries[i].mountdir);
- glibtop_get_fsusage (&fsusage, mountentries[i].mountdir);
+ if (!baobab_is_excluded_location (file)) {
- /* v.1.1.1 changed bavail with bfree) */
- fs->total += fsusage.blocks * fsusage.block_size;
- fs->avail += fsusage.bfree * fsusage.block_size;
- fs->used += (fsusage.blocks - fsusage.bfree) * fsusage.block_size;
- g_object_unref(file);
+ glibtop_get_fsusage (&fsusage, mountentries[i].mountdir);
+ fs->total += fsusage.blocks * fsusage.block_size;
+ fs->avail += fsusage.bfree * fsusage.block_size;
+ fs->used += (fsusage.blocks - fsusage.bfree) * fsusage.block_size;
+ }
+
+ g_object_unref (file);
}
g_free (mountentries);
@@ -383,44 +379,6 @@ popupmenu_list (GtkTreePath *path, GdkEventButton *event, gboolean can_trash)
}
void
-set_label_scan (baobab_fs *fs)
-{
- gchar *markup;
- gchar *total;
- gchar *used;
- gchar *available;
-
- g_free (baobab.label_scan);
-
- total = g_format_size_for_display (fs->total);
- used = g_format_size_for_display (fs->used);
- available = g_format_size_for_display (fs->avail);
-
- /* Translators: these are labels for disk space */
- markup = g_markup_printf_escaped ("<small>%s <b>%s</b> (%s %s %s %s )</small>",
- _("Total filesystem capacity:"), total,
- _("used:"), used,
- _("available:"), available);
-
- baobab.label_scan = markup;
-
- g_free (total);
- g_free (used);
- g_free (available);
-}
-
-void
-show_label (void)
-{
- GtkWidget *label;
-
- label = GTK_WIDGET (gtk_builder_get_object (baobab.main_ui, "label1"));
-
- gtk_label_set_markup (GTK_LABEL (label),
- baobab.label_scan);
-}
-
-void
open_file_with_application (GFile *file)
{
GAppInfo *application;
diff --git a/baobab/src/baobab-utils.h b/baobab/src/baobab-utils.h
index c5af605..9b121a5 100644
--- a/baobab/src/baobab-utils.h
+++ b/baobab/src/baobab-utils.h
@@ -25,7 +25,7 @@
#include "baobab.h"
-void baobab_get_filesystem (baobab_fs *fs);
+void baobab_get_filesystem (BaobabFS *fs);
gchar* dir_select (gboolean, GtkWidget *);
void on_toggled (GtkToggleButton *, gpointer);
void stop_scan (void);
@@ -37,8 +37,6 @@ void message (const gchar *primary_msg, const gchar *secondary_msg, GtkMessageTy
gint messageyesno (const gchar *primary_msg, const gchar *secondary_msg, GtkMessageType type, gchar * ok_button, GtkWidget *parent);
gboolean baobab_check_dir (GFile *);
void popupmenu_list (GtkTreePath *path, GdkEventButton *event, gboolean can_trash);
-void set_label_scan (baobab_fs *);
-void show_label (void);
void open_file_with_application (GFile *file);
gboolean can_trash_file (GFile *file);
gboolean trash_file (GFile *file);
diff --git a/baobab/src/baobab.c b/baobab/src/baobab.c
index 2fe47d8..23ab794 100644
--- a/baobab/src/baobab.c
+++ b/baobab/src/baobab.c
@@ -162,6 +162,41 @@ check_drop_targets (gboolean scanning)
set_drop_target (baobab.treemap_chart, !scanning);
}
+static void
+update_scan_label (void)
+{
+ gchar *markup;
+ gchar *total;
+ gchar *used;
+ gchar *available;
+ GtkWidget *label;
+
+ total = g_format_size_for_display (baobab.fs.total);
+ used = g_format_size_for_display (baobab.fs.used);
+ available = g_format_size_for_display (baobab.fs.avail);
+
+ /* Translators: these are labels for disk space */
+ markup = g_markup_printf_escaped ("<small>%s <b>%s</b> (%s %s %s %s )</small>",
+ _("Total filesystem capacity:"), total,
+ _("used:"), used,
+ _("available:"), available);
+
+ g_free (total);
+ g_free (used);
+ g_free (available);
+
+ label = GTK_WIDGET (gtk_builder_get_object (baobab.main_ui, "label1"));
+
+ gtk_label_set_markup (GTK_LABEL (label), markup);
+}
+
+void
+baobab_update_filesystem (void)
+{
+ baobab_get_filesystem (&baobab.fs);
+ update_scan_label ();
+}
+
void
baobab_scan_location (GFile *file)
{
@@ -245,9 +280,7 @@ baobab_rescan_current_dir (void)
{
g_return_if_fail (baobab.current_location != NULL);
- baobab_get_filesystem (&g_fs);
- set_label_scan (&g_fs);
- show_label ();
+ baobab_update_filesystem ();
g_object_ref (baobab.current_location);
baobab_scan_location (baobab.current_location);
@@ -348,7 +381,7 @@ first_row (void)
gchar *capacity_label, *capacity_size;
gtk_tree_store_append (baobab.model, &root_iter, NULL);
- capacity_size = g_format_size_for_display (g_fs.total);
+ capacity_size = g_format_size_for_display (baobab.fs.total);
capacity_label = g_strdup (_("Total filesystem capacity"));
gtk_tree_store_set (baobab.model, &root_iter,
@@ -356,20 +389,20 @@ first_row (void)
COL_H_PARSENAME, "",
COL_H_PERC, 100.0,
COL_DIR_SIZE, capacity_size,
- COL_H_SIZE, g_fs.total,
- COL_H_ALLOCSIZE, g_fs.total,
+ COL_H_SIZE, baobab.fs.total,
+ COL_H_ALLOCSIZE, baobab.fs.total,
COL_H_ELEMENTS, -1, -1);
g_free (capacity_label);
g_free (capacity_size);
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (baobab.tree_view), FALSE);
gtk_tree_store_append (baobab.model, &firstiter, &root_iter);
- size = g_format_size_for_display (g_fs.used);
- if (g_fs.total == 0 && g_fs.used == 0) {
+ size = g_format_size_for_display (baobab.fs.used);
+ if (baobab.fs.total == 0 && baobab.fs.used == 0) {
perc = 100.0;
} else {
- g_assert (g_fs.total != 0);
- perc = ((gdouble) g_fs.used * 100) / (gdouble) g_fs.total;
+ g_assert (baobab.fs.total != 0);
+ perc = ((gdouble) baobab.fs.used * 100) / (gdouble) baobab.fs.total;
}
label = g_strdup (_("Total filesystem usage"));
@@ -378,8 +411,8 @@ first_row (void)
COL_H_PARSENAME, "",
COL_H_PERC, perc,
COL_DIR_SIZE, size,
- COL_H_SIZE, g_fs.used,
- COL_H_ALLOCSIZE, g_fs.used,
+ COL_H_SIZE, baobab.fs.used,
+ COL_H_ALLOCSIZE, baobab.fs.used,
COL_H_ELEMENTS, -1, -1);
g_free (size);
@@ -498,9 +531,7 @@ volume_changed (GVolumeMonitor *volume_monitor,
gpointer user_data)
{
/* filesystem has changed (mounted or unmounted device) */
- baobab_get_filesystem (&g_fs);
- set_label_scan (&g_fs);
- show_label ();
+ baobab_update_filesystem ();
}
static void
@@ -808,9 +839,8 @@ excluded_locations_changed (GConfClient *client,
g_slist_foreach (uris, (GFunc) g_free, NULL);
g_slist_free (uris);
- baobab_get_filesystem (&g_fs);
- set_label_scan (&g_fs);
- show_label ();
+ baobab_update_filesystem ();
+
gtk_tree_store_clear (baobab.model);
first_row ();
}
@@ -837,6 +867,9 @@ baobab_init (void)
GError *error = NULL;
gboolean enable;
+ /* FileSystem usage */
+ baobab_get_filesystem (&baobab.fs);
+
/* Load the UI */
baobab.main_ui = gtk_builder_new ();
gtk_builder_add_from_file (baobab.main_ui, BAOBAB_UI_FILE, &error);
@@ -851,7 +884,6 @@ baobab_init (void)
gtk_builder_connect_signals (baobab.main_ui, NULL);
/* Misc */
- baobab.label_scan = NULL;
baobab.CONTENTS_CHANGED_DELAYED = FALSE;
baobab.STOP_SCANNING = TRUE;
baobab.show_allocated = TRUE;
@@ -898,8 +930,6 @@ baobab_init (void)
static void
baobab_shutdown (void)
{
- g_free (baobab.label_scan);
-
if (baobab.current_location)
g_object_unref (baobab.current_location);
@@ -1222,9 +1252,7 @@ main (int argc, char *argv[])
baobab_init ();
- check_menu_sens (FALSE);
- baobab_get_filesystem (&g_fs);
- if (g_fs.total == 0) {
+ if (baobab.fs.total == 0) {
GtkWidget *dialog;
dialog = gtk_message_dialog_new (NULL,
@@ -1239,8 +1267,8 @@ main (int argc, char *argv[])
goto closing;
}
- set_label_scan (&g_fs);
- show_label ();
+ check_menu_sens (FALSE);
+ update_scan_label ();
baobab.window = GTK_WIDGET (gtk_builder_get_object (baobab.main_ui, "baobab_window"));
gtk_window_set_position (GTK_WINDOW (baobab.window),
diff --git a/baobab/src/baobab.h b/baobab/src/baobab.h
index 4c4d804..421250a 100644
--- a/baobab/src/baobab.h
+++ b/baobab/src/baobab.h
@@ -30,7 +30,6 @@
#include <gio/gio.h>
#include <gconf/gconf-client.h>
-typedef struct _baobab_application baobab_application;
typedef struct _baobab_fs baobab_fs;
struct BaobabSearchOpt;
@@ -58,9 +57,19 @@ struct _BaobabChartMenu {
GtkWidget *set_root_item;
};
+typedef struct _BaobabFS BaobabFS;
+
+struct _BaobabFS {
+ guint64 total;
+ guint64 used;
+ guint64 avail;
+};
+
typedef struct _BaobabApplication BaobabApplication;
struct _BaobabApplication {
+ BaobabFS fs;
+
GtkBuilder *main_ui;
GtkWidget *window;
GtkWidget *tree_view;
@@ -76,7 +85,6 @@ struct _BaobabApplication {
gboolean STOP_SCANNING;
gboolean CONTENTS_CHANGED_DELAYED;
GSList *excluded_locations;
- gchar *label_scan;
gboolean show_allocated;
gboolean is_local;
@@ -94,12 +102,6 @@ struct _BaobabApplication {
/* Application singleton */
BaobabApplication baobab;
-struct _baobab_fs {
- guint64 total;
- guint64 used;
- guint64 avail;
-};
-
struct chan_data {
guint64 size;
guint64 alloc_size;
@@ -110,10 +112,8 @@ struct chan_data {
gchar *parse_name;
};
-/* globals */
-baobab_fs g_fs;
-
void baobab_set_busy (gboolean busy);
+void baobab_update_filesystem (void);
void baobab_scan_location (GFile *);
void baobab_scan_home (void);
void baobab_scan_root (void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]