syncevolution/src/backends/qtcontacts
Patrick Ohly 12334eb676 SyncSource: remove special RegisterSyncSource::InactiveSource pointer
The special semantic of the former RegisterSyncSource::InactiveSource
(invalid pointer of value 1) caused bugs, like using it in
--print-databases (=> segfault) or not being able to store the result
of a createSource() directly in a smart pointer (=> potential leak in
SyncSource::createSource()).

Obviously a bad idea to start with. Replaced with a
RegisterSyncSource::InactiveSource() method which creates a real,
inactive SyncSource instance which can and must be deleted by the
caller.

This is a SyncSource API change for backend developers.
Instead of RegisterSyncSource::InactiveSource, return
RegisterSyncSource::InactiveSource().

Comparisons against RegisterSyncSource::InactiveSource needs
to be replaced with a call to the new SyncSource::isInactive().

User visible fixes:
* --print-databases: no longer crashes when EDS or KDE backends
  are not usable. Instead it prints "not enabled during compilation or
  not usable in the current environment".
* --print-databases: continues with other backends even if
  one backend throws an exception, as the KDE backend does
  when it cannot find Akonadi. Error messages are printed.
2012-03-09 07:25:11 +00:00
..
configure-sub.in Port build system to non-recursive Automake. 2011-08-30 16:38:34 +02:00
qtcontacts.am Port build system to non-recursive Automake. 2011-08-30 16:38:34 +02:00
QtContactsSource.cpp QtContacts: "database" property specifies address book 2011-03-22 15:27:18 +01:00
QtContactsSource.h backend API cleanup: removal of "const char *" return types 2011-01-18 15:15:09 +01:00
QtContactsSourceRegister.cpp SyncSource: remove special RegisterSyncSource::InactiveSource pointer 2012-03-09 07:25:11 +00:00