Changeset 1794

Show
Ignore:
Timestamp:
04/17/07 23:42:20
Author:
pvanhoof
Message:

Bugfixing and implementing tnymergefolder

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libtinymail/tny-merge-folder.c

    r1793 r1794  
    392392tny_merge_folder_copy (TnyFolder *self, TnyFolderStore *into, const gchar *new_name, gboolean del, GError **err) 
    393393{ 
    394         g_warning ("tny_merge_folder_copy not implemented: " 
    395                    "copy it to one the mother folders instead\n"); 
    396          
    397         g_set_error (err, TNY_FOLDER_ERROR,  
    398                 TNY_FOLDER_ERROR_COPY, 
    399                 "tny_merge_folder_copy not implemented: " 
    400                 "copy it to one of the mother folders instead"); 
     394        TnyMergeFolderPriv *priv = TNY_MERGE_FOLDER_GET_PRIVATE (self); 
     395        TnyIterator *iter = tny_list_create_iterator (priv->mothers); 
     396        TnyFolder *nfol = NULL; 
     397 
     398        while (!tny_iterator_is_done (iter)) 
     399        { 
     400                TnyFolder *folder = TNY_FOLDER (tny_iterator_get_current (iter)); 
     401 
     402                if (!nfol) 
     403                { 
     404                        nfol = tny_folder_copy (folder, into, new_name, del, err); 
     405                        /* TODO: handle err */ 
     406                } else { 
     407                        TnyList *nlist = tny_simple_list_new (); 
     408 
     409                        tny_folder_get_headers (folder, nlist, FALSE, err); 
     410                        /* TODO: handle err */ 
     411                        tny_folder_transfer_msgs (folder, nlist, nfol, del, err); 
     412                        /* TODO: handle err*/ 
     413                        g_object_unref (nlist); 
     414                } 
     415 
     416 
     417                g_object_unref (folder); 
     418                tny_iterator_next (iter); 
     419        } 
     420 
     421        g_object_unref (iter); 
    401422 
    402423        return NULL;