Changeset 1740
- Timestamp:
- 03/20/07 23:04:27
- Files:
-
- trunk/ChangeLog (modified) (1 diff)
- trunk/libtinymail-camel/camel-lite/camel/camel-folder-summary.c (modified) (5 diffs)
- trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-command.c (modified) (1 diff)
- trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-folder.c (modified) (36 diffs)
- trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-store.c (modified) (1 diff)
- trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-store.h (modified) (1 diff)
- trunk/libtinymailui-gtk/tny-gtk-header-list-model.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ChangeLog
r1739 r1740 1 2007-03-20 Philip Van Hoof <pvanhoof@gnome.org> 2 3 * Although this needs a lot testing, potential fix for ticket #30 4 1 5 2007-03-19 Philip Van Hoof <pvanhoof@gnome.org> 2 6 trunk/libtinymail-camel/camel-lite/camel/camel-folder-summary.c
r1739 r1740 149 149 mi->flags &= ~CAMEL_MESSAGE_PARTIAL; 150 150 mi->flags &= ~CAMEL_MESSAGE_EXPUNGED; 151 mi->flags &= ~CAMEL_MESSAGE_FREED;152 151 mi->flags &= ~CAMEL_MESSAGE_SECURE; 153 152 mi->flags &= ~CAMEL_MESSAGE_FOLDER_FLAGGED; 154 /* CAMEL_MESSAGE_INFO_NEEDS_FREE155 CAMEL_MESSAGE_INFO_UID_NEEDS_FREE */156 mi->flags &= ~CAMEL_MESSAGE_USER;157 153 158 154 } … … 402 398 { 403 399 CamelFolderSummary *new = CAMEL_FOLDER_SUMMARY ( camel_object_new (camel_folder_summary_get_type ())); 404 405 400 new->folder = folder; 406 407 401 return new; 408 402 } … … 715 709 goto error; 716 710 711 if (s->messages && s->messages->len > s->saved_count) 712 { 713 int r, curlen = s->messages->len; 714 for (r = curlen - 1; r >= s->saved_count - 1; r--) 715 { 716 CamelMessageInfo *ri = g_ptr_array_index (s->messages, r); 717 if (ri) 718 camel_folder_summary_remove (s, ri); 719 } 720 } 721 717 722 /* now read in each message ... */ 718 for (i=0; i<s->saved_count;i++)723 for (i=0; i < s->saved_count; i++) 719 724 { 720 725 gboolean must_add = FALSE; 721 726 s->idx = i; 727 722 728 mi = ((CamelFolderSummaryClass *)(CAMEL_OBJECT_GET_CLASS(s)))->message_info_load(s, &must_add); 723 729 … … 3239 3245 if (mi == NULL || mi->refcount <=0) 3240 3246 retval = (void*) 0; 3247 if (((CamelMessageInfoBase*)mi)->flags & CAMEL_MESSAGE_FREED) 3248 retval = "Invalid"; 3241 3249 else switch (id) 3242 3250 { … … 3547 3555 retval = info_set_flags(mi, flags, set); 3548 3556 3549 g_static_rec_mutex_ lock (&global_lock);3557 g_static_rec_mutex_unlock (&global_lock); 3550 3558 3551 3559 return retval; trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-command.c
r1699 r1740 209 209 /* g_mutex_unlock (store->stream_lock);*/ 210 210 211 camel_imap_store_stop_idle (store); 211 212 /* Also read imap_update_summary and all of the IDLE crap */ 213 if (!store->dontdistridlehack) 214 camel_imap_store_stop_idle (store); 215 /* else 216 printf ("dont distr\n"); */ 212 217 213 218 /* Check for current folder */ trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-folder.c
r1739 r1740 2935 2935 GPtrArray *needheaders; 2936 2936 guint32 flags; 2937 int i,seq=0;2937 int seq=0; 2938 2938 CamelImapResponseType type; 2939 2939 const char *header_spec; … … 2971 2971 camel_folder_summary_prepare_hash (folder->summary); 2972 2972 2973 store->dontdistridlehack = TRUE; 2974 2973 2975 while (more) 2974 2976 { … … 3000 3002 more = FALSE; 3001 3003 camel_folder_summary_kill_hash (folder->summary); 3004 store->dontdistridlehack = FALSE; 3002 3005 return; 3003 3006 } … … 3014 3017 { if (!camel_operation_cancel_check (NULL)) 3015 3018 g_warning ("IMAP error getting UIDs (2)"); 3016 camel_operation_end (NULL); return; } 3019 camel_operation_end (NULL); 3020 store->dontdistridlehack = FALSE; return; } 3017 3021 cnt = imap_get_uids (folder, store, ex, needheaders, (exists - seq) - cnt); 3018 3022 … … 3027 3031 more = FALSE; 3028 3032 camel_folder_summary_kill_hash (folder->summary); 3033 store->dontdistridlehack = FALSE; 3029 3034 return; 3030 3035 } … … 3042 3047 g_warning ("IMAP error getting UIDs (3)"); 3043 3048 camel_folder_summary_kill_hash (folder->summary); 3044 camel_operation_end (NULL); return; } 3049 camel_operation_end (NULL); 3050 store->dontdistridlehack = FALSE; return; } 3045 3051 camel_folder_summary_clear (folder->summary); 3046 3052 tcnt = cnt = imap_get_uids (folder, store, ex, needheaders, (exists - seq) - tcnt); … … 3056 3062 more = FALSE; 3057 3063 camel_folder_summary_kill_hash (folder->summary); 3064 store->dontdistridlehack = FALSE; 3058 3065 return; 3059 3066 } … … 3090 3097 more = FALSE; 3091 3098 camel_folder_summary_kill_hash (folder->summary); 3099 store->dontdistridlehack = FALSE; 3092 3100 return; 3093 3101 } … … 3142 3150 for (r = curlen-1; r >= sequence -1; r--) 3143 3151 { 3144 CamelMessageInfo *ri = g_ptr_array_index (folder->summary->messages, i); (folder->summary, i); 3145 if (ri) 3152 printf ("curlen=%d, r=%d, seq=%d\n", curlen, r, sequence); 3153 CamelMessageInfo *ri = g_ptr_array_index (folder->summary->messages, r); 3154 if (ri) { 3155 3156 /* CamelFolderChangeInfo *uchange = camel_folder_change_info_new (); 3157 camel_folder_change_info_remove_uid (uchange, camel_message_info_uid (mi)); 3158 if (camel_folder_change_info_changed (uchange)) 3159 camel_object_trigger_event (CAMEL_OBJECT (folder), "folder_changed", uchange); 3160 camel_folder_change_info_free (uchange); */ 3161 3162 ((CamelMessageInfoBase*)ri)->flags |= CAMEL_MESSAGE_EXPUNGED; 3163 ((CamelMessageInfoBase*)ri)->flags |= CAMEL_MESSAGE_FREED; 3146 3164 camel_folder_summary_remove (folder->summary, ri); 3165 } 3147 3166 } 3148 3167 } else { … … 3187 3206 more = FALSE; 3188 3207 camel_folder_summary_kill_hash (folder->summary); 3208 store->dontdistridlehack = FALSE; 3189 3209 return; 3190 3210 } … … 3211 3231 3212 3232 imap_folder->need_rescan = oldrescval; 3233 store->dontdistridlehack = FALSE; 3213 3234 3214 3235 } … … 3229 3250 3230 3251 static void 3231 process_idle_response (IdleResponse *idle_resp , gboolean restart)3252 process_idle_response (IdleResponse *idle_resp) 3232 3253 { 3233 3254 CamelImapStore *store; … … 3267 3288 changes = camel_folder_change_info_new(); 3268 3289 camel_folder_change_info_change_uid(changes, info->uid); 3269 /* flags_to_label(idle_resp->folder, (CamelImapMessageInfo *)info); */3270 3290 } 3271 3291 camel_message_info_free (info); … … 3286 3306 idle_resp->expunged, &ex); 3287 3307 3288 /* Restart the idle if needed */3289 if (restart)3290 camel_imap_folder_start_idle (idle_resp->folder);3291 3292 3308 } 3293 3309 … … 3306 3322 { 3307 3323 char *fptr = resp; 3308 3309 /* 2 FETCH (FLAGS (\Recent \Seen))3310 * 3 FETCH (FLAGS (\Recent \Seen))3311 * 4 FETCH (FLAGS (\Recent \Seen)) */3312 3324 3313 3325 FetchIdleResponse *fid = g_slice_new0 (FetchIdleResponse); … … 3358 3370 } 3359 3371 3372 static void 3373 idle_real_start (CamelImapStore *store) 3374 { 3375 g_mutex_lock (store->stream_lock); 3376 store->idle_prefix = g_strdup_printf ("%c%.5u", 3377 store->tag_prefix, store->command++); 3378 camel_stream_printf (store->ostream, "%s IDLE\r\n", 3379 store->idle_prefix); 3380 g_mutex_unlock (store->stream_lock); 3381 3382 } 3383 3360 3384 static IdleResponse* 3361 idle_deal_with_stuff (CamelFolder *folder, CamelImapStore *store, gboolean done, gboolean *had_err)3385 idle_deal_with_stuff (CamelFolder *folder, CamelImapStore *store, gboolean *had_err, gboolean needlock, gboolean *hadlock) 3362 3386 { 3363 3387 IdleResponse *idle_resp = NULL; … … 3380 3404 3381 3405 locked = CAMEL_SERVICE_REC_TRYLOCK (store, connect_lock); 3406 if (needlock && !locked) 3407 { 3408 CAMEL_SERVICE_REC_LOCK (store, connect_lock); 3409 locked = TRUE; 3410 } 3411 3382 3412 if (locked) 3383 3413 { 3414 *hadlock = TRUE; 3415 3384 3416 if (store->current_folder) 3385 3417 { … … 3402 3434 g_free (resp); 3403 3435 3404 if (done) 3436 g_mutex_lock (store->stream_lock); 3437 if (!camel_disco_store_check_online ((CamelDiscoStore*)store, &ex)) 3438 { g_mutex_unlock (store->stream_lock); return NULL; } 3439 if (store->istream == NULL || ((CamelObject *)store->istream)->ref_count <= 0) 3440 { g_mutex_unlock (store->stream_lock); return NULL; } 3441 if (store->ostream == NULL || ((CamelObject *)store->istream)->ref_count <= 0) 3442 { g_mutex_unlock (store->stream_lock); return NULL; } 3443 if (store->ostream && CAMEL_IS_STREAM (store->ostream)) 3444 nwritten = camel_stream_printf (store->ostream, "DONE\r\n"); 3445 g_mutex_unlock (store->stream_lock); 3446 3447 if (nwritten == -1) 3448 goto outofhere; 3449 3450 resp = NULL; 3451 while ((type = camel_imap_command_response_idle (store, &resp, &ex)) == CAMEL_IMAP_RESPONSE_UNTAGGED) 3405 3452 { 3406 g_mutex_lock (store->stream_lock); 3407 if (!camel_disco_store_check_online ((CamelDiscoStore*)store, &ex)) 3408 { g_mutex_unlock (store->stream_lock); return NULL; } 3409 if (store->istream == NULL || ((CamelObject *)store->istream)->ref_count <= 0) 3410 { g_mutex_unlock (store->stream_lock); return NULL; } 3411 if (store->ostream == NULL || ((CamelObject *)store->istream)->ref_count <= 0) 3412 { g_mutex_unlock (store->stream_lock); return NULL; } 3413 if (store->ostream && CAMEL_IS_STREAM (store->ostream)) 3414 nwritten = camel_stream_printf (store->ostream, "DONE\r\n"); 3415 g_mutex_unlock (store->stream_lock); 3416 3417 if (nwritten == -1) 3418 goto outofhere; 3419 3420 while ((type = camel_imap_command_response_idle (store, &resp, &ex)) == CAMEL_IMAP_RESPONSE_UNTAGGED) 3453 /* printf ("D resp: %s\n", resp); */ 3454 if (strchr (resp, '*') != NULL && (strstr (resp, "EXISTS") || 3455 strstr (resp, "FETCH") || strstr (resp, "EXPUNGE") || 3456 strstr (resp, "RECENT"))) 3421 3457 { 3422 /* printf ("D resp: %s\n", resp); */ 3423 if (strchr (resp, '*') != NULL && (strstr (resp, "EXISTS") || 3424 strstr (resp, "FETCH") || strstr (resp, "EXPUNGE") || 3425 strstr (resp, "RECENT"))) 3426 { 3427 if (!idle_resp) 3428 idle_resp = idle_response_new (folder); 3429 read_idle_response (folder, resp, idle_resp); 3430 } 3431 g_free (resp); resp=NULL; 3458 if (!idle_resp) 3459 idle_resp = idle_response_new (folder); 3460 read_idle_response (folder, resp, idle_resp); 3432 3461 } 3433 3434 if (type == CAMEL_IMAP_RESPONSE_ERROR) 3435 *had_err = TRUE; 3436 3437 if (resp) 3438 g_free (resp); 3439 } 3440 } else if (done) { 3462 g_free (resp); resp=NULL; 3463 } 3464 3465 if (type == CAMEL_IMAP_RESPONSE_ERROR) 3466 *had_err = TRUE; 3467 3468 if (resp) 3469 g_free (resp); 3470 3471 } else { 3441 3472 g_mutex_lock (store->stream_lock); 3442 3473 if (!camel_disco_store_check_online ((CamelDiscoStore*)store, &ex)) … … 3461 3492 3462 3493 CAMEL_SERVICE_REC_UNLOCK (store, connect_lock); 3463 } else if (done) { 3464 /* Little bit strange situation, let's warn */ 3465 g_warning ("Locking bug in tinymail in %s:%d", __FILE__, __LINE__); 3466 3467 g_mutex_lock (store->stream_lock); 3468 if (!camel_disco_store_check_online ((CamelDiscoStore*)store, &ex)) 3469 { g_mutex_unlock (store->stream_lock); return NULL; } 3470 if (store->istream == NULL || ((CamelObject *)store->istream)->ref_count <= 0) 3471 { g_mutex_unlock (store->stream_lock); return NULL; } 3472 if (store->ostream == NULL || ((CamelObject *)store->istream)->ref_count <= 0) 3473 { g_mutex_unlock (store->stream_lock); return NULL; } 3474 if (store->ostream && CAMEL_IS_STREAM (store->ostream)) 3475 nwritten = camel_stream_printf (store->ostream, "DONE\r\n"); 3476 g_mutex_unlock (store->stream_lock); 3477 if (nwritten != -1) 3478 { 3479 resp = NULL; 3480 while ((type = camel_imap_command_response_idle (store, &resp, &ex)) == CAMEL_IMAP_RESPONSE_UNTAGGED) 3481 { g_free (resp); resp=NULL; } 3482 if (resp) 3483 g_free (resp); 3484 } 3485 } 3494 } 3486 3495 3487 3496 return idle_resp; … … 3515 3524 if (store->capabilities & IMAP_CAPABILITY_IDLE) 3516 3525 { 3517 3526 gboolean hadlock = FALSE; 3518 3527 g_free (store->idle_prefix); 3519 3528 store->idle_prefix = NULL; … … 3522 3531 g_source_remove (store->idle_signal); 3523 3532 3524 idle_resp = idle_deal_with_stuff (folder, store, TRUE, &had_err);3533 idle_resp = idle_deal_with_stuff (folder, store, &had_err, TRUE, &hadlock); 3525 3534 3526 3535 /* Outside of the lock of course */ 3527 3536 if (idle_resp && !had_err) 3528 process_idle_response (idle_resp, FALSE); 3537 process_idle_response (idle_resp); 3538 3539 /* idle_real_start (store); */ 3529 3540 3530 3541 if (idle_resp) … … 3541 3552 CamelImapFolder *imap_folder; 3542 3553 CamelImapStore *store; 3543 gboolean had_err = FALSE ;3554 gboolean had_err = FALSE, hadlock = FALSE; 3544 3555 CamelException ex = CAMEL_EXCEPTION_INITIALISER; 3545 3556 … … 3572 3583 if (store->idle_prefix != NULL) 3573 3584 { 3574 IdleResponse *idle_resp = idle_deal_with_stuff (folder, store, FALSE, &had_err);3585 IdleResponse *idle_resp = idle_deal_with_stuff (folder, store, &had_err, FALSE, &hadlock); 3575 3586 3576 3587 if (idle_resp && !had_err) 3577 process_idle_response (idle_resp, TRUE); 3588 process_idle_response (idle_resp); 3589 3590 if (hadlock) 3591 idle_real_start (store); 3592 3578 3593 if (idle_resp) 3579 3594 idle_response_free (idle_resp); … … 3596 3611 } 3597 3612 3598 static void3599 imap_set_push_email (CamelFolder *folder, gboolean setting)3600 {3601 CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);3602 3603 if (imap_folder->do_push_email && !setting) {3604 imap_folder->do_push_email = setting;3605 camel_imap_folder_stop_idle (folder);3606 }3607 3608 if (!imap_folder->do_push_email && setting) {3609 imap_folder->do_push_email = setting;3610 camel_imap_folder_start_idle (folder);3611 }3612 3613 return;3614 }3615 3613 3616 3614 void … … 3642 3640 folder->folder_flags |= CAMEL_FOLDER_HAS_PUSHEMAIL_CAPABILITY; 3643 3641 3644 g_mutex_lock (store->stream_lock); 3645 store->idle_prefix = g_strdup_printf ("%c%.5u", 3646 store->tag_prefix, store->command++); 3647 camel_stream_printf (store->ostream, "%s IDLE\r\n", 3648 store->idle_prefix); 3649 g_mutex_unlock (store->stream_lock); 3642 idle_real_start (store); 3650 3643 3651 3644 store->idle_signal = g_timeout_add (5 * 1000, idle_timeout_checker, folder); … … 3658 3651 } 3659 3652 3653 3654 static void 3655 imap_set_push_email (CamelFolder *folder, gboolean setting) 3656 { 3657 CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder); 3658 3659 if (imap_folder->do_push_email && !setting) { 3660 imap_folder->do_push_email = setting; 3661 camel_imap_folder_stop_idle (folder); 3662 } 3663 3664 if (!imap_folder->do_push_email && setting) { 3665 imap_folder->do_push_email = setting; 3666 camel_imap_folder_start_idle (folder); 3667 } 3668 3669 return; 3670 } 3660 3671 /* Called with the store's connect_lock locked */ 3661 3672 void … … 3697 3708 3698 3709 len = camel_folder_summary_count (folder->summary); 3699 if (exists > len) 3710 3711 if (exists > len) { 3712 camel_imap_folder_stop_idle (folder); 3700 3713 imap_update_summary (folder, exists, changes, ex); 3714 /* camel_imap_folder_start_idle (folder); will happen later? */ 3715 } 3701 3716 3702 3717 if (camel_folder_change_info_changed (changes)) … … 3716 3731 CamelMessageInfo *info; 3717 3732 int len; 3718 3733 3734 /* printf ("FOR IDLE: %d vs %d\n", exists, camel_folder_summary_count (folder->summary)); */ 3735 3719 3736 changes = camel_folder_change_info_new (); 3720 3737 if (expunged) { … … 3800 3817 CamelImapStore *store = CAMEL_IMAP_STORE (folder->parent_store); 3801 3818 CamelStream *stream = NULL; 3802 gboolean connected = FALSE ;3819 gboolean connected = FALSE, idle_rt = FALSE; 3803 3820 CamelException tex = CAMEL_EXCEPTION_INITIALISER; 3804 3821 ssize_t nread = 0; … … 3900 3917 nread = 1; 3901 3918 3919 /* Stops idle */ 3902 3920 camel_imap_command_start (store, folder, ex, 3903 3921 "UID FETCH %s BINARY.PEEK[%s]", uid, section_text); … … 3981 3999 g_mutex_unlock (store->stream_lock); 3982 4000 CAMEL_SERVICE_REC_UNLOCK (store, connect_lock); 3983 camel_imap_store_start_idle (store); 4001 /* Starts idle */ 4002 camel_imap_folder_start_idle ((CamelFolder *) imap_folder); 4003 idle_rt = TRUE; 3984 4004 3985 4005 if (err) … … 3997 4017 nread = 0; 3998 4018 4019 /* Stops idle */ 3999 4020 if (store->server_level < IMAP_LEVEL_IMAP4REV1 && !*section_text) 4000 4021 camel_imap_command_start (store, folder, ex, … … 4078 4099 g_mutex_unlock (store->stream_lock); 4079 4100 CAMEL_SERVICE_REC_UNLOCK (store, connect_lock); 4080 camel_imap_store_start_idle (store); 4101 /* Starts idle */ 4102 camel_imap_folder_start_idle ((CamelFolder *) imap_folder); 4103 idle_rt = TRUE; 4081 4104 4082 4105 if (nread <= 0) … … 4117 4140 nread = 0; 4118 4141 4142 /* Stops idle */ 4119 4143 camel_imap_command_start (store, folder, ex, 4120 4144 "UID FETCH %s BODY.PEEK[%s]", uid, infos[t]); … … 4223 4247 g_mutex_unlock (store->stream_lock); 4224 4248 CAMEL_SERVICE_REC_UNLOCK (store, connect_lock); 4249 /* Starts idle */ 4225 4250 camel_imap_store_start_idle (store); 4251 idle_rt = TRUE; 4226 4252 4227 4253 if (nread <= 0) … … 4250 4276 4251 4277 errorhander: 4278 4279 if (!idle_rt) 4280 camel_imap_folder_start_idle ((CamelFolder *) imap_folder); 4252 4281 4253 4282 CAMEL_IMAP_FOLDER_REC_UNLOCK (imap_folder, cache_lock); trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-store.c
r1697 r1740 263 263 CamelImapStore *imap_store = CAMEL_IMAP_STORE (object); 264 264 265 imap_store->dontdistridlehack = FALSE; 265 266 imap_store->idle_signal = 0; 266 267 imap_store->idle_prefix = NULL; trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-store.h
r1549 r1740 143 143 gchar *idle_prefix; 144 144 guint idle_signal; 145 gboolean dontdistridlehack; 145 146 }; 146 147 trunk/libtinymailui-gtk/tny-gtk-header-list-model.c
r1710 r1740 226 226 tny_gtk_header_list_model_get_value (GtkTreeModel *self, GtkTreeIter *iter, gint column, GValue *value) 227 227 { 228 TnyHeader *header = NULL;229 228 TnyGtkHeaderListModel *list_model = TNY_GTK_HEADER_LIST_MODEL (self); 230 229 const gchar *str; … … 248 247 } 249 248 250 header = list_model->items->pdata[i];251 252 if (((GObject*)header)->ref_count <= 0)253 {254 g_warning ("GtkTreeModel in invalid state\n");255 g_static_rec_mutex_unlock (list_model->iterator_lock);256 g_mutex_unlock (list_model->folder_lock);257 return;258 }259 260 249 switch (column) 261 250 { 262 251 case TNY_GTK_HEADER_LIST_MODEL_CC_COLUMN: 263 252 g_value_init (value, G_TYPE_STRING); 264 str = tny_header_get_cc ( header);253 str = tny_header_get_cc ((TnyHeader*) list_model->items->pdata[i]); 265 254 if (str) 266 255 g_value_set_string (value, str); … … 268 257 case TNY_GTK_HEADER_LIST_MODEL_DATE_SENT_COLUMN: 269 258 g_value_init (value, G_TYPE_STRING); 270 rdate = _get_readable_date (tny_header_get_date_sent ( header));259 rdate = _get_readable_date (tny_header_get_date_sent ((TnyHeader*) list_model->items->pdata[i])); 271 260 if (rdate) 272 261 g_value_set_string (value, rdate); … … 276 265 case TNY_GTK_HEADER_LIST_MODEL_DATE_RECEIVED_COLUMN: 277 266 g_value_init (value, G_TYPE_STRING); 278 rdate = _get_readable_date (tny_header_get_date_received ( header));267 rdate = _get_readable_date (tny_header_get_date_received ((TnyHeader*) list_model->items->pdata[i])); 279 268 if (rdate) 280 269 g_value_set_string (value, rdate); … … 285 274 g_value_init (value, G_TYPE_INT); 286 275 g_value_set_int (value, 287 tny_header_get_date_sent ( header));276 tny_header_get_date_sent ((TnyHeader*) list_model->items->pdata[i])); 288 277 break; 289 278 case TNY_GTK_HEADER_LIST_MODEL_DATE_RECEIVED_TIME_T_COLUMN: 290 279 g_value_init (value, G_TYPE_INT); 291 280 g_value_set_int (value, 292 tny_header_get_date_received ( header));281 tny_header_get_date_received ((TnyHeader*) list_model->items->pdata[i])); 293 282 break; 294 283 295 284 case TNY_GTK_HEADER_LIST_MODEL_MESSAGE_SIZE_COLUMN: 296 285 g_value_init (value, G_TYPE_INT); 297 g_value_set_int (value, tny_header_get_message_size( header));286 g_value_set_int (value, tny_header_get_message_size((TnyHeader*) list_model->items->pdata[i])); 298 287 break; 299 288 case TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN: 300 289 g_value_init (value, G_TYPE_OBJECT); 301 g_value_set_object (value, header);290 g_value_set_object (value, (TnyHeader*) list_model->items->pdata[i]); 302 291 break; 303 292 case TNY_GTK_HEADER_LIST_MODEL_TO_COLUMN: 304 293 g_value_init (value, G_TYPE_STRING); 305 str = tny_header_get_to ( header);294 str = tny_header_get_to ((TnyHeader*) list_model->items->pdata[i]); 306 295 if (str) 307 296 g_value_set_string (value, str); … … 309 298 case TNY_GTK_HEADER_LIST_MODEL_SUBJECT_COLUMN: 310 299 g_value_init (value, G_TYPE_STRING); 311 str = tny_header_get_subject ( header);300 str = tny_header_get_subject ((TnyHeader*) list_model->items->pdata[i]); 312 301 if (str) 313 302 g_value_set_string (value, str); … … 315 304 case TNY_GTK_HEADER_LIST_MODEL_FROM_COLUMN: 316 305 g_value_init (value, G_TYPE_STRING); 317 str = tny_header_get_from ( header);306 str = tny_header_get_from ((TnyHeader*) list_model->items->pdata[i]); 318 307 if (str) 319 308 g_value_set_string (value, str); … … 321 310 case TNY_GTK_HEADER_LIST_MODEL_FLAGS_COLUMN: 322 311 g_value_init (value, G_TYPE_INT); 323 g_value_set_int (value, tny_header_get_flags ( header));312 g_value_set_int (value, tny_header_get_flags ((TnyHeader*) list_model->items->pdata[i])); 324 313 break; 325 314 default:
