Changeset 2333

Show
Ignore:
Timestamp:
07/01/07 19:11:14
Author:
pvanhoof
Message:

Fixed a bunch of things

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r2328 r2333  
     12007-07-01  Philip Van Hoof  <pvanhoof@gnome.org> 
     2 
     3        * Fixed/updated the Python bindings 
     4        * Fixed the gtk-doc API documentation genation process 
     5        * Updated the online gtk-doc API documentation 
     6        * Prepared a testing QEmu virtual machine 
     7 
    182007-06-29  Murray Cumming  <murrayc@murrayc.com> 
    29 
  • trunk/bindings/python/Makefile.am

    r1875 r2333  
    8383 
    8484# To update: 
    85 # ls DIR/*h | grep -v \\-priv | sed s/^/\\t\$\(top_srcdir\)\\//g | sed s/$/\\t\\\\/g 
     85# ls libtinymail/*h | grep -v \\-priv | sed s/^/\\t\$\(top_srcdir\)\\//g | sed s/$/\\\ \\\\/g 
     86# ls libtinymail/*h | grep -v \\-priv | sed s/^/\\$\(top_srcdir\)\\//g | sed s/$/\\\ \\\\/g 
    8687 
    8788tinymail_h_files = \ 
    88         $(top_srcdir)/libtinymail/tny-error.h \ 
    8989        $(top_srcdir)/libtinymail/tny-account.h \ 
    9090        $(top_srcdir)/libtinymail/tny-account-store.h \ 
     91        $(top_srcdir)/libtinymail/tny-combined-account.h \ 
    9192        $(top_srcdir)/libtinymail/tny-device.h \ 
     93        $(top_srcdir)/libtinymail/tny-enums.h \ 
     94        $(top_srcdir)/libtinymail/tny-error.h \ 
     95        $(top_srcdir)/libtinymail/tny-folder-change.h \ 
     96        $(top_srcdir)/libtinymail/tny-folder.h \ 
     97        $(top_srcdir)/libtinymail/tny-folder-monitor.h \ 
     98        $(top_srcdir)/libtinymail/tny-folder-observer.h \ 
     99        $(top_srcdir)/libtinymail/tny-folder-stats.h \ 
     100        $(top_srcdir)/libtinymail/tny-folder-store-change.h \ 
     101        $(top_srcdir)/libtinymail/tny-folder-store.h \ 
     102        $(top_srcdir)/libtinymail/tny-folder-store-observer.h \ 
    92103        $(top_srcdir)/libtinymail/tny-folder-store-query.h \ 
    93         $(top_srcdir)/libtinymail/tny-folder-store.h \ 
    94         $(top_srcdir)/libtinymail/tny-folder.h \ 
    95104        $(top_srcdir)/libtinymail/tny-fs-stream.h \ 
    96105        $(top_srcdir)/libtinymail/tny-header.h \ 
    97106        $(top_srcdir)/libtinymail/tny-iterator.h \ 
    98107        $(top_srcdir)/libtinymail/tny-list.h \ 
     108        $(top_srcdir)/libtinymail/tny-lockable.h \ 
     109        $(top_srcdir)/libtinymail/tny-merge-folder.h \ 
    99110        $(top_srcdir)/libtinymail/tny-mime-part.h \ 
    100111        $(top_srcdir)/libtinymail/tny-msg.h \ 
     112        $(top_srcdir)/libtinymail/tny-msg-receive-strategy.h \ 
     113        $(top_srcdir)/libtinymail/tny-msg-remove-strategy.h \ 
     114        $(top_srcdir)/libtinymail/tny-noop-lockable.h \ 
     115        $(top_srcdir)/libtinymail/tny-pair.h \ 
     116        $(top_srcdir)/libtinymail/tny-password-getter.h \ 
     117        $(top_srcdir)/libtinymail/tny-send-queue.h \ 
    101118        $(top_srcdir)/libtinymail/tny-shared.h \ 
     119        $(top_srcdir)/libtinymail/tny-signals-marshal.h \ 
    102120        $(top_srcdir)/libtinymail/tny-simple-list.h \ 
     121        $(top_srcdir)/libtinymail/tny-status.h \ 
    103122        $(top_srcdir)/libtinymail/tny-store-account.h \ 
    104123        $(top_srcdir)/libtinymail/tny-stream.h \ 
    105         $(top_srcdir)/libtinymail/tny-transport-account.h \ 
    106         $(top_srcdir)/libtinymail/tny-msg-remove-strategy.h \ 
    107         $(top_srcdir)/libtinymail/tny-msg-receive-strategy.h \ 
    108         $(top_srcdir)/libtinymail/tny-send-queue.h \ 
    109         $(top_srcdir)/libtinymail/tny-pair.h \ 
    110         $(top_srcdir)/libtinymail/tny-lockable.h \ 
    111         $(top_srcdir)/libtinymail/tny-noop-lockable.h \ 
    112         $(top_srcdir)/libtinymail/tny-folder-change.h \ 
    113         $(top_srcdir)/libtinymail/tny-folder-observer.h \ 
    114         $(top_srcdir)/libtinymail/tny-folder-monitor.h \ 
    115         $(top_srcdir)/libtinymail/tny-folder-store-observer.h \ 
    116         $(top_srcdir)/libtinymail/tny-folder-store-change.h \ 
    117         $(top_srcdir)/libtinymail/tny-folder-stats.h \ 
    118         $(top_srcdir)/libtinymail/tny-password-getter.h \ 
    119         $(top_srcdir)/libtinymail/tny-merge-folder.h \ 
    120         $(top_srcdir)/libtinymail/tny-combined-account.h 
     124        $(top_srcdir)/libtinymail/tny-transport-account.h 
     125 
    121126 
    122127tinymail.defs: $(tinymail_h_files) tinymail.defs.extra $(top_srcdir)/bindings/python/filter.py  
     
    132137        $(top_srcdir)/libtinymailui/tny-account-store-view.h \ 
    133138        $(top_srcdir)/libtinymailui/tny-header-view.h \ 
     139        $(top_srcdir)/libtinymailui/tny-mime-part-saver.h \ 
    134140        $(top_srcdir)/libtinymailui/tny-mime-part-save-strategy.h \ 
    135         $(top_srcdir)/libtinymailui/tny-mime-part-saver.h \ 
    136141        $(top_srcdir)/libtinymailui/tny-mime-part-view.h \ 
    137142        $(top_srcdir)/libtinymailui/tny-msg-view.h \ 
     
    152157tinymailui_gtk_h_files = \ 
    153158        $(top_srcdir)/libtinymailui-gtk/tny-gtk-account-list-model.h \ 
    154         $(top_srcdir)/libtinymailui-gtk/tny-gtk-folder-store-tree-model.h \ 
    155159        $(top_srcdir)/libtinymailui-gtk/tny-gtk-attach-list-model.h \ 
    156160        $(top_srcdir)/libtinymailui-gtk/tny-gtk-attachment-mime-part-view.h \ 
     161        $(top_srcdir)/libtinymailui-gtk/tny-gtk-enums.h \ 
     162        $(top_srcdir)/libtinymailui-gtk/tny-gtk-folder-store-tree-model.h \ 
    157163        $(top_srcdir)/libtinymailui-gtk/tny-gtk-header-list-model.h \ 
    158164        $(top_srcdir)/libtinymailui-gtk/tny-gtk-header-view.h \ 
     165        $(top_srcdir)/libtinymailui-gtk/tny-gtk-lockable.h \ 
    159166        $(top_srcdir)/libtinymailui-gtk/tny-gtk-mime-part-save-strategy.h \ 
    160167        $(top_srcdir)/libtinymailui-gtk/tny-gtk-msg-view.h \ 
    161168        $(top_srcdir)/libtinymailui-gtk/tny-gtk-msg-window.h \ 
     169        $(top_srcdir)/libtinymailui-gtk/tny-gtk-password-dialog.h \ 
    162170        $(top_srcdir)/libtinymailui-gtk/tny-gtk-text-buffer-stream.h \ 
    163         $(top_srcdir)/libtinymailui-gtk/tny-gtk-text-mime-part-view.h \ 
    164         $(top_srcdir)/libtinymailui-gtk/tny-gtk-lockable.h 
     171        $(top_srcdir)/libtinymailui-gtk/tny-gtk-text-mime-part-view.h 
    165172 
    166173tinymailui-gtk.defs: $(tinymailui_gtk_h_files) tinymailui-gtk.defs.extra $(top_srcdir)/bindings/python/filter.py 
     
    188195        $(top_srcdir)/libtinymail-camel/tny-camel-account.h \ 
    189196        $(top_srcdir)/libtinymail-camel/tny-camel-folder.h \ 
     197        $(top_srcdir)/libtinymail-camel/tny-camel-full-msg-receive-strategy.h \ 
    190198        $(top_srcdir)/libtinymail-camel/tny-camel-header.h \ 
    191199        $(top_srcdir)/libtinymail-camel/tny-camel-imap-folder.h \ 
    192200        $(top_srcdir)/libtinymail-camel/tny-camel-imap-store-account.h \ 
     201        $(top_srcdir)/libtinymail-camel/tny-camel-mem-stream.h \ 
    193202        $(top_srcdir)/libtinymail-camel/tny-camel-mime-part.h \ 
    194203        $(top_srcdir)/libtinymail-camel/tny-camel-msg.h \ 
    195204        $(top_srcdir)/libtinymail-camel/tny-camel-msg-remove-strategy.h \ 
    196         $(top_srcdir)/libtinymail-camel/tny-camel-full-msg-receive-strategy.h \ 
    197         $(top_srcdir)/libtinymail-camel/tny-camel-partial-msg-receive-strategy.h \ 
    198205        $(top_srcdir)/libtinymail-camel/tny-camel-nntp-folder.h \ 
    199206        $(top_srcdir)/libtinymail-camel/tny-camel-nntp-store-account.h \ 
     207        $(top_srcdir)/libtinymail-camel/tny-camel-partial-msg-receive-strategy.h \ 
    200208        $(top_srcdir)/libtinymail-camel/tny-camel-pop-folder.h \ 
     209        $(top_srcdir)/libtinymail-camel/tny-camel-pop-remote-msg-remove-strategy.h \ 
    201210        $(top_srcdir)/libtinymail-camel/tny-camel-pop-store-account.h \ 
    202211        $(top_srcdir)/libtinymail-camel/tny-camel-send-queue.h \ 
     
    205214        $(top_srcdir)/libtinymail-camel/tny-camel-stream.h \ 
    206215        $(top_srcdir)/libtinymail-camel/tny-camel-transport-account.h \ 
    207         $(top_srcdir)/libtinymail-camel/tny-camel-mem-stream.h 
     216        $(top_srcdir)/libtinymail-camel/tny-session-camel.h \ 
     217        $(top_srcdir)/libtinymail-camel/tny-stream-camel.h 
     218 
    208219 
    209220tinymail-camel.defs : $(tinymail_camel_h_files) tinymail-camel.defs.extra $(top_srcdir)/bindings/python/filter.py 
  • trunk/bindings/python/tinymail-platform.override

    r1005 r2333  
    4747import tinymail.Device as PyTnyDevice_Type 
    4848import tinymail.AccountStore as PyTnyAccountStore_Type 
     49import tinymail.StoreAccount as PyTnyStoreAccount_Type 
     50import tinymail.TransportAccount as PyTnyTransportAccount_Type 
     51 
  • trunk/bindings/python/tinymail.override

    r1875 r2333  
    5252import gobject.GObject as PyGObject_Type 
    5353%% 
    54 override tny_folder_store_get_folders_async kwargs 
    55  
    56 static void 
    57 tny_get_folders_cb (TnyFolderStore *self, TnyList *list, GError **err, gpointer user_data) 
    58 { 
    59     PyObject *callback, *args, *ret; 
    60     PyGILState_STATE state; 
    61  
    62     state = pyg_gil_state_ensure(); 
    63     callback = PyTuple_GetItem((PyObject *)user_data, 0); 
    64     args = Py_BuildValue("(NNO)", 
    65                          pygobject_new((GObject *)self), 
    66                          pygobject_new((GObject *)list), 
    67                          PyTuple_GetItem((PyObject *)user_data, 1)); 
    68     ret = PyObject_CallObject(callback, args); 
    69     if (!ret) 
    70         PyErr_Print(); 
    71  
    72     pyg_error_check(err); 
    73  
    74     Py_XDECREF(ret); 
    75     Py_DECREF(args); 
    76     Py_DECREF ((PyObject *)user_data); 
    77     pyg_gil_state_release(state); 
    78 } 
    79  
    80  
    81 static PyObject * 
    82 _wrap_tny_folder_store_get_folders_async (PyGObject *self, PyObject *args, PyObject *kwargs) 
    83 { 
    84     static char *kwlist[] = { "list", "get_folders_func", "query", "user_data", NULL }; 
    85     PyObject *get_folders_func = Py_None, *user_data = Py_None; 
    86     PyGObject *list = NULL, *query = NULL; 
    87     PyObject *data; 
    88  
    89     if (!PyArg_ParseTupleAndKeywords(args, kwargs, 
    90                                      "OO|OO:TnyFolderStore.get_folders_async", kwlist, 
    91                                      &list, &get_folders_func, &query, &user_data)) 
    92         return NULL; 
    93  
    94     if (!PyCallable_Check(get_folders_func)) { 
    95         PyErr_SetString(PyExc_TypeError, "get_folders_async must be callable"); 
    96         return NULL; 
    97     } 
    98    
    99     data = Py_BuildValue("(OO)", get_folders_func, user_data); 
    100  
    101     tny_folder_store_get_folders_async (TNY_FOLDER_STORE (self->obj), 
    102                                         TNY_LIST (list->obj), 
    103                                         tny_get_folders_cb,  
    104                                         query!=NULL?TNY_FOLDER_STORE_QUERY (query->obj):NULL,  
    105                                         data); 
    106     return Py_None; 
    107 } 
    108 %% 
    10954override tny_folder_get_msg_async kwargs 
    11055 
     
    11964    args = Py_BuildValue("(NNO)", 
    12065                         pygobject_new((GObject *)self), 
    121                                                 pygobject_new((GObject *)msg), 
    122                          PyTuple_GetItem((PyObject *)user_data, 2)); 
     66                        pygobject_new((GObject *)msg), 
     67                         PyTuple_GetItem((PyObject *)user_data, 3)); 
    12368    ret = PyObject_CallObject(callback, args); 
    12469    if (!ret) 
     
    12974    Py_DECREF(args); 
    13075    Py_DECREF ((PyObject *)user_data); 
     76    pyg_gil_state_release(state); 
     77} 
     78 
     79 
     80static void 
     81tny_get_msg_status_cb (TnyFolder *self, TnyStatus *status, gpointer user_data) 
     82{ 
     83    PyObject *callback, *args, *ret; 
     84    PyGILState_STATE state; 
     85 
     86    state = pyg_gil_state_ensure(); 
     87    callback = PyTuple_GetItem((PyObject *)user_data, 2); 
     88    args = Py_BuildValue("(NsiiO)", 
     89                         pygobject_new((GObject *)self), 
     90                         status->message, status->position, status->of_total, 
     91                         PyTuple_GetItem((PyObject *)user_data, 3)); 
     92    ret = PyObject_CallObject(callback, args); 
     93    if (!ret) 
     94        PyErr_Print(); 
     95    Py_XDECREF(ret); 
     96    Py_DECREF(args); 
    13197    pyg_gil_state_release(state); 
    13298} 
     
    135101_wrap_tny_folder_get_msg_async (PyGObject *self, PyObject *args, PyObject *kwargs) 
    136102{ 
    137     static char *kwlist[] = { "header", "get_msg_func", "user_data", NULL }; 
    138     PyObject *get_msg_func, *user_data = Py_None; 
     103    static char *kwlist[] = { "header", "get_msg_func", "get_msg_status_func", "user_data", NULL }; 
     104    PyObject *get_msg_func, *get_msg_status_func, *user_data = Py_None; 
    139105    TnyHeader *header; 
    140106    PyObject *data; 
     
    149115    } 
    150116 
    151     data = Py_BuildValue("(OOO)", header, get_msg_func, user_data); 
     117    data = Py_BuildValue("(OOOO)", header, get_msg_func,  
     118                get_msg_status_func, user_data); 
    152119 
    153120    tny_folder_get_msg_async (TNY_FOLDER (self->obj), header, 
    154                                       tny_get_msg_cb, data); 
     121                        tny_get_msg_cb, 
     122                        tny_get_msg_status_cb, data); 
     123 
    155124    return Py_None; 
    156125} 
     
    184153 
    185154static void 
    186 tny_refresh_folder_status_cb (TnyFolder *self, const gchar *what, gint status, gint oftotal, gpointer user_data) 
     155tny_refresh_folder_status_cb (TnyFolder *self, TnyStatus *status, gpointer user_data) 
    187156{ 
    188157    PyObject *callback, *args, *ret; 
     
    193162    args = Py_BuildValue("(NsiiO)", 
    194163                         pygobject_new((GObject *)self), 
    195                          what, status, oftotal, 
     164                         status->message, status->position, status->of_total, 
    196165                         PyTuple_GetItem((PyObject *)user_data, 2)); 
    197166    ret = PyObject_CallObject(callback, args); 
     
    229198 
    230199    tny_folder_refresh_async (TNY_FOLDER (self->obj), 
    231                                       tny_refresh_folder_cb, tny_refresh_folder_status_cb, 
     200                                      tny_refresh_folder_cb,  
     201                                      tny_refresh_folder_status_cb, 
    232202                                      data); 
    233203    return Py_None; 
  • trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-store.c

    r2298 r2333  
    743743        gboolean clean_quit = TRUE; 
    744744        char *buf; 
    745         gboolean not_ssl = TRUE
     745        gboolean not_ssl = TRUE, no_binary=FALSE, no_uidplus=FALSE
    746746 
    747747        memset (&sockopt, 0, sizeof (CamelSockOptData)); 
     
    844844        } 
    845845 
     846        /* Kolumbus requires part numbers in BINARY.PEEK, which is their mis - 
     847         * interpretation of BINARY imo, so we just ignore its BINARY support.  
     848         * The server also claims to support UIDPLUS, but doesn't */ 
     849 
     850        if (strstr (buf, "kolumbus")) { 
     851                no_uidplus = TRUE; 
     852                no_binary = TRUE; 
     853        } 
     854 
    846855        /* Tinymail hack: always use IMAP4, not IMAP4rev1 (sorry) */ 
    847856        /* force_imap4 = TRUE; */ 
     
    859868                goto exception; 
    860869        } 
     870 
     871        if (no_binary) 
     872                store->capabilities &= ~IMAP_CAPABILITY_BINARY; 
     873        if (no_uidplus) 
     874                store->capabilities &= ~IMAP_CAPABILITY_UIDPLUS; 
    861875 
    862876        if (must_tls && !(store->capabilities & IMAP_CAPABILITY_STARTTLS)) 
     
    937951                goto exception; 
    938952        } 
     953 
     954        if (no_binary) 
     955                store->capabilities &= ~IMAP_CAPABILITY_BINARY; 
     956        if (no_uidplus) 
     957                store->capabilities &= ~IMAP_CAPABILITY_UIDPLUS; 
    939958 
    940959        if (store->capabilities & IMAP_CAPABILITY_LOGINDISABLED ) {  
  • trunk/libtinymail-camel/tny-camel-folder.c

    r2327 r2333  
    25572557        priv_src->handle_changes = FALSE; 
    25582558        priv_dst->handle_changes = FALSE; 
     2559         
     2560        camel_folder_freeze (cfol_src); 
     2561        camel_folder_freeze (cfol_dst); 
    25592562        camel_folder_transfer_messages_to (cfol_src, uids, cfol_dst,  
    25602563                        &transferred_uids, delete_originals, &ex); 
     2564        if (delete_originals && uids) { 
     2565                int i; 
     2566                for (i = 0; i < uids->len; i++) 
     2567                        camel_folder_set_message_flags (cfol_src, uids->pdata[i], 
     2568                                CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_SEEN); 
     2569        } 
     2570        camel_folder_thaw (cfol_src); 
     2571        camel_folder_thaw (cfol_dst); 
     2572        camel_folder_sync (cfol_dst, FALSE, NULL); 
     2573 
    25612574        priv_src->handle_changes = TRUE; 
    25622575        priv_dst->handle_changes = TRUE;