[gnome-commander] Added gnome_cmd_con_get_free_space() for retrieving volume's free space



commit 18101ef61d42383001f12b49285b1aa4593f31de
Author: Piotr Eljasiak <epiotr src gnome org>
Date:   Sun Oct 4 19:25:40 2009 +0200

    Added gnome_cmd_con_get_free_space() for retrieving volume's free space

 src/gnome-cmd-con.h            |   19 +++++++++++++++++++
 src/gnome-cmd-dir.h            |   15 +++++++++++++++
 src/gnome-cmd-file-selector.cc |   25 ++-----------------------
 3 files changed, 36 insertions(+), 23 deletions(-)
---
diff --git a/src/gnome-cmd-con.h b/src/gnome-cmd-con.h
index fe1310f..da86292 100644
--- a/src/gnome-cmd-con.h
+++ b/src/gnome-cmd-con.h
@@ -332,6 +332,25 @@ inline const gchar *gnome_cmd_con_get_icon_name (GnomeCmdCon *con)
     return gnome_cmd_con_get_icon_name (con->method);
 }
 
+inline gchar *gnome_cmd_con_get_free_space (GnomeCmdCon *con, GnomeCmdDir *dir, const gchar *fmt)
+{
+    g_return_val_if_fail (GNOME_CMD_IS_CON (con), NULL);
+    g_return_val_if_fail (GNOME_CMD_IS_DIR (dir), NULL);
+
+    if (!gnome_cmd_con_can_show_free_space (con))
+        return NULL;
+
+    gchar *free_space = gnome_cmd_dir_get_free_space (dir);
+
+    if (!free_space)
+        return _("Unknown disk usage");
+
+    gchar *retval = g_strdup_printf (fmt, free_space);
+    g_free (free_space);
+
+    return retval;
+}
+
 std::string &__gnome_cmd_con_make_uri (std::string &s, const gchar *method, gboolean use_auth, std::string &server, std::string &port, std::string &folder, std::string &user, std::string &password);
 
 inline std::string &gnome_cmd_con_make_custom_uri (std::string &s, const std::string &uri)
diff --git a/src/gnome-cmd-dir.h b/src/gnome-cmd-dir.h
index 4d02aa2..b368799 100644
--- a/src/gnome-cmd-dir.h
+++ b/src/gnome-cmd-dir.h
@@ -149,4 +149,19 @@ void gnome_cmd_dir_cancel_monitoring (GnomeCmdDir *dir);
 gboolean gnome_cmd_dir_is_local (GnomeCmdDir *dir);
 void gnome_cmd_dir_set_content_changed (GnomeCmdDir *dir);
 
+inline gchar *gnome_cmd_dir_get_free_space (GnomeCmdDir *dir)
+{
+    g_return_val_if_fail (GNOME_CMD_IS_DIR (dir), NULL);
+
+    GnomeVFSFileSize free_space;
+    GnomeVFSURI *uri = gnome_cmd_file_get_uri (GNOME_CMD_FILE (dir));
+    GnomeVFSResult res = gnome_vfs_get_volume_free_space (uri, &free_space);
+    gnome_vfs_uri_unref (uri);
+
+    if (res!=GNOME_VFS_OK)
+        return NULL;
+
+    return gnome_vfs_format_file_size_for_display (free_space);
+}
+
 #endif // __GNOME_CMD_DIR_H__
diff --git a/src/gnome-cmd-file-selector.cc b/src/gnome-cmd-file-selector.cc
index 4da27fc..992e204 100644
--- a/src/gnome-cmd-file-selector.cc
+++ b/src/gnome-cmd-file-selector.cc
@@ -552,29 +552,8 @@ static void update_vol_label (GnomeCmdFileSelector *fs)
     g_return_if_fail (GNOME_CMD_IS_FILE_SELECTOR (fs));
     g_return_if_fail (GNOME_CMD_IS_CON (fs->get_connection()));
 
-    gchar *s;
-
-    if (gnome_cmd_con_can_show_free_space (fs->get_connection()))
-    {
-        GnomeVFSFileSize free_space;
-        GnomeVFSURI *uri = gnome_cmd_file_get_uri (GNOME_CMD_FILE (fs->get_directory()));
-        GnomeVFSResult res = gnome_vfs_get_volume_free_space (uri, &free_space);
-        gnome_vfs_uri_unref (uri);
-
-        if (res == GNOME_VFS_OK)
-        {
-            gchar *sfree = gnome_vfs_format_file_size_for_display (free_space);
-            s = g_strdup_printf (_("%s free"), sfree);
-            g_free (sfree);
-        }
-        else
-            s = g_strdup (_("Unknown disk usage"));
-    }
-    else
-        s = g_strdup ("");
-
-    gtk_label_set_text (GTK_LABEL (fs->vol_label), s);
-
+    gchar *s = gnome_cmd_con_get_free_space (fs->get_connection(), fs->get_directory(), _("%s free"));
+    gtk_label_set_text (GTK_LABEL (fs->vol_label), s ? s : "");
     g_free (s);
 }
 



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