[evolution-mapi] Books do not recognize offline usage before being opened



commit 7b3025845f5ea32794101e033b9278cc1ceaf273
Author: Milan Crha <mcrha redhat com>
Date:   Tue Aug 16 17:26:54 2016 +0200

    Books do not recognize offline usage before being opened
    
    The side-effect of this was that the book content was not shown
    after open in the evolution, because the "do-initial-query"
    capability wasn't returned.

 src/addressbook/e-book-backend-mapi.c |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)
---
diff --git a/src/addressbook/e-book-backend-mapi.c b/src/addressbook/e-book-backend-mapi.c
index cbed93c..f5f3cc6 100644
--- a/src/addressbook/e-book-backend-mapi.c
+++ b/src/addressbook/e-book-backend-mapi.c
@@ -51,7 +51,6 @@ struct _EBookBackendMAPIPrivate
        GRecMutex conn_lock;
        EMapiConnection *conn;
        gchar *book_uid;
-       gboolean marked_for_offline;
 
        GThread *update_cache_thread;
        GCancellable *update_cache;
@@ -423,7 +422,7 @@ ebbm_connect_user (EBookBackendMAPI *ebma,
 
                ebbm_notify_connection_status (ebma, TRUE);
 
-               if (!g_cancellable_is_cancelled (cancellable) && priv->marked_for_offline) {
+               if (!g_cancellable_is_cancelled (cancellable) && e_book_backend_mapi_is_marked_for_offline 
(ebma)) {
                        ebbm_maybe_invoke_cache_update (ebma);
                }
        }
@@ -491,16 +490,12 @@ ebbm_open (EBookBackendMAPI *ebma,
 {
        EBookBackendMAPIPrivate *priv = ebma->priv;
        ESource *source = e_backend_get_source (E_BACKEND (ebma));
-       ESourceOffline *offline_extension;
        const gchar *cache_dir;
        GError *error = NULL;
 
        if (e_book_backend_is_opened (E_BOOK_BACKEND (ebma)))
                return;
 
-       offline_extension = e_source_get_extension (source, E_SOURCE_EXTENSION_OFFLINE);
-       priv->marked_for_offline = e_source_offline_get_stay_synchronized (offline_extension);
-
        if (priv->book_uid)
                g_free (priv->book_uid);
        priv->book_uid = e_source_dup_uid (source);
@@ -526,7 +521,7 @@ ebbm_open (EBookBackendMAPI *ebma,
 
        /* Either we are in Online mode or this is marked for offline */
        if (!e_backend_get_online (E_BACKEND (ebma)) &&
-           !priv->marked_for_offline) {
+           !e_book_backend_mapi_is_marked_for_offline (ebma)) {
                g_propagate_error (perror, EDB_ERROR (OFFLINE_UNAVAILABLE));
                return;
        }
@@ -751,7 +746,7 @@ ebbm_book_view_thread (gpointer data)
                if (ebmac && ebmac->op_book_view_thread)
                        ebmac->op_book_view_thread (bvtd->ebma, bvtd->book_view, priv->update_cache, &error);
 
-               if (priv->marked_for_offline) {
+               if (e_book_backend_mapi_is_marked_for_offline (bvtd->ebma)) {
                        e_book_backend_mapi_update_view_by_cache (bvtd->ebma, bvtd->book_view, &error);
 
                        ebbm_maybe_invoke_cache_update (bvtd->ebma);
@@ -1509,10 +1504,17 @@ e_book_backend_mapi_book_view_is_running (EBookBackendMAPI *ebma, EDataBookView
 gboolean
 e_book_backend_mapi_is_marked_for_offline (EBookBackendMAPI *ebma)
 {
+       ESource *source;
+       ESourceOffline *offline_extension;
+
        g_return_val_if_fail (E_IS_BOOK_BACKEND_MAPI (ebma), FALSE);
        g_return_val_if_fail (ebma->priv != NULL, FALSE);
 
-       return ebma->priv->marked_for_offline;
+       source = e_backend_get_source (E_BACKEND (ebma));
+
+       offline_extension = e_source_get_extension (source, E_SOURCE_EXTENSION_OFFLINE);
+
+       return e_source_offline_get_stay_synchronized (offline_extension);
 }
 
 void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]