Tristan Van Berkom [Fri, 15 Feb 2013 09:02:59 +0000 (18:02 +0900)]
EDataBook / EDataBookView: Added Direct Read Access APIs / support
EDataBook:
Now can be created by the client and offers read only APIs for
reading back contact data directly from a client side instantiated
backend
EDataBookView:
Now use a special "x-evolution-uids-only" fields of interest in order
to reduce D-Bus traffic, this makes it possible for EBookClientView
to fetch contact data directly upon receival of notifications.
Tristan Van Berkom [Fri, 15 Feb 2013 08:54:24 +0000 (17:54 +0900)]
EBookBackend: Added apis for backends to support Direct Read Access
e_book_backend_get_direct_book:
A backend can return an EDataBookDirect from here to indicate
that it supports direct read access, the properties of the EDataBookDirect
are used by the client to access the book directly
e_book_backend_configure_direct:
A backend opened in direct read access mode can be configured with
the string that it's server side counterpart provided, this string
belongs to the backend; for the local file backend it is used as
a path to ensure the same SQLite DB is opened by the client as the
one running in the server.
Tristan Van Berkom [Fri, 15 Feb 2013 08:49:13 +0000 (17:49 +0900)]
Added EDataBookDirect & generated D-Bus counterpart.
The EDataBookDirect is the server side wrapper allowing backends
to report information about thier direct read access support.
Tristan Van Berkom [Fri, 15 Feb 2013 09:46:05 +0000 (18:46 +0900)]
Fixing broken vala makefile.
My last commit pulled back in the ECalendar vala api, which is for
some reason removed in master, fixed this by re-removing it from
the vala Makefile.am.
Tristan Van Berkom [Fri, 15 Feb 2013 08:26:30 +0000 (17:26 +0900)]
Splits libebook into two libraries.
This clears the way for Direct Read Access APIs to be integrated,
since EBookClient now needs to access EDataBook apis, a common
library is needed to share all the addressbook related objects
related to EContact so that it can be used by both the server
side addressbook backends and EDataBook, as well as EBookClient.
Essentially this properly splits things up and avoids a nasty
circular dependency issue.
Tristan Van Berkom [Fri, 15 Feb 2013 08:35:55 +0000 (17:35 +0900)]
Fix EDataBook error conversions to include E_CLIENT_ERROR_OUT_OF_SYNC
This causes the test-client-write-write test to pass again.
Giocanni Campagna [Fri, 15 Feb 2013 02:57:57 +0000 (21:57 -0500)]
Bug 693841 - EDataCal: Complete implementation of GetObjectsList
Clients were left waiting for a response from the backend that would
never happen.
Aurimas Černius [Thu, 14 Feb 2013 21:42:02 +0000 (23:42 +0200)]
Updated Lithuanian translation
Tristan Van Berkom [Thu, 14 Feb 2013 10:18:27 +0000 (19:18 +0900)]
EBookBackendSqliteDB: Remodeled concurrent access.
Now use a more traditional locking with a single mutex held at
every API entry point, this protects a single SQLite connection
from being accessed from multiple thread contexts (even in read mode).
Milan Crha [Wed, 13 Feb 2013 17:41:12 +0000 (18:41 +0100)]
[CalDAV] Try to search for event when not in local cache
CalDAV backend depends on local cache when a client ask for an event,
which is usually fine, but when it comes to a meeting invitations,
with which the server can add event to the calendar on its own,
the invitation might not be found in the cache, thus try whether
it's available on the remote machine, before reporting Object Not Found.
Matthew Barnes [Wed, 13 Feb 2013 12:17:22 +0000 (07:17 -0500)]
EBackend: Avoid breaking libebackend ABI.
This is what the reserved slots in the class struct are for.
Milan Crha [Wed, 13 Feb 2013 08:22:07 +0000 (09:22 +0100)]
Introduce e_backend_is_destination_reachable()
This new function, together with implementation of
e_backend_get_destination_address() on the backend side,
can be used to check whether the backend's destination
is currently reachable. Default implementation reports
backend as always reachable, aka local.
Matthew Barnes [Tue, 12 Feb 2013 23:03:04 +0000 (18:03 -0500)]
Keep e_flag_timed_wait() building.
Milan Crha [Tue, 12 Feb 2013 17:52:43 +0000 (18:52 +0100)]
Fix a gtk-doc build break caused by commit
623eb5fc7dd2b21f
The HTML tags in gtk-doc comments should be properly escaped,
thus gtk-doc doesn't consider them as real HTML tags.
Thanks Fabien (fta) for the notice.
Milan Crha [Tue, 12 Feb 2013 13:57:26 +0000 (14:57 +0100)]
Typo in test_closure type
Milan Crha [Tue, 12 Feb 2013 13:33:28 +0000 (14:33 +0100)]
Add modules/ubuntu-online-accounts/google-*.service.in to POTFILES.skip
The files contain translations, but are already translated in their
original .in.in files, thus adding them into POTFILES.skip should be OK.
Milan Crha [Tue, 12 Feb 2013 13:28:50 +0000 (14:28 +0100)]
Fix few memory leaks in evolution-source-registry
Milan Crha [Tue, 12 Feb 2013 12:21:06 +0000 (13:21 +0100)]
Bug #686528 - Pickup ownCloud accounts from GOA
Matthew Barnes [Mon, 11 Feb 2013 13:07:52 +0000 (08:07 -0500)]
Use camel_service_ref_session().
Matthew Barnes [Mon, 11 Feb 2013 12:34:46 +0000 (07:34 -0500)]
Add camel_service_ref_session().
Replaces camel_service_get_session().
CamelService now uses a GWeakRef instead of a weak pointer.
Daniel Mustieles [Mon, 11 Feb 2013 13:36:45 +0000 (14:36 +0100)]
Updated Spanish translation
Ihar Hrachyshka [Mon, 11 Feb 2013 11:16:04 +0000 (14:16 +0300)]
Updated Belarusian translation.
Fran Diéguez [Sun, 10 Feb 2013 14:43:56 +0000 (15:43 +0100)]
Updated Galician translations
Matthew Barnes [Sun, 10 Feb 2013 12:36:18 +0000 (07:36 -0500)]
Deprecate e_client_cancel_all().
This function no longer does anything.
Matthew Barnes [Sun, 10 Feb 2013 12:33:13 +0000 (07:33 -0500)]
EClient: Remove internal 'ops' hash table.
This is no longer populated with anything.
Matthew Barnes [Sun, 10 Feb 2013 12:26:30 +0000 (07:26 -0500)]
Remove e_client_emit_backend_property_changed().
Private API, no longer used.
Matthew Barnes [Sun, 10 Feb 2013 12:23:28 +0000 (07:23 -0500)]
Remove e_client_get_dbus_proxy().
Private API, no longer used.
Matthew Barnes [Sun, 10 Feb 2013 12:22:09 +0000 (07:22 -0500)]
Remove e_client_emit_backend_error().
Private API, no longer used.
Matthew Barnes [Sun, 10 Feb 2013 12:21:14 +0000 (07:21 -0500)]
Remove e_client_emit_backend_died().
Private API, no longer used.
Matthew Barnes [Sat, 9 Feb 2013 21:52:33 +0000 (16:52 -0500)]
ECalClient: Remove set_proxy_gone_error().
ECalClient now keeps its GDBusProxy alive until dispose(), regardless
of what happens on the server side. So we don't need to check whether
the GDBusProxy is still present in every method call anymore. If the
bus name vanishes, let subsequent GDBusProxy calls fail on their own.
Matthew Barnes [Sat, 9 Feb 2013 21:50:27 +0000 (16:50 -0500)]
ECalClient: Use G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START.
Set the DO_NOT_AUTO_START flag on new client-side proxies, so that if
the factory process crashes we don't restart it by way of some random
method call. Until the backend's "open" procedure is fully automated
on the server-side, only new client instances should attempt to start
the factory process.
Matthew Barnes [Sat, 9 Feb 2013 21:48:43 +0000 (16:48 -0500)]
ECalClient: Use g_bus_watch_name_on_connection().
g_bus_watch_name_on_connection() handles "NameOwnerChanged" signals
as well as "closed" signals from the GDBusConnection. In the event
the bus name vanishes, we schedule an idle callback on the client's
GMainContext to emit a "backend-died" signal.
Also while we're at it, call the close() method asynchronously from
dispose() so we don't block.
Matthew Barnes [Sat, 9 Feb 2013 16:28:19 +0000 (11:28 -0500)]
EBookClient: Remove set_proxy_gone_error().
EBookClient now keeps its GDBusProxy alive until dispose(), regardless
of what happens on the server side. So we don't need to check whether
the GDBusProxy is still present in every method call anymore. If the
bus name vanishes, let subsequent GDBusProxy calls fail on their own.
Matthew Barnes [Sat, 9 Feb 2013 17:06:23 +0000 (12:06 -0500)]
EBookClient: Use G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START.
Set the DO_NOT_AUTO_START flag on new client-side proxies, so that if
the factory process crashes we don't restart it by way of some random
method call. Until the backend's "open" procedure is fully automated
on the server-side, only new client instances should attempt to start
the factory process.
Matthew Barnes [Sat, 9 Feb 2013 15:37:31 +0000 (10:37 -0500)]
EBookClient: Use g_bus_watch_name_on_connection().
g_bus_watch_name_on_connection() handles "NameOwnerChanged" signals
as well as "closed" signals from the GDBusConnection. In the event
the bus name vanishes, we schedule an idle callback on the client's
GMainContext to emit a "backend-died" signal.
Also while we're at it, call the close() method asynchronously from
dispose() so we don't block.
Matthew Barnes [Sat, 9 Feb 2013 16:43:05 +0000 (11:43 -0500)]
ECalClient: Fix build break.
Matthew Barnes [Sat, 9 Feb 2013 14:02:53 +0000 (09:02 -0500)]
Deprecate e_book_client_error_create().
Just use the GError API directly.
Matthew Barnes [Sat, 9 Feb 2013 13:45:23 +0000 (08:45 -0500)]
Deprecate e_cal_client_error_create().
Just use the GError API directly.
Matthew Barnes [Sat, 9 Feb 2013 13:39:16 +0000 (08:39 -0500)]
ECalClient: Set GErrors normally.
Set GErrors with g_set_error_literal(), using
e_cal_client_error_to_string() to obtain a generic error message.
Matthew Barnes [Fri, 8 Feb 2013 19:08:00 +0000 (14:08 -0500)]
G_PRIORITY_HIGH_IDLE is sufficient to beat GTK+ redraws.
GTK+ uses (G_PRIORITY_HIGH_IDLE + 20) for redrawing operations, which is
actually a slightly lower priority than G_PRIORITY_HIGH_IDLE. Therefore
for our purpose, G_PRIORITY_HIGH_IDLE is sufficient.
Milan Crha [Fri, 8 Feb 2013 16:34:34 +0000 (17:34 +0100)]
Add comments around g_idle_add() changes
Michel Dänzer [Fri, 8 Feb 2013 11:06:52 +0000 (12:06 +0100)]
Bug #683867 - Schedule actions with higher idle priority
Matthew Barnes [Fri, 8 Feb 2013 13:18:33 +0000 (08:18 -0500)]
ECalClient: Follow up on a timezone-related FIXME comment.
Emit the "timezone-added" signal from an idle callback on ECalClient's
GMainContext, instead of from whichever thread the timezone was added.
This makes life easier for any handlers of that signal.
Still need to address a similar FIXME comment in ECalBackend, but that
will have to wait until after the backend API rewrite.
Matthew Barnes [Fri, 8 Feb 2013 12:01:49 +0000 (07:01 -0500)]
Revert "Bug #683867 - Schedule actions with higher idle priority"
This reverts commit
224e8bed43ea13e34adbeef786a0d60f848bb170.
The commit contains not a single comment as to why these custom priority
values are being used. The rationale needs to be documented in the code,
either at each call point or preferably at a centralized priority value
definition.
Tristan Van Berkom [Fri, 8 Feb 2013 10:14:33 +0000 (19:14 +0900)]
test-server-utils.c: Added TEST_INSTALLED_SERVICES env var
This allows us to run tests individually using the installed services,
this makes it easier to trace the server process response to test
cases using instrumentation tools such as gdb and valgrind.
Michel Dänzer [Fri, 8 Feb 2013 11:06:52 +0000 (12:06 +0100)]
Bug #683867 - Schedule actions with higher idle priority
Mathias Hasselmann [Thu, 7 Feb 2013 17:28:57 +0000 (18:28 +0100)]
e-test-server-utils: Destroy dynamic closures
Adds a callback to the closure structure that describes
its concept of self-destruction.
Mathias Hasselmann [Thu, 7 Feb 2013 16:31:37 +0000 (17:31 +0100)]
EBookBackendFile: Restore g_type_ensure() calls
Few things got lost in
01857aacc17e0da2766d6c03b3f84efb0cf1392d
Matthew Barnes [Thu, 7 Feb 2013 15:18:05 +0000 (10:18 -0500)]
Add CAMEL_MIME_FILTER_TOHTML_QUOTE_CITATION flag.
Groups lines beginning with one or more '>' characters in
<blockquote type="cite"> ... </blockquote> tags. The tags
are nested according to the number of '>' characters.
Matthew Barnes [Thu, 7 Feb 2013 13:36:06 +0000 (08:36 -0500)]
Document CamelMimeFilterToHTMLFlags.
Mathias Hasselmann [Wed, 6 Feb 2013 18:17:49 +0000 (19:17 +0100)]
sqlitedb: Make BOOKSQL_DEBUG reusable
Mathias Hasselmann [Wed, 6 Feb 2013 18:09:12 +0000 (19:09 +0100)]
libebook: Really extract the 2-letter country code
Previous code took the locale-ids's language code
instead of the country code.
Mathias Hasselmann [Wed, 6 Feb 2013 18:10:57 +0000 (19:10 +0100)]
libebook: Preserve predicate-order of sexps
When parsing conjunction and disjunction expressions the predicate order
got reversed, which breaks any optimizations that utilize lazy evaluation
or summary access patterns.
I am pretty sure I've fixed this once already.
No idea how to fix got lost.
Mathias Hasselmann [Wed, 6 Feb 2013 18:16:45 +0000 (19:16 +0100)]
sqlitedb: Remove unused <langinfo.h> include
Mathias Hasselmann [Thu, 7 Feb 2013 08:17:21 +0000 (09:17 +0100)]
tests: test e_phone_number_get_default_region()
Mathias Hasselmann [Wed, 6 Feb 2013 18:07:06 +0000 (19:07 +0100)]
libebook: Improve phone-number docs and messages
Be more strict about the terms "country calling code" which
relates to phone numbers, and "two-letter country code" which
identifies region.
Milan Crha [Wed, 6 Feb 2013 18:05:53 +0000 (19:05 +0100)]
Fix a memory leak from e_source_webdav_prepare_ssl_trust_prompt()
Fran Diéguez [Wed, 6 Feb 2013 17:36:45 +0000 (18:36 +0100)]
Updated Galician translations
Matthew Barnes [Wed, 6 Feb 2013 15:19:34 +0000 (10:19 -0500)]
Add CamelMimeFilterToHTMLFlags type.
Convert the CAMEL_MIME_FILTER_TOHTML_* flag macros to an enum type and
move it to camel-enums.h so a GFlagsClass is generated for it.
Use CamelMimeFilterToHTMLFlags as the 'flags' parameter type in
camel_mime_filter_tohtml_new() and camel_text_to_html().
Matthew Barnes [Wed, 6 Feb 2013 12:55:08 +0000 (07:55 -0500)]
Remove --with-dbus-call-timeout configure option.
No longer needed.
Matthew Barnes [Wed, 6 Feb 2013 12:53:32 +0000 (07:53 -0500)]
Deprecate e_data_server_util_get/set_dbus_call_timeout().
No longer used.
Matthew Barnes [Wed, 6 Feb 2013 12:32:19 +0000 (07:32 -0500)]
Silence some runtime warnings from calendar backends.
Daniel Mustieles [Tue, 5 Feb 2013 16:10:34 +0000 (17:10 +0100)]
Updated Spanish translation
Piotr Drąg [Mon, 4 Feb 2013 18:11:27 +0000 (19:11 +0100)]
Updated POTFILES.in
Matthew Barnes [Mon, 4 Feb 2013 17:22:44 +0000 (12:22 -0500)]
EBookBackendFile: Implement GInitable.
Migrate the old BDB database and open the SQLite database in the
GInitable.init() method. If an error occurs here, the backend instance
is destroyed immediately and the OpenAddressBook() factory method fails.
This obviates the need to check for an open SQLite handle in every
backend method.
Matthew Barnes [Mon, 4 Feb 2013 17:09:22 +0000 (12:09 -0500)]
ESourceRevisionGuards cleanups.
Mathias Hasselmann [Mon, 4 Feb 2013 17:11:09 +0000 (18:11 +0100)]
libebook: Add missing version tags
Some functions and types of the new e-phone-number module
didn't have version tags in their documentation.
See: https://bugzilla.gnome.org/show_bug.cgi?id=689622
Mathias Hasselmann [Fri, 1 Feb 2013 13:56:11 +0000 (14:56 +0100)]
libebook: Export the API for phone region guessing
This adds e_phone_number_get_country_code_for_region() and
e_phone_number_get_default_region() which give access to the
region guessing mechanisms. They are needed to efficently
build the sqlite backend's phone number indexes.
See: https://bugzilla.gnome.org/show_bug.cgi?id=689622
Mathias Hasselmann [Fri, 25 Jan 2013 13:51:01 +0000 (14:51 +0100)]
libebook: Give access to country code and national phone number
This information is needed to build a more efficient phone number index.
See: https://bugzilla.gnome.org/show_bug.cgi?id=689622
Mathias Hasselmann [Fri, 25 Jan 2013 04:28:53 +0000 (05:28 +0100)]
build: Use dedicated compiler warning for C and C++ code
Not all compiler warning flags that are valid for C are valid
for C++, and vise versa.
Daniel Mustieles [Mon, 4 Feb 2013 16:46:57 +0000 (17:46 +0100)]
Updated Spanish translation
Matthew Barnes [Tue, 22 Jan 2013 21:28:05 +0000 (16:28 -0500)]
Add e_data_factory_ref_initable_backend().
Similar to e_data_factory_ref_backend(), but allows for backends that
implement the GInitable interface so they can fail gracefully if they
are unable to initialize critical resources, such as a cache database.
Matthew Barnes [Mon, 4 Feb 2013 16:08:08 +0000 (11:08 -0500)]
ECalClient: Avoid race between dispose() and signal handlers.
Use g_signal_connect_object() to ensure the GDBusProxy stays alive while
its signal handlers are running.
Matthew Barnes [Mon, 4 Feb 2013 16:06:17 +0000 (11:06 -0500)]
EBookClient: Avoid race between dispose() and signal handlers.
Use g_signal_connect_object() to ensure the GDBusProxy stays alive while
its signal handlers are running.
Matthew Barnes [Mon, 4 Feb 2013 12:42:19 +0000 (07:42 -0500)]
Deprecate e-gdbus-templates.[ch].
Milan Crha [Mon, 4 Feb 2013 11:56:26 +0000 (12:56 +0100)]
Bug #675287 - Spool file account doesn't show messages
Piotr Drąg [Mon, 4 Feb 2013 01:00:26 +0000 (02:00 +0100)]
Updated POTFILES.in
Matthew Barnes [Sun, 3 Feb 2013 14:12:41 +0000 (09:12 -0500)]
Post-release version bump.
Matthew Barnes [Sun, 3 Feb 2013 13:38:09 +0000 (08:38 -0500)]
NEWS update for 3.7.5 release.
Matthew Barnes [Sun, 3 Feb 2013 13:46:17 +0000 (08:46 -0500)]
Fix some distcheck errors.
Matthew Barnes [Sat, 2 Feb 2013 16:12:43 +0000 (11:12 -0500)]
uoa: Add ESignonSessionPassword.
This is a custom EAuthenticationSession that obtains passwords from
signond instead of from E-D-S keyring entries. It also does not use
GcrSystemPrompt but the SessionDataUiPolicy method of prompting does
not seem to be working well. Prompting remains an open issue.
Matthew Barnes [Sat, 2 Feb 2013 13:35:30 +0000 (08:35 -0500)]
uoa: Add e_source_get_ag_service_type().
Returns an appropriate service type name for an ESource.
Matthew Barnes [Sat, 2 Feb 2013 13:25:44 +0000 (08:25 -0500)]
uoa: Move service type definintions to uoa-utils.h
Matthew Barnes [Sat, 2 Feb 2013 13:21:27 +0000 (08:21 -0500)]
uoa: Remove #include <libaccounts-glib/ag-auth-data.h>
Including <libaccounts-glib/accounts-glib.h> is sufficient now.
Matthew Barnes [Sat, 2 Feb 2013 16:13:19 +0000 (11:13 -0500)]
uoa: Remove a debug message.
Piotr Drąg [Sun, 3 Feb 2013 01:31:48 +0000 (02:31 +0100)]
Updated Polish translation
Chao-Hsiung Liao [Sat, 2 Feb 2013 09:40:02 +0000 (17:40 +0800)]
Updated Traditional Chinese translation(Hong Kong and Taiwan)
Gheyret Kenji [Sat, 2 Feb 2013 04:05:37 +0000 (13:05 +0900)]
Updated Uyghur translation
Signed-off-by: Gheyret Kenji <gheyret@gmail.com>
Matthew Barnes [Fri, 1 Feb 2013 19:28:00 +0000 (14:28 -0500)]
Oopsie...
Matthew Barnes [Fri, 1 Feb 2013 19:13:00 +0000 (14:13 -0500)]
Deprecate e_authentication_session_new().
Use e_source_registry_server_new_auth_session() instead.
Matthew Barnes [Fri, 1 Feb 2013 19:08:22 +0000 (14:08 -0500)]
Use e_source_registry_server_new_auth_session().
In place of e_authentication_session_new().
Matthew Barnes [Fri, 1 Feb 2013 19:03:14 +0000 (14:03 -0500)]
Add e_source_registry_server_new_auth_session().
Convenience function instantiates an appropriate authentication session
type for the given data source UID.
Matthew Barnes [Fri, 1 Feb 2013 18:34:19 +0000 (13:34 -0500)]
collection_backend_child_added: Inherit the auth session type.
Collection children will inherit the collection source's authentication
session type, so password-based authentication is consistent across the
entire collection.
Matthew Barnes [Fri, 1 Feb 2013 18:23:48 +0000 (13:23 -0500)]
EServerSideSource: Add an "auth-session-type" property.
This will allow modules -- particularly the online accounts modules --
to subclass and customize EAuthenticationSession, and then register the
subclass to be used for data sources under their purview.
Care must be taken when subclassing, however, to comply with the D-Bus
interaction protocol that clients will be expecting, lest the client be
left hanging during its authenticate() call.
Matthew Barnes [Fri, 1 Feb 2013 12:45:56 +0000 (07:45 -0500)]
store_synchronize_sync(): Only sync subscribed folders.
I recently added a Gmane (NNTP) account and have only a few newsgroup
subscriptions. Yet when I quit Evolution, Camel tries to synchronize
all 13,872 newsgroups which literally takes days to complete.
This adds a CAMEL_STORE_FOLDER_INFO_SUBSCRIBED flag to the request for
a folder info tree while synchronizing + expunging.
Note, CamelIMAPXStore will ignore the CAMEL_STORE_FOLDER_INFO_SUBSCRIBED
flag if its "use-subscriptions" setting is FALSE, which is what we want.
Matthew Barnes [Fri, 1 Feb 2013 12:42:14 +0000 (07:42 -0500)]
store_synchronize_sync() cleanups.
Matthew Barnes [Fri, 1 Feb 2013 14:58:40 +0000 (09:58 -0500)]
EBookClient/ECalClient: Check for NULL before calling g_strjoinv().
Mathias Hasselmann [Fri, 25 Jan 2013 06:59:05 +0000 (07:59 +0100)]
libebook: Better region guessing for phone numbers
Extract country code from current locale id if needed, that is because
_NL_ADDRESS_COUNTRY_AB2 is missing or gives bad information.
See: https://bugzilla.gnome.org/show_bug.cgi?id=689622
Matthew Barnes [Fri, 1 Feb 2013 13:40:45 +0000 (08:40 -0500)]
ECalClient: Increment/decrement active client count atomically.
It's basically a reference count. Avoids using the recursive mutex.
Matthew Barnes [Fri, 1 Feb 2013 13:37:48 +0000 (08:37 -0500)]
EBookClient: Increment/decrement active client count atomically.
It's basically a reference count. Avoids using the recursive mutex.