Changeset 2804

Show
Ignore:
Timestamp:
09/24/07 16:47:18
Author:
pvanhoof
Message:

2007-09-24 Philip Van Hoof <pvanhoof@gnome.org>

        • Local-size updates after sync, sync_async and add_msg and

add_msg_async

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r2803 r2804  
     12007-09-24  Philip Van Hoof  <pvanhoof@gnome.org> 
     2 
     3        * Local-size updates after sync, sync_async and add_msg and 
     4        add_msg_async 
     5 
    162007-09-20  Dirk-Jan C. BInnema <dirk-jan.binnema@nokia.com> 
    27 
  • trunk/libtinymail-camel/camel-lite/camel/camel-store.c

    r2738 r2804  
    8888static void get_folder_status_impl (CamelStore *store, const char *folder_name, int *unseen, int *messages, int *uidnext); 
    8989 
     90static int get_local_size (CamelStore *store, const gchar *folder_name) 
     91{ 
     92        return 0; 
     93} 
     94 
    9095static void 
    9196camel_store_class_init (CamelStoreClass *camel_store_class) 
     
    97102         
    98103        /* virtual method definition */ 
     104        camel_store_class->get_local_size = get_local_size; 
    99105        camel_store_class->hash_folder_name = g_str_hash; 
    100106        camel_store_class->compare_folder_name = g_str_equal; 
     
    183189} 
    184190 
     191int 
     192camel_store_get_local_size (CamelStore *store, const gchar *folder_name) 
     193{ 
     194        return CS_CLASS (store)->get_local_size (store, folder_name); 
     195} 
    185196 
    186197static void  
    187198delete_cache (CamelStore *store) 
    188199{ 
     200        return; 
    189201} 
    190202 
  • trunk/libtinymail-camel/camel-lite/camel/camel-store.h

    r2106 r2804  
    192192                                                     int *unseen, int *messages,  
    193193                                                     int *uidnext); 
    194         void             (*delete_cache)              (CamelStore *store); 
     194        void             (*delete_cache)            (CamelStore *store); 
     195 
     196        int              (*get_local_size)          (CamelStore *store, const gchar *folder_name); 
    195197 
    196198} CamelStoreClass; 
     
    270272 
    271273void             camel_store_delete_cache            (CamelStore *store); 
     274int              camel_store_get_local_size          (CamelStore *store, const gchar *folder_name); 
     275 
    272276 
    273277 
  • trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-store.c

    r2752 r2804  
    145145static void imap_get_folder_status (CamelStore *store, const char *folder_name, int *unseen, int *messages, int *uidnext); 
    146146 
     147static int  
     148imapstore_get_local_size (CamelStore *store, const gchar *folder_name) 
     149{ 
     150        CamelImapStore *imap_store = (CamelImapStore *) store;  
     151        gchar *storage_path = g_strdup_printf ("%s/folders", imap_store->storage_path); 
     152        gchar *folder_dir = imap_path_to_physical (storage_path, folder_name); 
     153        int msize = 0; 
     154 
     155        g_free (storage_path); 
     156        camel_du (folder_dir, &msize); 
     157        g_free (folder_dir); 
     158        return msize; 
     159} 
     160 
    147161void 
    148162camel_imap_recon (CamelImapStore *store, CamelException *mex) 
     
    306320        camel_service_class->get_name = imap_get_name; 
    307321 
     322        camel_store_class->get_local_size = imapstore_get_local_size; 
    308323        camel_store_class->delete_cache = imap_delete_cache; 
    309324        camel_store_class->hash_folder_name = hash_folder_name; 
  • trunk/libtinymail-camel/camel-lite/camel/providers/local/camel-local-store.c

    r2763 r2804  
    6969static CamelStoreClass *parent_class = NULL; 
    7070 
     71 
     72static void  
     73local_delete_cache  (CamelStore *store) 
     74{ 
     75        CamelLocalStore *local_store = (CamelLocalStore *) store; 
     76        camel_rm (local_store->toplevel_dir); 
     77} 
     78 
     79static int  
     80localstore_get_local_size (CamelStore *store, const gchar *folder_name) 
     81{ 
     82        CamelLocalStore *local_store = (CamelLocalStore *) store; 
     83        gchar *folder_dir = g_strdup_printf ("%s/%s", local_store->toplevel_dir, folder_name); 
     84        int msize = 0; 
     85        camel_du (folder_dir, &msize); 
     86        g_free (folder_dir); 
     87        return msize; 
     88} 
     89 
    7190static void 
    7291camel_local_store_class_init (CamelLocalStoreClass *camel_local_store_class) 
     
    8099        camel_service_class->construct = construct; 
    81100        camel_service_class->get_name = get_name; 
     101 
     102        camel_store_class->delete_cache = local_delete_cache; 
     103        camel_store_class->get_local_size = localstore_get_local_size; 
    82104        camel_store_class->get_folder = get_folder; 
    83105        camel_store_class->get_inbox = local_get_inbox; 
  • trunk/libtinymail-camel/camel-lite/camel/providers/pop3/camel-pop3-store.c

    r2763 r2804  
    9999 
    100100 
     101static int  
     102pop3store_get_local_size (CamelStore *store, const gchar *folder_name) 
     103{ 
     104        CamelPOP3Store *p3store = (CamelPOP3Store *) store; 
     105        int msize = 0; 
     106        camel_du (p3store->storage_path , &msize); 
     107        return msize; 
     108} 
    101109 
    102110static void  
     
    10411049        /* camel_service_class->disconnect = pop3_disconnect; */ 
    10421050 
     1051        camel_store_class->get_local_size = pop3store_get_local_size; 
    10431052        camel_store_class->get_folder = get_folder; 
    10441053        camel_store_class->get_trash = get_trash; 
  • trunk/libtinymail-camel/tny-camel-folder.c

    r2800 r2804  
    129129 
    130130 
    131  
    132131static void  
    133132do_notify_in_idle_destroy_for_acc (gpointer user_data) 
     
    302301        g_idle_add_full (G_PRIORITY_HIGH, notify_folder_store_observers_about_for_store_acc_idle, 
    303302                info, do_notify_in_idle_destroy_for_acc); 
     303} 
     304 
     305static void  
     306reset_local_size (TnyCamelFolderPriv *priv) 
     307{ 
     308        if (priv->folder) 
     309                priv->local_size = camel_folder_get_local_size (priv->folder); 
     310        else if (priv->store) 
     311                priv->local_size = camel_store_get_local_size (priv->store, priv->folder_name); 
    304312} 
    305313 
     
    850858                tny_folder_change_set_new_all_count (change, priv->cached_length); 
    851859                tny_folder_change_set_new_unread_count (change, priv->unread_length); 
    852  
    853860                notify_folder_observers_about (self, change); 
    854861                g_object_unref (change); 
     
    913920        priv->unread_length = (guint)camel_folder_get_unread_message_count (priv->folder); 
    914921        update_iter_counts (priv); 
     922        reset_local_size (priv); 
    915923 
    916924        _tny_camel_account_stop_camel_operation (TNY_CAMEL_ACCOUNT (priv->account)); 
     
    10591067                tny_folder_change_set_new_all_count (change, priv->cached_length); 
    10601068                tny_folder_change_set_new_unread_count (change, priv->unread_length); 
     1069                reset_local_size (priv); 
    10611070                notify_folder_observers_about_in_idle (self, change); 
    10621071        } 
     
    13911400 
    13921401        camel_folder_sync (priv->folder, expunge, &ex); 
    1393  
    13941402        _tny_camel_folder_check_unread_count (TNY_CAMEL_FOLDER (self)); 
     1403        reset_local_size (priv); 
    13951404 
    13961405        g_static_rec_mutex_unlock (priv->folder_lock); 
     
    15291538                priv->unread_length = (guint)camel_folder_get_unread_message_count (priv->folder); 
    15301539                update_iter_counts (priv); 
     1540                reset_local_size (priv); 
     1541 
    15311542        } else 
    15321543                camel_exception_setv (&ex, CAMEL_EXCEPTION_SYSTEM,