Changeset 1793

Show
Ignore:
Timestamp:
04/17/07 23:21:51
Author:
pvanhoof
Message:

Bugfixing and implementing tnymergefolder

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r1791 r1793  
     12007-04-17  Philip Van Hoof  <pvanhoof@gnome.org> 
     2 
     3        * Further implementing of TnyMergeFolder 
     4        * Bugfix in TnyGtkHeaderListModel 
     5 
    162007-04-17 Sergio Villar Senin  <svillar@igalia.com> 
    27 
  • trunk/config.h.in

    r380 r1793  
    5252#undef HAVE_UNISTD_H 
    5353 
     54/* "Whether to hack the TnyMaemoConicDevice to somewhat work in sbox" */ 
     55#undef MAEMO_CONIC_DUMMY 
     56 
    5457/* Name of package */ 
    5558#undef PACKAGE 
  • trunk/libtinymail/tny-merge-folder.c

    r1788 r1793  
    3434        gchar *id, *name; 
    3535        TnyList *mothers; 
    36         TnyMsgRemoveStrategy *rem_strat; 
    37         TnyMsgReceiveStrategy *rec_strat; 
    3836}; 
    3937 
     
    4543tny_merge_folder_remove_msg (TnyFolder *self, TnyHeader *header, GError **err) 
    4644{ 
    47         g_warning ("tny_merge_folder_remove_msg not implemented: " 
    48                    "remove it from the mother folder instead. " 
    49                    "Use tny_header_get_folder"); 
    50  
    51         g_set_error (err, TNY_FOLDER_ERROR,  
    52                 TNY_FOLDER_ERROR_REMOVE_MSG, 
    53                 "tny_merge_folder_remove_msg not implemented: " 
    54                 "remove it from the mother folder instead. " 
    55                 "Use tny_header_get_folder"); 
     45        TnyFolder *fol = tny_header_get_folder (header); 
     46 
     47        tny_folder_remove_msg (fol, header, err); 
     48        g_object_unref (fol); 
     49 
     50        return; 
    5651} 
    5752 
     
    6156        g_warning ("tny_merge_folder_add_msg not implemented: " 
    6257                   "add it to the mother folder instead\n"); 
    63          
     58 
    6459        g_set_error (err, TNY_FOLDER_ERROR,  
    6560                TNY_FOLDER_ERROR_ADD_MSG, 
     
    9489tny_merge_folder_get_msg_remove_strategy (TnyFolder *self) 
    9590{ 
    96         TnyMergeFolderPriv *priv = TNY_MERGE_FOLDER_GET_PRIVATE (self); 
    97  
    98         return priv->rem_strat?TNY_MSG_REMOVE_STRATEGY (g_object_ref (priv->rem_strat)):NULL; 
     91 
     92        g_warning ("tny_merge_folder_get_msg_remove_strategy not implemented: " 
     93                   "add it to the mother folder instead\n"); 
     94 
     95        return NULL; 
    9996} 
    10097 
     
    10299tny_merge_folder_set_msg_remove_strategy (TnyFolder *self, TnyMsgRemoveStrategy *st) 
    103100{ 
    104         TnyMergeFolderPriv *priv = TNY_MERGE_FOLDER_GET_PRIVATE (self); 
    105  
    106         if (priv->rem_strat) 
    107                 g_object_unref (priv->rem_strat); 
    108  
    109         priv->rem_strat = g_object_ref (st); 
     101 
     102        g_warning ("tny_merge_folder_set_msg_remove_strategy not implemented: " 
     103                   "add it to the mother folder instead\n"); 
    110104 
    111105        return; 
     
    115109tny_merge_folder_get_msg_receive_strategy (TnyFolder *self) 
    116110{ 
    117         TnyMergeFolderPriv *priv = TNY_MERGE_FOLDER_GET_PRIVATE (self); 
    118  
    119         return priv->rec_strat?TNY_MSG_RECEIVE_STRATEGY (g_object_ref (priv->rec_strat)):NULL; 
     111 
     112        g_warning ("tny_merge_folder_get_msg_receive_strategy not implemented: " 
     113                   "add it to the mother folder instead\n"); 
     114 
     115        return NULL; 
    120116} 
    121117 
     
    123119tny_merge_folder_set_msg_receive_strategy (TnyFolder *self, TnyMsgReceiveStrategy *st) 
    124120{ 
    125         TnyMergeFolderPriv *priv = TNY_MERGE_FOLDER_GET_PRIVATE (self); 
    126  
    127         if (priv->rem_strat) 
    128                 g_object_unref (priv->rec_strat); 
    129  
    130         priv->rec_strat = g_object_ref (st); 
     121 
     122        g_warning ("tny_merge_folder_set_msg_receive_strategy not implemented: " 
     123                   "add it to the mother folder instead\n"); 
    131124 
    132125        return; 
     
    189182 
    190183        iter = tny_list_create_iterator (priv->mothers); 
     184 
    191185        while (!tny_iterator_is_done (iter)) 
    192186        { 
     
    223217 
    224218                iter = tny_list_create_iterator (priv->mothers); 
     219 
    225220                while (!tny_iterator_is_done (iter)) 
    226221                { 
     
    259254                g_free (priv->name); 
    260255        priv->name = g_strdup (name); 
     256 
    261257        return; 
    262258} 
     
    276272 
    277273        iter = tny_list_create_iterator (priv->mothers); 
     274 
    278275        while (!tny_iterator_is_done (iter)) 
    279276        { 
     
    297294 
    298295        iter = tny_list_create_iterator (priv->mothers); 
     296 
    299297        while (!tny_iterator_is_done (iter)) 
    300298        { 
     
    336334        g_object_unref (iter); 
    337335 
     336        return; 
    338337} 
    339338 
     
    353352tny_merge_folder_transfer_msgs (TnyFolder *self, TnyList *header_list, TnyFolder *folder_dst, gboolean delete_originals, GError **err) 
    354353{ 
    355         g_warning ("tny_merge_folder_transfer_msgs not implemented: " 
    356                    "transfer using the mother folders instead\n"); 
    357  
    358         g_set_error (err, TNY_FOLDER_ERROR,  
    359                 TNY_FOLDER_ERROR_TRANSFER_MSGS, 
    360                 "tny_merge_folder_transfer_msgs not implemented: " 
    361                 "transfer using the mother folders instead"); 
     354        TnyIterator *iter = tny_list_create_iterator (header_list); 
     355 
     356        while (!tny_iterator_is_done (iter)) 
     357        { 
     358                TnyHeader *current = TNY_HEADER (tny_iterator_get_current (iter)); 
     359                TnyFolder *folder = tny_header_get_folder (current); 
     360 
     361                TnyList *nlist = tny_simple_list_new (); 
     362                tny_list_prepend (nlist, G_OBJECT (current)); 
     363 
     364                tny_folder_transfer_msgs (folder, nlist, folder_dst, delete_originals, err); 
     365                /* TODO: handle err*/ 
     366 
     367                g_object_unref (nlist); 
     368                g_object_unref (folder); 
     369                g_object_unref (current); 
     370                tny_iterator_next (iter); 
     371        } 
     372 
     373        g_object_unref (iter); 
     374 
     375        return; 
    362376} 
    363377 
     
    506520        priv->id = g_strdup  (""); 
    507521        priv->mothers = tny_simple_list_new (); 
    508         priv->rec_strat = NULL; 
    509         priv->rem_strat = NULL; 
    510522 
    511523        return; 
     
    524536        if (priv->name) 
    525537                g_free (priv->name); 
    526  
    527         if (priv->rec_strat) 
    528                 g_object_unref (priv->rec_strat); 
    529  
    530         if (priv->rem_strat) 
    531                 g_object_unref (priv->rem_strat); 
    532538 
    533539        parent_class->finalize (object); 
     
    581587        g_type_class_add_private (object_class, sizeof (TnyMergeFolderPriv)); 
    582588 
     589        return; 
    583590} 
    584591 
  • trunk/libtinymailui-gtk/tny-gtk-header-list-model.c

    r1780 r1793  
    766766 
    767767        self->recent_updated = 0; 
    768         self->cur_len = 0; 
     768 
     769        /* Set it to 1 as initial value, else you cause the length > 0  
     770         * assertion in gtk_tree_model_sort_build_level (I have no idea why the 
     771         * assertion is placed there, in stead of a normal return, though) */ 
     772  
     773        self->cur_len = 1;  
    769774 
    770775        g_ptr_array_foreach (self->items, (GFunc)g_object_unref, NULL);