Instead of passing an invalid XML config to the Synthesis engine, check
for this error and raise a "[ERROR] no sources active, check configuration"
in EvolutionSyncClient::getConfigXML().
--status was broken by the last commit: XDG_DATA_DIR was not
expanded. Fixed it as part of the improvements for printing
changes in --restore. Also made some other minor changes
to utility classes as part of these improvements.
The new --restore option can restore data from a data dump,
identified by the directory and a before/after flag. The
corresponding API is EvolutionSyncClient::restore().
Using the directory format will make restoring items easier because
there is no need to break one file with unknown content into single
items.
The SyncSourceReport now contains information about the backups
made before and after a sync; the only useful information right
now is the number of items.
The factory function is defined in ConfigNode because that is the minimal API
that is needed by code creating and using such a node. The actual implementatation
is in FileConfigNode.cpp and uses a SafeConfigNode as wrapper to make key/value
pairs safe for storing.
now using the main window log box to show sync errors and
an error dialog for other show stopping errors (gconf, dbus)
No error messages from syncevolution are used (to be l10n
friendly), but they are printed to stderr.
printChanges:
enables or disables the detailed (and sometimes slow) comparison
of database content before and after a sync session
This option can be overriden temporarily by classes derived from
EvolutionSyncClient in the prepare() call with setPrintChanges().
The problem was that enable_gui/dbus were set to "yes" in the "option
given explicitly" case. That case includes "disabled explicitly", which
has to be covered by using the "$enableval" variable.
When the "logdir" sync property is unset, then SyncEvolution now
maintains log directories in $XDG_DATA_HOME/applications/syncevolution.
The "maxlogdirs" property defaults to 10 now because of this change.
When the base directory for log dirs ends in "syncevolution", then
the directories created inside it start with the server name, followed
by a date and time (as before). Otherwise "SyncEvolution-" is added.
This is a safety-mechanism that ensures that we have a good chance
of finding the right log directories again with a non-standard
base directory.
The previous default (a single log dir in /tmp with the user name
as part of the log dir name) is no longer supported: when configuring
a non-standard log dir, that directory has to be chosen so that
files from different users aren't mixed up.
Source specific values are stored with a key that is composed of the
prefix "source-" followed by the source name (with - escaped) and
other components representing the various properties. Empty values
are not stored, which is fairly efficient for the statistics array.
When reading back, only sources which have any value are
recreated. Because the sync mode is always set, this ensures
that the set of active sources is restored. Inactive sources
are not part of that set!
--print-sessions now prints the retrieved sync report just like
--sync does. Combined with --quiet only the directory name is printed.
MuxWindow is a top-level widget (a GtkWindow) that includes
builtin "window decoration": a title bar with a title and
selected buttons. MuxWindow disables actual window decorations
and makes the window fullscreen by default.