Changeset 3138

Show
Ignore:
Timestamp:
12/15/07 19:44:22
Author:
pvanhoof
Message:
        • Fixed folder subscriptions and queries
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r3135 r3138  
    33        * Fixed some thread-unsafe code in TnyCamelSendQueue 
    44        * Use PR_Shutdown to cut an SSL connection 
     5        * Fixed folder subscriptions and queries 
    56 
    672007-12-14  Philip Van Hoof <pvanhoof@gnome.org> 
  • trunk/libtinymail-camel/tny-camel-common.c

    r2969 r3138  
    9494{ 
    9595        gboolean retval = FALSE; 
    96  
    97         if (query && (tny_list_get_length (tny_folder_store_query_get_items (query)) > 0)) 
    98         { 
     96        TnyList *items; 
     97 
     98        if (!query) 
     99                return TRUE; 
     100 
     101        items = tny_folder_store_query_get_items (query); 
     102 
     103        if (query && (tny_list_get_length (items) > 0)) { 
    99104                /* TNY TODO: Make this cope with AND constructs */ 
    100                 TnyList *items = tny_folder_store_query_get_items (query); 
    101105                TnyIterator *iterator; 
    102106                iterator = tny_list_create_iterator (items); 
     
    162166                  
    163167                g_object_unref (iterator); 
    164                 g_object_unref (items); 
    165168        } else 
    166169                retval = TRUE; 
     170 
     171        g_object_unref (items); 
    167172 
    168173        return retval; 
  • trunk/libtinymail-camel/tny-camel-folder.c

    r3125 r3138  
    48274827        g_object_unref (info->list); 
    48284828 
     4829        if (info->query) 
     4830                g_object_unref (G_OBJECT (info->query)); 
     4831 
    48294832        if (info->err) 
    48304833                g_error_free (info->err); 
     
    48614864                        info->cancelled = TRUE; 
    48624865        } 
    4863  
    4864         if (info->query) 
    4865                 g_object_unref (G_OBJECT (info->query)); 
    48664866 
    48674867        return NULL; 
  • trunk/libtinymail-camel/tny-camel-store-account.c

    r3125 r3138  
    14391439        g_object_unref (info->list); 
    14401440 
     1441        if (info->query) 
     1442                g_object_unref (info->query); 
     1443 
    14411444        if (info->err) 
    14421445                g_error_free (info->err); 
     
    14711474                        info->cancelled = TRUE; 
    14721475        } 
    1473  
    1474         if (info->query) 
    1475                 g_object_unref (G_OBJECT (info->query)); 
    14761476 
    14771477        return NULL; 
  • trunk/libtinymail/tny-folder-store-query.c

    r2825 r3138  
    245245{ 
    246246        gint er=0; 
    247         gboolean addit=pattern?TRUE:FALSE; 
     247        gboolean addit=TRUE; 
    248248        regex_t *regex = NULL; 
    249249        gboolean has_regex = FALSE; 
    250250 
    251         if (addit && (options & TNY_FOLDER_STORE_QUERY_OPTION_PATTERN_IS_REGEX))  
     251        if (pattern && (options & TNY_FOLDER_STORE_QUERY_OPTION_PATTERN_IS_REGEX))  
    252252        { 
    253253                regex = g_new0 (regex_t, 1); 
     
    269269 
    270270                add->options = options; 
    271                 add->pattern = g_strdup (pattern); 
     271                if (pattern) 
     272                        add->pattern = g_strdup (pattern); 
     273                else 
     274                        add->pattern = FALSE; 
    272275 
    273276                if (has_regex) 
  • trunk/libtinymail/tny-folder-store.h

    r3097 r3138  
    4444struct _TnyFolderStoreIface 
    4545{ 
    46    GTypeInterface parent; 
     46       GTypeInterface parent; 
    4747 
    48    void (*remove_folder_func) (TnyFolderStore *self, TnyFolder *folder, GError **err); 
    49    TnyFolder* (*create_folder_func) (TnyFolderStore *self, const gchar *name, GError **err); 
    50   void (*create_folder_async_func) (TnyFolderStore *self, const gchar *name, TnyCreateFolderCallback callback, TnyStatusCallback status_callback, gpointer user_data); 
    51    void (*get_folders_func) (TnyFolderStore *self, TnyList *list, TnyFolderStoreQuery *query, GError **err); 
     48       void (*remove_folder_func) (TnyFolderStore *self, TnyFolder *folder, GError **err); 
     49       TnyFolder* (*create_folder_func) (TnyFolderStore *self, const gchar *name, GError **err); 
     50       void (*create_folder_async_func) (TnyFolderStore *self, const gchar *name, TnyCreateFolderCallback callback, TnyStatusCallback status_callback, gpointer user_data); 
     51       void (*get_folders_func) (TnyFolderStore *self, TnyList *list, TnyFolderStoreQuery *query, GError **err); 
    5252        void (*get_folders_async_func) (TnyFolderStore *self, TnyList *list, TnyGetFoldersCallback callback, TnyFolderStoreQuery *query, TnyStatusCallback status_callback, gpointer user_data); 
    53    void (*add_observer_func) (TnyFolderStore *self, TnyFolderStoreObserver *observer); 
    54    void (*remove_observer_func) (TnyFolderStore *self, TnyFolderStoreObserver *observer); 
     53       void (*add_observer_func) (TnyFolderStore *self, TnyFolderStoreObserver *observer); 
     54       void (*remove_observer_func) (TnyFolderStore *self, TnyFolderStoreObserver *observer); 
    5555 
    5656}; 
  • trunk/libtinymailui-gtk/tny-gtk-folder-store-tree-model.c

    r3042 r3138  
    320320        list = tny_simple_list_new (); 
    321321        tny_folder_store_get_folders_async (TNY_FOLDER_STORE (account),  
    322                 list, get_folders_cb, NULL, NULL, g_object_ref (self)); 
     322                list, get_folders_cb, self->query, NULL, g_object_ref (self)); 
    323323 
    324324        return; 
     
    457457 
    458458        tny_folder_store_get_folders_async (TNY_FOLDER_STORE (folder_store),  
    459                 folders, get_folders_cb, NULL, NULL, g_object_ref (self)); 
     459                folders, get_folders_cb, self->query, NULL, g_object_ref (self)); 
    460460 
    461461        /* recurse_folders_sync (self, TNY_FOLDER_STORE (folder_store), &name_iter);  */ 
     
    489489 
    490490        if (query)  
    491                 self->query = g_object_ref (G_OBJECT (query)); 
     491                self->query = g_object_ref (query); 
    492492 
    493493        return GTK_TREE_MODEL (self);