This change makes it possible to add a new backend without
changing any of the core files. It also gets rid of some
hacks (like -export-dynamic for the binary) by putting all
core SyncEvolution code into a library.
The transition is not quite complete: there are still
some lists of existing backends, which will be removed
soon. EvolutionSmartPtr.h and EvolutionSyncSource depend
on Evolution/GNOME libs, which forces all backends to
use the right -I flags.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@684 15ad00c4-1369-45f4-8270-35d70d36bdcd
The error was printed when listing databases failed without setting
an error, like on Maemo where memos are not supported by the Evolution
backend.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@648 15ad00c4-1369-45f4-8270-35d70d36bdcd
Child items can now be inserted without the
corresponding parent or before the parent.
Semantically this makes no sense, but servers
which do not know about the semantic might do
it. Also removing the parent without the children
is now supported.
Technically this has to workaround limitations of
the EDS API and is done as:
* child before parent: temporarily save and remove children, insert parent, update parent with children
* remove parent, but not child: temporarily save and remove children, reinsert after removal of parent
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@627 15ad00c4-1369-45f4-8270-35d70d36bdcd
- must track which items exist locally because
asking for a detached recurrence succeeds even if
the object doesn't exist yet; also reduces communication
with backend
- new child items must be created via e_cal_modify_object()
- log adding new items with extracted UID/RECURRENCE-ID
- sort item lists so that parent items are processed
first (required by ScheduleWorld)
More work is needed to handle semantically not quite
correct situations, like adding a child without a parent.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@620 15ad00c4-1369-45f4-8270-35d70d36bdcd
- renamed files to comply with Evolution naming conventions
- implemented time zone lookup for file backend
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@601 15ad00c4-1369-45f4-8270-35d70d36bdcd
- const SyncItem cleanup
- distinguish between added/merged in TrackingSyncSource::insertItem():
required for calendar events
- getData() util function not needed.
- TrackingSyncSource key/value strings can be arbitrary strings now.
- Clarified insertItem() semantic and errors.
- Added new required SyncSource::removeAllItems() call.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@574 15ad00c4-1369-45f4-8270-35d70d36bdcd
- deviceId is at the end of the config now because it hardly ever has to be set
- evolutionsource can be left unset in most cases: the first Evolution database is
the default
- mark default data source when listing them
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@558 15ad00c4-1369-45f4-8270-35d70d36bdcd
The API documentation of these calls doesn't say so explicitly, but it
seems that a combination of g_object_unref()/g_free()/g_list_free() is
necessary. Rewrote the eptr smart pointer so that different deleter
functions can be selected as template parameters.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@521 15ad00c4-1369-45f4-8270-35d70d36bdcd
- rewrote interpretation of "type" property: is now a combination of backend and mime type
- improved registration of sync sources (RegisterSyncSource)
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@514 15ad00c4-1369-45f4-8270-35d70d36bdcd
- cleaned up passing of SyncSource creation parameters
- reads old configs and should also work with new layout (not tested yet)
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@507 15ad00c4-1369-45f4-8270-35d70d36bdcd
the fact that the synchronous EDS API calls block infinitely in that case.
- drive default glib event look in background thread
- listen for "backend-died" signals
- if triggered, print a message ("Evolution Data Server has died unexpectedly,
database no longer available.") and abort the process (other error handling is
impossible)
- for contacts instead of "database" "contacts" is printed
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@441 15ad00c4-1369-45f4-8270-35d70d36bdcd
Evolution uses \, as separator for CATEGORIES, but the standard
specifies a plain comma. The effect was that multiple categories were
treated as one category with commas by ScheduleWorld. Events imported
into Evolution were stored incorrectly and the GUI only used the last
category.
As a workaround SyncEvolution now converts back and forth between , and \,
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@370 15ad00c4-1369-45f4-8270-35d70d36bdcd
--enable-shared will build backends as modules which are loaded dynamically if possible (off by default)
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@315 15ad00c4-1369-45f4-8270-35d70d36bdcd
- moved unref() into global name space so that more unref() functions
can be added (otherwise local methods shadow the global functions)
- use eptr for SourceList (wasn't destructed in case of error otherwise and
logging in 0.4 pre continued to go to file)
- check for server configuration and abort in prepare if none given with
a suitable error message
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@215 15ad00c4-1369-45f4-8270-35d70d36bdcd