From a51e884b9a9a349ed272ef3c187a730d4b8c1569 Mon Sep 17 00:00:00 2001 From: Murray Cumming Date: Mon, 23 Jul 2007 18:18:25 +0000 Subject: [PATCH] 2007-07-23 Murray Cumming * src/dbus_api/modest-dbus-callbacks.c: (add_single_folder_to_list): Ignore TnyMergeFolder folders, because their ID is not human-readable (see the comment about improvements needed to the osso-email-interface API) and TnyMergeFolder::get_id_func() currently crashes with DBC enabled. pmo-trunk-r2777 --- ChangeLog2 | 8 ++++++++ src/dbus_api/modest-dbus-callbacks.c | 26 +++++++++++++++----------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/ChangeLog2 b/ChangeLog2 index 7926d61..8622dcb 100644 --- a/ChangeLog2 +++ b/ChangeLog2 @@ -1,5 +1,13 @@ 2007-07-23 Murray Cumming + * src/dbus_api/modest-dbus-callbacks.c: + (add_single_folder_to_list): Ignore TnyMergeFolder folders, + because their ID is not human-readable (see the comment about + improvements needed to the osso-email-interface API) and + TnyMergeFolder::get_id_func() currently crashes with DBC enabled. + +2007-07-23 Murray Cumming + * src/dbus_api/modest-dbus-callbacks.c: (modest_dbus_req_handler), (add_folders_to_list), (on_dbus_method_get_folders), (modest_dbus_req_filter): diff --git a/src/dbus_api/modest-dbus-callbacks.c b/src/dbus_api/modest-dbus-callbacks.c index ff8de9e..33a7e8a 100644 --- a/src/dbus_api/modest-dbus-callbacks.c +++ b/src/dbus_api/modest-dbus-callbacks.c @@ -53,6 +53,7 @@ #include #include #include +#include typedef struct { @@ -1184,6 +1185,20 @@ add_single_folder_to_list (TnyFolder *folder, GList** list) if (!folder) return; + if (TNY_IS_MERGE_FOLDER (folder)) { + /* Ignore these because their IDs ares + * a) not always unique or sensible. + * b) not human-readable, and currently need a human-readable + * ID here, because the osso-email-interface API does not allow + * us to return both an ID and a display name. + * + * This is actually the merged outbox folder. + * We could hack our D-Bus API to understand "outbox" as the merged outboxes, + * but that seems unwise. murrayc. + */ + return; + } + /* Add this folder to the list: */ /* const gchar * folder_name = tny_folder_get_name (folder); @@ -1292,13 +1307,9 @@ on_dbus_method_get_folders (DBusConnection *con, DBusMessage *message) GList *folder_names = NULL; add_folders_to_list (TNY_FOLDER_STORE (account), &folder_names); - printf("DEBUGa0: %s\n", __FUNCTION__); - g_object_unref (account); account = NULL; - printf("DEBUGa1: %s\n", __FUNCTION__); - /* Also add the folders from the local folders account, * because they are (currently) used with all accounts: * TODO: This is not working. It seems to get only the Merged Folder (with an ID of "" (not NULL)). @@ -1311,17 +1322,12 @@ on_dbus_method_get_folders (DBusConnection *con, DBusMessage *message) g_object_unref (account_local); account_local = NULL; - printf("DEBUGa2: %s\n", __FUNCTION__); - /* Put the result in a DBus reply: */ reply = dbus_message_new_method_return (message); get_folders_result_to_message (reply, folder_names); - printf("DEBUGa3: %s\n", __FUNCTION__); - - if (reply == NULL) { g_warning ("%s: Could not create reply.", __FUNCTION__); } @@ -1335,8 +1341,6 @@ on_dbus_method_get_folders (DBusConnection *con, DBusMessage *message) g_list_foreach (folder_names, (GFunc)g_free, NULL); g_list_free (folder_names); - - printf("DEBUGa4: %s\n", __FUNCTION__); } -- 1.7.9.5