Changeset 2672

Show
Ignore:
Timestamp:
09/03/07 13:41:46
Author:
pvanhoof
Message:

* Date, Received, INTERNALDATE: fixes

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libtinymail-camel/tny-camel-full-msg-receive-strategy.c

    r2367 r2672  
    8989                if (camel_message && CAMEL_IS_OBJECT (camel_message)) 
    9090                { 
    91                         TnyHeader *nheader = _tny_camel_msg_header_new (CAMEL_MIME_MESSAGE (camel_message), folder); 
     91                        TnyHeader *nheader = NULL; 
     92 
     93                        nheader = _tny_camel_msg_header_new (CAMEL_MIME_MESSAGE (camel_message),  
     94                                folder, tny_header_get_date_received (header)); 
    9295 
    9396                        message = tny_camel_msg_new (); 
     97                        _tny_camel_msg_set_received (TNY_CAMEL_MSG (message),  
     98                                tny_header_get_date_received (header)); 
    9499                        _tny_camel_msg_set_folder (TNY_CAMEL_MSG (message), folder); 
    95100                        TNY_CAMEL_MSG_HEADER (nheader)->old_uid = g_strdup (tny_header_get_uid (header)); 
  • trunk/libtinymail-camel/tny-camel-mime-part.c

    r2480 r2672  
    151151                        if (CAMEL_IS_MIME_MESSAGE (tpart)) 
    152152                        { 
    153                                 TnyHeader *nheader = _tny_camel_msg_header_new (CAMEL_MIME_MESSAGE (tpart), NULL)
     153                                TnyHeader *nheader = NULL
    154154 
    155155                                newpart = TNY_MIME_PART (tny_camel_msg_new ()); 
     156                                _tny_camel_mime_part_set_part (TNY_CAMEL_MIME_PART (newpart), CAMEL_MIME_PART (tpart)); 
     157 
     158                                nheader = _tny_camel_msg_header_new (CAMEL_MIME_MESSAGE (tpart), NULL,  
     159                                        camel_mime_message_get_date_received (CAMEL_MIME_MESSAGE (tpart), NULL)); 
    156160                                _tny_camel_msg_set_header (TNY_CAMEL_MSG (newpart), nheader); 
    157                                 _tny_camel_mime_part_set_part (TNY_CAMEL_MIME_PART (newpart), CAMEL_MIME_PART (tpart)); 
    158                                 g_object_unref (G_OBJECT (nheader)); 
     161 
     162                                g_object_unref (nheader); 
    159163                        } 
    160164                        else if (camel_content_type_is (type, "message", "rfc822")) 
     
    164168                                if (c && CAMEL_IS_MIME_PART (c) && CAMEL_IS_MIME_MESSAGE (c))  
    165169                                { 
    166                                         TnyHeader *nheader = _tny_camel_msg_header_new (CAMEL_MIME_MESSAGE (c), NULL); 
     170                                        TnyHeader *nheader = NULL; 
     171 
    167172                                        newpart = TNY_MIME_PART (tny_camel_msg_new ()); 
     173                                        _tny_camel_mime_part_set_part (TNY_CAMEL_MIME_PART (newpart), CAMEL_MIME_PART (c)); 
     174                                        nheader = _tny_camel_msg_header_new (CAMEL_MIME_MESSAGE (c), NULL,  
     175                                                camel_mime_message_get_date_received (CAMEL_MIME_MESSAGE (c), NULL)); 
    168176                                        _tny_camel_msg_set_header (TNY_CAMEL_MSG (newpart), nheader); 
    169                                         _tny_camel_mime_part_set_part (TNY_CAMEL_MIME_PART (newpart), CAMEL_MIME_PART (c)); 
    170                                         g_object_unref (G_OBJECT (nheader)); 
     177 
     178                                        g_object_unref (nheader); 
    171179                                } 
    172180 
  • trunk/libtinymail-camel/tny-camel-msg-header-priv.h

    r2069 r2672  
    5050        CamelMimeMessage *msg; 
    5151        gchar *mime_from, *old_uid; 
     52        gboolean has_received; 
     53        time_t received; 
    5254}; 
    5355 
     
    5860 
    5961GType tny_camel_msg_header_get_type (void); 
    60 TnyHeader* _tny_camel_msg_header_new (CamelMimeMessage *msg, TnyFolder *folder); 
     62TnyHeader* _tny_camel_msg_header_new (CamelMimeMessage *msg, TnyFolder *folder, time_t received); 
    6163 
    6264G_END_DECLS 
  • trunk/libtinymail-camel/tny-camel-msg-header.c

    r2654 r2672  
    277277        int tzone; 
    278278 
    279         /* first try _received, if that doesn't work, use the Date: header 
    280          * however, Date: is set by the *sender* so will not be totally 
    281          * accurate 
    282          * 
    283          * NOTE: we ignore the timezone, as the camel function already 
    284          * returns a UTC-normalized time_t 
    285          * */ 
     279        if (me->has_received) 
     280                return me->received; 
     281 
    286282        retval = camel_mime_message_get_date_received (me->msg, &tzone); 
    287283        if (retval == CAMEL_MESSAGE_DATE_CURRENT) 
     
    291287        if (retval == CAMEL_MESSAGE_DATE_CURRENT) 
    292288                return 0; 
    293         else 
    294                return retval; 
     289 
     290        return retval; 
    295291} 
    296292 
     
    430426 
    431427TnyHeader* 
    432 _tny_camel_msg_header_new (CamelMimeMessage *msg, TnyFolder *folder
     428_tny_camel_msg_header_new (CamelMimeMessage *msg, TnyFolder *folder, time_t received
    433429{ 
    434430        TnyCamelMsgHeader *self = g_object_new (TNY_TYPE_CAMEL_MSG_HEADER, NULL); 
     
    438434                and remove it in the finalize. Same for folder. */ 
    439435 
     436        if (received == -1) 
     437                self->has_received = FALSE; 
     438        self->received = received; 
    440439        self->old_uid = NULL; 
    441440        self->msg = msg;  
    442441        self->folder = folder; 
     442        self->has_received = FALSE; 
    443443 
    444444        return (TnyHeader*) self; 
  • trunk/libtinymail-camel/tny-camel-msg-priv.h

    r1700 r2672  
    3434        TnyFolder *folder; 
    3535        TnyHeader *header; 
     36        time_t received; 
    3637}; 
    3738 
     
    3940void _tny_camel_msg_set_folder (TnyCamelMsg *self, TnyFolder *folder); 
    4041void _tny_camel_msg_set_header (TnyCamelMsg *self, TnyHeader *header); 
     42void _tny_camel_msg_set_received (TnyCamelMsg *self, time_t received); 
    4143 
    4244#endif 
  • trunk/libtinymail-camel/tny-camel-msg.c

    r2287 r2672  
    8585        (G_TYPE_INSTANCE_GET_PRIVATE ((o), TNY_TYPE_CAMEL_MSG, TnyCamelMsgPriv)) 
    8686 
    87 /* 
    88         new = ppriv->part  
    89         camel_medium_add_header (CAMEL_MEDIUM (new), "Disposition-Notification-To", mdn_address); 
    90         camel_medium_add_header (CAMEL_MEDIUM (new), "X-Priority", "1"); 
    91 */ 
    9287 
    9388CamelMimeMessage*  
     
    121116} 
    122117 
     118 
     119 
     120void  
     121_tny_camel_msg_set_received (TnyCamelMsg *self, time_t received) 
     122{ 
     123        TnyCamelMsgPriv *priv = TNY_CAMEL_MSG_GET_PRIVATE (self); 
     124        priv->received = received; 
     125} 
    123126 
    124127void 
     
    237240                msg = _tny_camel_msg_get_camel_mime_message (TNY_CAMEL_MSG (self)); 
    238241                /* Read _tny_camel_msg_header_new too! */ 
    239                 priv->header = _tny_camel_msg_header_new (msg, priv->folder); 
     242                priv->header = _tny_camel_msg_header_new (msg, priv->folder, priv->received); 
    240243                if (priv->folder) 
    241244                        ((TnyCamelMsgHeader *)priv->header)->folder = priv->folder; 
     
    387390        priv->header_lock = g_mutex_new (); 
    388391        priv->folder_lock = g_mutex_new (); 
     392        priv->received = -1; 
    389393 
    390394        return; 
  • trunk/libtinymail-camel/tny-camel-partial-msg-receive-strategy.c

    r2367 r2672  
    9090                if (camel_message && CAMEL_IS_OBJECT (camel_message)) 
    9191                { 
    92                         TnyHeader *nheader = _tny_camel_msg_header_new (CAMEL_MIME_MESSAGE (camel_message), folder); 
    93  
     92                        TnyHeader *nheader = NULL; 
     93 
     94                        nheader = _tny_camel_msg_header_new (CAMEL_MIME_MESSAGE (camel_message), folder, 
     95                                tny_header_get_date_received (header)); 
    9496                        message = tny_camel_msg_new (); 
     97                        _tny_camel_msg_set_received (TNY_CAMEL_MSG (message),  
     98                                tny_header_get_date_received (header)); 
    9599                        _tny_camel_msg_set_folder (TNY_CAMEL_MSG (message), folder); 
    96100                        TNY_CAMEL_MSG_HEADER (nheader)->old_uid = g_strdup (tny_header_get_uid (header)); 
  • trunk/tests/c-demo/tny-demoui-summary-view.c

    r2670 r2672  
    456456        a_iter = tny_list_create_iterator (accounts); 
    457457 
    458         GObject *a_cur = TNY_ACCOUNT (tny_iterator_get_current (a_iter)); 
     458        GObject *a_cur = tny_iterator_get_current (a_iter); 
    459459 
    460460        g_object_unref (a_iter); 
     
    463463        printf ("%d\n", a_cur->ref_count); 
    464464 
     465        /* This is indeed incorrect, don't use this */ 
    465466        g_object_unref (a_cur); 
    466467        g_object_unref (a_cur); 
     
    469470        g_object_unref (a_cur); 
    470471 
     472        return; 
    471473} 
    472474 
     
    18741876 
    18751877        renderer = gtk_cell_renderer_text_new (); 
    1876         column = gtk_tree_view_column_new_with_attributes (_("Date"), renderer, 
    1877                 "text", TNY_GTK_HEADER_LIST_MODEL_DATE_RECEIVED_COLUMN, NULL); 
     1878        column = gtk_tree_view_column_new_with_attributes (_("Date sent"), renderer, 
     1879                "text", TNY_GTK_HEADER_LIST_MODEL_DATE_SENT_COLUMN, NULL); 
    18781880        gtk_tree_view_column_set_sort_column_id (column, TNY_GTK_HEADER_LIST_MODEL_DATE_RECEIVED_COLUMN); 
    18791881        gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED);