diff options
author | Sarfraaz Ahmed <asarfraaz@novell.com> | 2005-07-25 15:13:47 +0800 |
---|---|---|
committer | Ahmed Sarfraaz <sarfraaz@src.gnome.org> | 2005-07-25 15:13:47 +0800 |
commit | facdb640ee5024dfd5e68ed1956279356b9b0222 (patch) | |
tree | 8e40a537ccae43a13ec440a90397a59423fe857a /plugins/exchange-operations/exchange-folder-size-display.c | |
parent | 361a4ff8955acfa250dc4a804b1ee5a8628d6260 (diff) | |
download | gsoc2013-evolution-facdb640ee5024dfd5e68ed1956279356b9b0222.tar gsoc2013-evolution-facdb640ee5024dfd5e68ed1956279356b9b0222.tar.gz gsoc2013-evolution-facdb640ee5024dfd5e68ed1956279356b9b0222.tar.bz2 gsoc2013-evolution-facdb640ee5024dfd5e68ed1956279356b9b0222.tar.lz gsoc2013-evolution-facdb640ee5024dfd5e68ed1956279356b9b0222.tar.xz gsoc2013-evolution-facdb640ee5024dfd5e68ed1956279356b9b0222.tar.zst gsoc2013-evolution-facdb640ee5024dfd5e68ed1956279356b9b0222.zip |
Takes care of displaying the folder size for mail folders. Now also adds
2005-07-25 Sarfraaz Ahmed <asarfraaz@novell.com>
* exchange-account-setup.c
(org_gnome_exchange_show_folder_size_factory): Takes care of displaying
the folder size for mail folders.
* exchange-calendar.c (e_exchange_calendar_pcalendar): Now also adds
the calendar size in the properties page
* exchange-contacts.c (e_exchange_contacts_pcontacts): Now also adds
the addressbook size in the properties page.
* exchange-folder-size-display.c (exchange_folder_size_get_val) : Fetch
the folder size of a particular exchange folder.
* exchange-folder-size-display.h : Similar
* org-gnome-exchange-operations.eplug.in : Added the hook for the mail
properties page.
svn path=/trunk/; revision=29878
Diffstat (limited to 'plugins/exchange-operations/exchange-folder-size-display.c')
-rw-r--r-- | plugins/exchange-operations/exchange-folder-size-display.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/plugins/exchange-operations/exchange-folder-size-display.c b/plugins/exchange-operations/exchange-folder-size-display.c index ebfa22cacc..b35af71075 100644 --- a/plugins/exchange-operations/exchange-folder-size-display.c +++ b/plugins/exchange-operations/exchange-folder-size-display.c @@ -40,6 +40,46 @@ enum { NUM_COLUMNS }; +static void +free_entries (gpointer name, gpointer value, gpointer data) +{ + g_free (name); + g_free (value); +} + +static gboolean +get_folder_size_func (GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer user_data) +{ + GHashTable *info = (GHashTable *) user_data; + gdouble folder_size; + char *folder_name; + + gtk_tree_model_get(model, iter, COLUMN_SIZE, &folder_size, COLUMN_NAME, &folder_name, -1); + + g_hash_table_insert (info, g_strdup (folder_name), g_strdup_printf ("%.2f", folder_size)); + return FALSE; +} + +char * +exchange_folder_size_get_val (GtkListStore *model, const char *folder_name) +{ + GHashTable *finfo = g_hash_table_new (g_str_hash, g_str_equal); + char *col_name, *folder_size, *fsize; + + gtk_tree_model_foreach (model, get_folder_size_func, finfo); + + if ((fsize = g_hash_table_lookup (finfo, folder_name)) != NULL) + folder_size = g_strdup (fsize); + else + folder_size = g_strdup ("0"); + + g_hash_table_foreach (finfo, free_entries, NULL); + + return folder_size; +} static void format_size_func (GtkTreeViewColumn *col, |