Changeset 3295
- Timestamp:
- 01/26/08 13:15:20
- Files:
-
- trunk/ChangeLog (modified) (2 diffs)
- trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-folder.c (modified) (2 diffs)
- trunk/libtinymail-camel/tny-camel-send-queue.c (modified) (3 diffs)
- trunk/libtinymail-camel/tny-camel-send-queue.h (modified) (2 diffs)
- trunk/libtinymail/Makefile.am (modified) (1 diff)
- trunk/libtinymail/tny-common-priv.h (modified) (1 diff)
- trunk/libtinymail/tny-expunged-header.c (added)
- trunk/libtinymailui-gtk/tny-gtk-header-list-model.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ChangeLog
r3294 r3295 1 2008-01-26 Philip Van Hoof <pvanhoof@gnome.org> 2 3 * Workaround for a known problem that ain't easy to solve right now: 4 expunged headers stay around for too long. When this is detected, a 5 dummy header is returned (with as flags TNY_HEADER_FLAG_EXPUNGED) 6 * Finished Sergio's API change 7 8 * This was a major API change 9 1 10 2008-01-25 Philip Van Hoof <pvanhoof@gnome.org> 2 11 … … 28 37 (thread_main): added the "queue-start" and "queue-stop" signals that 29 38 are emitted before and after the queue processes the messages 39 40 * This was a major API change 30 41 31 42 2008-01-22 Philip Van Hoof <pvanhoof@gnome.org> trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-folder.c
r3294 r3295 1275 1275 camel_operation_end (NULL); 1276 1276 1277 if (type == CAMEL_IMAP_RESPONSE_ERROR) 1278 { 1277 if (type == CAMEL_IMAP_RESPONSE_ERROR) { 1279 1278 for (i = 0; i < summary_len && new[i].uid; i++) 1280 1279 g_free (new[i].uid); … … 1357 1356 } 1358 1357 1359 if (changes) 1360 { 1358 if (changes) { 1361 1359 camel_object_trigger_event(CAMEL_OBJECT (folder), "folder_changed", changes); 1362 1360 camel_folder_change_info_free(changes); trunk/libtinymail-camel/tny-camel-send-queue.c
r3293 r3295 294 294 if (apriv) 295 295 tny_lockable_lock (apriv->session->priv->ui_lock); 296 g_signal_emit (info->self, tny_send_queue_signals [info->signal_id], 0); 296 g_signal_emit (info->self, tny_send_queue_signals [info->signal_id], 0); 297 297 if (apriv) 298 298 tny_lockable_unlock (apriv->session->priv->ui_lock); 299 299 300 return NULL;300 return FALSE; 301 301 } 302 302 … … 752 752 753 753 754 void755 tny_camel_send_queue_add_async (Tny CamelSendQueue *self, TnyMsg *msg, TnySendQueueAddCallback callback, TnyStatusCallback status_callback, gpointer user_data)754 static void 755 tny_camel_send_queue_add_async (TnySendQueue *self, TnyMsg *msg, TnySendQueueAddCallback callback, TnyStatusCallback status_callback, gpointer user_data) 756 756 { 757 757 TNY_CAMEL_SEND_QUEUE_GET_CLASS (self)->add_async_func (self, msg, callback, status_callback, user_data); … … 760 760 761 761 static void 762 tny_camel_send_queue_add_async_default (Tny CamelSendQueue *self, TnyMsg *msg, TnySendQueueAddCallback callback, TnyStatusCallback status_callback, gpointer user_data)762 tny_camel_send_queue_add_async_default (TnySendQueue *self, TnyMsg *msg, TnySendQueueAddCallback callback, TnyStatusCallback status_callback, gpointer user_data) 763 763 { 764 764 TnyCamelSendQueuePriv *priv = TNY_CAMEL_SEND_QUEUE_GET_PRIVATE (self); trunk/libtinymail-camel/tny-camel-send-queue.h
r3283 r3295 54 54 TnyFolder* (*get_outbox_func) (TnySendQueue *self); 55 55 void (*cancel_func) (TnySendQueue *self, TnySendQueueCancelAction cancel_action, GError **err); 56 57 void (*add_async_func) (TnyCamelSendQueue *self, TnyMsg *msg, TnySendQueueAddCallback callback, TnyStatusCallback status_callback, gpointer user_data); 56 void (*add_async_func) (TnySendQueue *self, TnyMsg *msg, TnySendQueueAddCallback callback, TnyStatusCallback status_callback, gpointer user_data); 58 57 }; 59 58 … … 69 68 TnyCamelTransportAccount *trans_account); 70 69 71 void tny_camel_send_queue_add_async (TnyCamelSendQueue *self, TnyMsg *msg, TnySendQueueAddCallback callback, TnyStatusCallback status_callback, gpointer user_data);72 70 73 71 G_END_DECLS trunk/libtinymail/Makefile.am
r3125 r3295 50 50 tny-merge-folder.h \ 51 51 tny-combined-account.h \ 52 tny-connection-policy.h 52 tny-connection-policy.h 53 53 54 54 libtinymail_1_0_la_SOURCES = \ 55 55 $(libtinymail_1_0_headers) \ 56 tny-expunged-header.c \ 56 57 tny-signals-marshal.c \ 57 58 tny-error.c \ trunk/libtinymail/tny-common-priv.h
r2825 r3295 48 48 gboolean tny_idle_stopper_is_stopped (TnyIdleStopper* stopper); 49 49 50 51 52 53 54 #define TNY_TYPE_EXPUNGED_HEADER (tny_expunged_header_get_type ()) 55 #define TNY_EXPUNGED_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TNY_TYPE_EXPUNGED_HEADER, TnyExpungedHeader)) 56 #define TNY_EXPUNGED_HEADER_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), TNY_TYPE_EXPUNGED_HEADER, TnyExpungedHeaderClass)) 57 #define TNY_IS_EXPUNGED_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TNY_TYPE_EXPUNGED_HEADER)) 58 #define TNY_IS_EXPUNGED_HEADER_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), TNY_TYPE_EXPUNGED_HEADER)) 59 #define TNY_EXPUNGED_HEADER_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), TNY_TYPE_EXPUNGED_HEADER, TnyExpungedHeaderClass)) 60 61 typedef struct _TnyExpungedHeader TnyExpungedHeader; 62 typedef struct _TnyExpungedHeaderClass TnyExpungedHeaderClass; 63 64 struct _TnyExpungedHeader { 65 GObject parent; 66 }; 67 68 struct _TnyExpungedHeaderClass { 69 GObjectClass parent; 70 }; 71 72 GType tny_expunged_header_get_type (void); 73 TnyHeader* tny_expunged_header_new (void); 74 75 50 76 G_END_DECLS 51 77 trunk/libtinymailui-gtk/tny-gtk-header-list-model.c
r3223 r3295 58 58 59 59 #include "tny-gtk-header-list-iterator-priv.h" 60 61 #define TINYMAIL_ENABLE_PRIVATE_API 62 #include "tny-common-priv.h" 63 #undef TINYMAIL_ENABLE_PRIVATE_API 60 64 61 65 … … 301 305 } 302 306 307 308 static void 309 set_dummy (gint column, GValue *value) 310 { 311 switch (column) 312 { 313 case TNY_GTK_HEADER_LIST_MODEL_TO_COLUMN: 314 case TNY_GTK_HEADER_LIST_MODEL_SUBJECT_COLUMN: 315 case TNY_GTK_HEADER_LIST_MODEL_FROM_COLUMN: 316 case TNY_GTK_HEADER_LIST_MODEL_DATE_RECEIVED_COLUMN: 317 case TNY_GTK_HEADER_LIST_MODEL_DATE_SENT_COLUMN: 318 case TNY_GTK_HEADER_LIST_MODEL_CC_COLUMN: 319 g_value_init (value, G_TYPE_STRING); 320 g_value_set_string (value, "Expunged"); 321 break; 322 case TNY_GTK_HEADER_LIST_MODEL_DATE_SENT_TIME_T_COLUMN: 323 case TNY_GTK_HEADER_LIST_MODEL_DATE_RECEIVED_TIME_T_COLUMN: 324 case TNY_GTK_HEADER_LIST_MODEL_MESSAGE_SIZE_COLUMN: 325 g_value_init (value, G_TYPE_INT); 326 g_value_set_int (value, -1); 327 break; 328 case TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN: { 329 static TnyHeader *header = NULL; 330 if (!header) 331 header = tny_expunged_header_new (); 332 g_value_init (value, G_TYPE_OBJECT); 333 g_value_set_object (value, header); 334 } break; 335 case TNY_GTK_HEADER_LIST_MODEL_FLAGS_COLUMN: 336 g_value_init (value, G_TYPE_INT); 337 g_value_set_int (value, TNY_HEADER_FLAG_EXPUNGED); 338 break; 339 default: 340 break; 341 } 342 } 343 303 344 static void 304 345 tny_gtk_header_list_model_get_value (GtkTreeModel *self, GtkTreeIter *iter, gint column, GValue *value) … … 310 351 gint i; 311 352 312 if (iter->stamp != priv->stamp) 353 if (iter->stamp != priv->stamp) { 354 g_warning ("GtkTreeModel in invalid state\n"); 355 set_dummy (column, value); 313 356 return; 357 } 314 358 315 359 g_static_rec_mutex_lock (priv->iterator_lock); … … 326 370 if (i < 0 || i >= priv->items->len) 327 371 { 372 set_dummy (column, value); 328 373 g_warning ("GtkTreeModel in invalid state\n"); 329 374 g_static_rec_mutex_unlock (priv->iterator_lock); … … 331 376 } 332 377 333 if (priv->items->pdata[i] == NULL) 378 if (priv->items->pdata[i] == NULL) { 379 g_warning ("GtkTreeModel in invalid state\n"); 380 set_dummy (column, value); 334 381 return; 382 } 383 384 if (!TNY_IS_HEADER (priv->items->pdata[i])) { 385 g_warning ("GtkTreeModel in invalid state\n"); 386 set_dummy (column, value); 387 return; 388 } 335 389 336 390 switch (column)
