syncevolution/src
Patrick Ohly 388f72b369 config: replaced overloaded "type" with "backend/databaseFormat/syncFormat/forceSyncFormat" (BMC #1023)
The meaning of "type" was horribly complex and had effects on the
backend and the peer. It was impossible to specify the sync format to
be used for a specific peer independently of the local backend and its
format, so adding a peer to a context broke the context configuration
(BMC #1023).

This is now fixed by splitting "type" into four independent properties:
- backend = plugin which interfaces with the data
- databaseFormat = data format used inside backend, only relevant for file backend
- syncFormat = data format preferred when talking to peer
- forceSyncFormat = disable format auto-negotiation, use preferred format

With that split, it is now possible to specify the format in which the
file backend stores items independently of the format in which they
are exchanged with the peer.

Old configurations with "type" can still be read. The values specified
inside it are transparently mapped to the new properties. Command line
and D-Bus API users will only see the new properties.

The command line tool still accepts "type" as an alias for the four new
properties. Using that has the same disadvantage as before: it will modify
the context even if only modifying the peer was intended.

The D-Bus API accepts only the new properties. Clients using "type"
must be adapted to the new property names. Clients not using that
continue to run unchanged.

Writing into the configuration requires a migration of the peer config
*and* the context in which it is defined. That is necessary because
the new semantic (independent database format) cannot be stored in the
old format. The migration is handled by rewriting first the context,
then all peers defined inside it.

Other user-visible changes:
- updated help texts
- the canonical "backend" value for the file backend is just "file"
  instead of the long "Files in one directory", which is now an alias
  (used to be the other way around); done because "type = file"
  was expanded to the long name, which was a bit unexpected and showed
  how unintuitive the long name is

Internal changes:
- getMimeVersion() is still present, although it hasn't been used
  for a long time; FileSyncSource::getMimeVersion() now derives
  the version from the supported Mime types, in case that the
  function will be needed again in the future
- setSourceType() with string as argument was replaced with one
  taking a SourceType instance; to emulate the old behavior if
  desired, construct SourceType from an old-style string
- ConfigProperty methods need to be virtual so that derived classes
  like SourceBackendConfigProperty can generate content at runtime
  (a recent commit broke that feature)
- File templates were stripped down to the essential properties,
  with "type" replaced by the per-peer "syncFormat".  "type" would
  still have been accepted (so it is not necessary to adapt
  syncevo-phone-config right away), but has the original
  disadvantage of modifying "backend" and "databaseFormat".
2011-02-03 12:59:02 +01:00
..
backends config: replaced overloaded "type" with "backend/databaseFormat/syncFormat/forceSyncFormat" (BMC #1023) 2011-02-03 12:59:02 +01:00
dbus D-Bus API docs: consolidated documentation of artificial properties 2011-01-31 11:28:54 +01:00
gdbus gdbus C++: fixed cut-and-paste error 2010-08-25 10:26:49 +02:00
gnome-bluetooth autotools: some more fixes 2010-02-09 20:40:38 +01:00
gtk-ui sync-ui: ignore configs without ConsumerReady = 1 2011-01-17 15:09:33 +01:00
syncevo config: replaced overloaded "type" with "backend/databaseFormat/syncFormat/forceSyncFormat" (BMC #1023) 2011-02-03 12:59:02 +01:00
synthesis-includes autotools: --disable-core --enable-gui => build only sync-ui and its D-Bus lib 2010-03-23 19:04:06 +01:00
templates config: replaced overloaded "type" with "backend/databaseFormat/syncFormat/forceSyncFormat" (BMC #1023) 2011-02-03 12:59:02 +01:00
.cvsignore test for copying via server now transmits testVCard.vcf and also compares against it 2006-03-18 13:35:23 +00:00
async.patch patch switches to async version of the Evolution API 2007-02-22 19:33:21 +00:00
client-test-app.cpp config: replaced overloaded "type" with "backend/databaseFormat/syncFormat/forceSyncFormat" (BMC #1023) 2011-02-03 12:59:02 +01:00
client-test-buteo.cpp buteo-test: update tracker database file name 2010-12-15 15:45:23 +01:00
client-test-buteo.h buteo-test: update tracker database file name 2010-12-15 15:45:23 +01:00
CmdlineSyncClient.cpp sync source handling: implemented per-source property filtering, Cmdline uses it 2009-10-07 18:10:00 +02:00
CmdlineSyncClient.h sync source handling: implemented per-source property filtering, Cmdline uses it 2009-10-07 18:10:00 +02:00
Makefile-gen.am buteo testing: enable buteo testing in client-test 2010-12-08 10:56:16 +01:00
org.syncevolution.service.in fix D-Bus .service file (needed for d-Bus autostart) 2009-11-16 19:07:27 +02:00
README.h added missing copyright and license headers 2009-05-11 16:31:17 +02:00
README.templates Merge remote branch 'origin/syncevolution-0-9-branch' 2009-11-30 21:41:53 +01:00
shlibs.local reverted to 0.7 packaging 2008-07-03 19:56:15 +00:00
syncevo-dbus-server-startup.sh.in syncevo-dbus-server-startup.sh.in: suppress output 2010-03-29 11:01:36 +02:00
syncevo-dbus-server.cpp syncevo-dbus-server: Get current NetworkManager state at startup 2011-01-31 12:21:38 +01:00
syncevo-dbus-server.desktop.in DBusServer: start syncevo-dbus-server when users log in 2010-03-08 15:26:58 -08:00
syncevolution.cpp command line: increase log level when SYNCEVOLUTION_DEBUG is set 2010-12-03 17:30:07 +01:00
valgrind.supp ObexTransportAgent: Fix valgrind warnings (MB#10091) 2010-03-12 06:33:13 -08:00

The configuration templates in "templates" get installed into
$(datadir)/syncevolution/templates.

When adding/changing a new server, then only enter the properties
which need to be changed here so that the default values can
be used for the remaining properties.

An icon can be added here for servers. The file name must start with
"icon".

Server configurations must be kept in sync in three different places:
- here (if a server is installed as files)
- in SyncEvolutionConfig.cpp's EvolutionSyncConfig::createServerTemplate()
- in SyncEvolutionCmdline.cpp's test server configs
- in test/test-dbus.py testGetConfigsTemplates()

Note that server icons must come with a suitable license that allows
redistribution.