diff options
author | Alexey Shvetsov <alexxy@gentoo.org> | 2009-02-03 22:50:02 +0000 |
---|---|---|
committer | Alexey Shvetsov <alexxy@gentoo.org> | 2009-02-03 22:50:02 +0000 |
commit | 175174cc15374c371286eaae2faa42d34947f5fc (patch) | |
tree | 769b2944fb81ae9ee0c3998f18ed355b25ca5ada /kde-base/kitchensync | |
parent | Add ~ppc/~ppc64 to kwrited as they was added to full kde-4.2 (diff) | |
download | gentoo-2-175174cc15374c371286eaae2faa42d34947f5fc.tar.gz gentoo-2-175174cc15374c371286eaae2faa42d34947f5fc.tar.bz2 gentoo-2-175174cc15374c371286eaae2faa42d34947f5fc.zip |
Move large patch to mirror
(Portage version: 2.2_rc23/cvs/Linux x86_64)
Diffstat (limited to 'kde-base/kitchensync')
-rw-r--r-- | kde-base/kitchensync/ChangeLog | 7 | ||||
-rw-r--r-- | kde-base/kitchensync/files/kitchensync-3.5.9-OpenSync0.30API.patch | 4030 | ||||
-rw-r--r-- | kde-base/kitchensync/kitchensync-3.5.9-r1.ebuild | 8 |
3 files changed, 11 insertions, 4034 deletions
diff --git a/kde-base/kitchensync/ChangeLog b/kde-base/kitchensync/ChangeLog index 1c32ee34c839..574cbaeeb03d 100644 --- a/kde-base/kitchensync/ChangeLog +++ b/kde-base/kitchensync/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for kde-base/kitchensync # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/kde-base/kitchensync/ChangeLog,v 1.101 2009/02/01 07:22:06 jmbsvicetto Exp $ +# $Header: /var/cvsroot/gentoo-x86/kde-base/kitchensync/ChangeLog,v 1.102 2009/02/03 22:50:01 alexxy Exp $ + + 03 Feb 2009; Alexey Shvetsov <alexxy@gentoo.org> + -files/kitchensync-3.5.9-OpenSync0.30API.patch, + kitchensync-3.5.9-r1.ebuild: + Move large patch to mirror 01 Feb 2009; Jorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org> ChangeLog: diff --git a/kde-base/kitchensync/files/kitchensync-3.5.9-OpenSync0.30API.patch b/kde-base/kitchensync/files/kitchensync-3.5.9-OpenSync0.30API.patch deleted file mode 100644 index e986842c866b..000000000000 --- a/kde-base/kitchensync/files/kitchensync-3.5.9-OpenSync0.30API.patch +++ /dev/null @@ -1,4030 +0,0 @@ -diff --exclude=.svn -NrU5 kitchensync.orig/configure.in.bot kitchensync/configure.in.bot ---- kitchensync.orig/configure.in.bot 2008-05-31 11:37:20.000000000 +0200 -+++ kitchensync/configure.in.bot 2008-05-31 11:31:48.000000000 +0200 -@@ -1,8 +1,8 @@ --if test "$HAVE_OPENSYNC" = 0 -o "$HAVE_OPENSYNC_ENGINE" = 0; then -+if test "$HAVE_OPENSYNC" = 0; then - echo "" - echo "You're missing a compatible version of libopensync." -- echo "Version 0.19 or greater is needed." -+ echo "Version 0.31 or greater is needed." - echo "kitchensync will not be built." - echo "" - all_tests=bad - fi -diff --exclude=.svn -NrU5 kitchensync.orig/configure.in.in kitchensync/configure.in.in ---- kitchensync.orig/configure.in.in 2008-05-31 11:37:20.000000000 +0200 -+++ kitchensync/configure.in.in 2008-05-31 11:31:48.000000000 +0200 -@@ -27,13 +27,11 @@ - fi - export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:$prefix/lib/pkgconfig:/usr/local/lib/pkgconfig - - - HAVE_OPENSYNC=0 --HAVE_OPENSYNC_ENGINE=0 --PKG_CHECK_MODULES(OPENSYNC, opensync-1.0 >= 0.19, HAVE_OPENSYNC=1,HAVE_OPENSYNC=0) --PKG_CHECK_MODULES(OPENSYNCENGINE, osengine-1.0 >= 0.19, HAVE_OPENSYNC_ENGINE=1, HAVE_OPENSYNC_ENGINE=0) -+PKG_CHECK_MODULES(OPENSYNC, opensync-1.0 >= 0.33, HAVE_OPENSYNC=1,HAVE_OPENSYNC=0) - PKG_CHECK_MODULES(LIBXML, libxml-2.0, , HAVE_OPENSYNC=0) - PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.6, , HAVE_OPENSYNC=0) - - if test -z "PKG_CONFIG"; then - AC_PATH_PROG(PKG_CONFIG, pkg-config, no) -@@ -50,13 +48,13 @@ - AC_SUBST(OPENSYNC_PLUGINDIR) - AC_SUBST(OPENSYNC_FORMATSDIR) - AC_SUBST(OPENSYNC_HEADERDIR) - - dnl Check if we can compile KitchenSync --AM_CONDITIONAL(compile_kitchensync, test "$HAVE_OPENSYNC" = 1 -a "$HAVE_OPENSYNC_ENGINE" = 1) -+AM_CONDITIONAL(compile_kitchensync, test "$HAVE_OPENSYNC" = 1) - --if test "$HAVE_OPENSYNC" = 1 -a "$HAVE_OPENSYNC_ENGINE" = 1 ; then -+if test "$HAVE_OPENSYNC" = 1; then - AC_MSG_RESULT([found]) - else - AC_MSG_RESULT([not found]) - DO_NOT_COMPILE="$DO_NOT_COMPILE kitchensync" - fi -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/callbackhandler.cpp kitchensync/libqopensync/callbackhandler.cpp ---- kitchensync.orig/libqopensync/callbackhandler.cpp 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/callbackhandler.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -17,16 +17,17 @@ - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - */ - --#include <osengine/engine.h> -- --#include <libqopensync/engine.h> -+#include <opensync/opensync.h> -+#include <opensync/opensync-engine.h> - - #include <qapplication.h> - -+#include "engine.h" -+ - #include "callbackhandler.h" - - using namespace QSync; - - class CallbackHandler::ConflictEvent : public QCustomEvent -@@ -109,15 +110,15 @@ - - void CallbackHandler::setEngine( Engine *engine ) - { - mEngine = engine; - -- osengine_set_conflict_callback( engine->mEngine, &conflict_callback, this ); -- osengine_set_changestatus_callback( engine->mEngine, &change_callback, this ); -- osengine_set_mappingstatus_callback( engine->mEngine, &mapping_callback, this ); -- osengine_set_enginestatus_callback( engine->mEngine, &engine_callback, this ); -- osengine_set_memberstatus_callback( engine->mEngine, &member_callback, this ); -+ osync_engine_set_conflict_callback( engine->mEngine, &conflict_callback, this ); -+ osync_engine_set_changestatus_callback( engine->mEngine, &change_callback, this ); -+ osync_engine_set_mappingstatus_callback( engine->mEngine, &mapping_callback, this ); -+ osync_engine_set_enginestatus_callback( engine->mEngine, &engine_callback, this ); -+ osync_engine_set_memberstatus_callback( engine->mEngine, &member_callback, this ); - } - - Engine* CallbackHandler::engine() const - { - return mEngine; -@@ -141,20 +142,20 @@ - MemberEvent *memberEvent = static_cast<MemberEvent*>( event ); - emit member( memberEvent->member() ); - } - } - --void CallbackHandler::conflict_callback( OSyncEngine *engine, OSyncMapping *omapping, void *data ) -+void CallbackHandler::conflict_callback( OSyncEngine *engine, OSyncMappingEngine *omapping, void *data ) - { - SyncMapping mapping( omapping, engine ); - - CallbackHandler *handler = static_cast<CallbackHandler*>( data ); - - QApplication::postEvent( handler, new ConflictEvent( mapping ) ); - } - --void CallbackHandler::change_callback( OSyncEngine*, OSyncChangeUpdate *update, void *data ) -+void CallbackHandler::change_callback( OSyncChangeUpdate *update, void *data ) - { - SyncChangeUpdate change( update ); - - CallbackHandler *handler = static_cast<CallbackHandler*>( data ); - -@@ -168,11 +169,11 @@ - SyncMappingUpdate mapping( update, handler->engine()->mEngine ); - - QApplication::postEvent( handler, new MappingEvent( mapping ) ); - } - --void CallbackHandler::engine_callback( OSyncEngine*, OSyncEngineUpdate *update, void *data ) -+void CallbackHandler::engine_callback( OSyncEngineUpdate *update, void *data ) - { - SyncEngineUpdate engine( update ); - - CallbackHandler *handler = static_cast<CallbackHandler*>( data ); - -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/callbackhandler.h kitchensync/libqopensync/callbackhandler.h ---- kitchensync.orig/libqopensync/callbackhandler.h 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/callbackhandler.h 2008-05-31 11:31:48.000000000 +0200 -@@ -74,14 +74,14 @@ - class ChangeEvent; - class MappingEvent; - class EngineEvent; - class MemberEvent; - -- static void conflict_callback( OSyncEngine*, OSyncMapping*, void* ); -- static void change_callback( OSyncEngine*, OSyncChangeUpdate*, void* ); -+ static void conflict_callback( OSyncEngine*, OSyncMappingEngine*, void* ); -+ static void change_callback( OSyncChangeUpdate*, void* ); - static void mapping_callback( OSyncMappingUpdate*, void* ); -- static void engine_callback( OSyncEngine*, OSyncEngineUpdate*, void* ); -+ static void engine_callback( OSyncEngineUpdate*, void* ); - static void member_callback( OSyncMemberUpdate*, void* ); - - Engine* mEngine; - }; - -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/conversion.cpp kitchensync/libqopensync/conversion.cpp ---- kitchensync.orig/libqopensync/conversion.cpp 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/conversion.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -18,10 +18,11 @@ - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - */ - - #include <opensync/opensync.h> -+#include <opensync/opensync-format.h> - - #include "conversion.h" - - using namespace QSync; - -@@ -41,18 +42,22 @@ - - QStringList Conversion::objectTypes() const - { - Q_ASSERT( mEnvironment ); - -- OSyncFormatEnv *formatEnv = osync_conv_env_new( mEnvironment ); -+ OSyncError *error = NULL; -+ OSyncFormatEnv *formatEnv = osync_format_env_new( &error ); - Q_ASSERT( formatEnv ); - -+ osync_format_env_load_plugins(formatEnv, NULL, &error); -+ - QStringList types; -- for ( int i = 0; i < osync_conv_num_objtypes( formatEnv ); i++ ) { -- OSyncObjType *type = osync_conv_nth_objtype( formatEnv, i ); -- types.append( QString::fromUtf8( osync_objtype_get_name( type ) ) ); -- } - -- osync_conv_env_free( formatEnv ); -+ for (int i = 0; i < osync_format_env_num_objformats(formatEnv); i++) { -+ OSyncObjFormat *format = osync_format_env_nth_objformat(formatEnv, i); -+ types.append( QString::fromUtf8( osync_objformat_get_objtype(format) ) ); -+ } -+ -+ osync_format_env_free( formatEnv ); - - return types; - } -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/conversion.h kitchensync/libqopensync/conversion.h ---- kitchensync.orig/libqopensync/conversion.h 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/conversion.h 2008-05-31 11:31:48.000000000 +0200 -@@ -22,17 +22,17 @@ - #ifndef QSYNC_CONVERSION_H - #define QSYNC_CONVERSION_H - - #include <qstringlist.h> - --class OSyncEnv; -+class OSyncGroupEnv; - - namespace QSync { - - class Conversion - { -- friend class Environment; -+ friend class PluginEnv; - - public: - Conversion(); - ~Conversion(); - -@@ -45,11 +45,11 @@ - Returns the list of names of supported object types. - */ - QStringList objectTypes() const; - - private: -- OSyncEnv *mEnvironment; -+ OSyncGroupEnv *mGroupEnv; - }; - - } - - #endif -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/engine.cpp kitchensync/libqopensync/engine.cpp ---- kitchensync.orig/libqopensync/engine.cpp 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/engine.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -18,50 +18,76 @@ - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - */ - - #include <opensync/opensync.h> --#include <osengine/engine.h> -+#include <opensync/opensync-engine.h> -+ -+#include "group.h" -+#include "member.h" -+#include "result.h" - - #include "engine.h" - - using namespace QSync; - - Engine::Engine( const Group &group ) - { - OSyncError *error = 0; -- mEngine = osengine_new( group.mGroup, &error ); -+ mEngine = osync_engine_new( group.mGroup, &error ); - } - - Engine::~Engine() - { -- osengine_free( mEngine ); -+ osync_engine_unref( mEngine ); - mEngine = 0; - } - - Result Engine::initialize() - { -+ Q_ASSERT( mEngine ); -+ - OSyncError *error = 0; -- if ( !osengine_init( mEngine, &error ) ) -+ if ( !osync_engine_initialize ( mEngine, &error ) ) - return Result( &error ); - else - return Result(); - } - - void Engine::finalize() - { -- osengine_finalize( mEngine ); -+ Q_ASSERT( mEngine ); -+ -+ OSyncError *error = 0; -+ osync_engine_finalize( mEngine , &error ); - } - - Result Engine::synchronize() - { -+ Q_ASSERT( mEngine ); -+ - OSyncError *error = 0; -- if ( !osengine_synchronize( mEngine, &error ) ) -+ if ( !osync_engine_synchronize( mEngine, &error ) ) -+ return Result( &error ); -+ else -+ return Result(); -+} -+ -+Result Engine::discover( const Member &member ) -+{ -+ Q_ASSERT( mEngine ); -+ -+ OSyncError *error = 0; -+ if ( !osync_engine_discover_and_block( mEngine, member.mMember, &error ) ) - return Result( &error ); - else - return Result(); - } - - void Engine::abort() - { -- osengine_abort( mEngine ); -+ Q_ASSERT( mEngine ); -+ -+// TODO -+// osync_engine_abort( mEngine ); - } -+ -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/engine.h kitchensync/libqopensync/engine.h ---- kitchensync.orig/libqopensync/engine.h 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/engine.h 2008-05-31 11:31:48.000000000 +0200 -@@ -20,16 +20,18 @@ - */ - - #ifndef QSYNC_ENGINE_H - #define QSYNC_ENGINE_H - --#include <libqopensync/group.h> -- - class OSyncEngine; - - namespace QSync { - -+class Group; -+class Member; -+class Result; -+ - class Engine - { - friend class CallbackHandler; - - public: -@@ -57,10 +59,15 @@ - Starts the synchronization process. - */ - Result synchronize(); - - /** -+ Starts the discover process for a certain member. -+ */ -+ Result discover( const Member &member ); -+ -+ /** - Stops the synchronization process. - */ - void abort(); - - private: -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/environment.cpp kitchensync/libqopensync/environment.cpp ---- kitchensync.orig/libqopensync/environment.cpp 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/environment.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -1,172 +0,0 @@ --/* -- This file is part of libqopensync. -- -- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org> -- -- This library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Library General Public -- License as published by the Free Software Foundation; either -- version 2 of the License, or (at your option) any later version. -- -- This library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Library General Public License for more details. -- -- You should have received a copy of the GNU Library General Public License -- along with this library; see the file COPYING.LIB. If not, write to -- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- Boston, MA 02110-1301, USA. --*/ -- --#include "environment.h" -- --#include <opensync/opensync.h> -- --using namespace QSync; -- --Environment::Environment() --{ -- mEnvironment = osync_env_new(); --} -- --Environment::~Environment() --{ -- osync_env_free( mEnvironment ); --} -- --Environment::GroupIterator Environment::groupBegin() --{ -- GroupIterator it( this ); -- it.mPos = 0; -- -- return it; --} -- --Environment::GroupIterator Environment::groupEnd() --{ -- GroupIterator it( this ); -- it.mPos = groupCount(); -- -- return it; --} -- --Environment::PluginIterator Environment::pluginBegin() --{ -- PluginIterator it( this ); -- it.mPos = 0; -- -- return it; --} -- --Environment::PluginIterator Environment::pluginEnd() --{ -- PluginIterator it( this ); -- it.mPos = pluginCount(); -- -- return it; --} -- --Result Environment::initialize() --{ -- OSyncError *error = 0; -- if ( !osync_env_initialize( mEnvironment, &error ) ) -- return Result( &error ); -- else -- return Result(); --} -- --Result Environment::finalize() --{ -- OSyncError *error = 0; -- if ( !osync_env_finalize( mEnvironment, &error ) ) -- return Result( &error); -- else -- return Result(); --} -- --int Environment::groupCount() const --{ -- return osync_env_num_groups( mEnvironment ); --} -- --Group Environment::groupAt( int pos ) const --{ -- Group group; -- -- if ( pos < 0 || pos >= groupCount() ) -- return group; -- -- OSyncGroup *ogroup = osync_env_nth_group( mEnvironment, pos ); -- group.mGroup = ogroup; -- -- return group; --} -- --Group Environment::groupByName( const QString &name ) const --{ -- Group group; -- -- OSyncGroup *ogroup = osync_env_find_group( mEnvironment, name.latin1() ); -- if ( ogroup ) -- group.mGroup = ogroup; -- -- return group; --} -- --Group Environment::addGroup() --{ -- Group group; -- -- OSyncGroup *ogroup = osync_group_new( mEnvironment ); -- if ( ogroup ) -- group.mGroup = ogroup; -- -- return group; --} -- --Result Environment::removeGroup( const Group &group ) --{ -- OSyncError *error = 0; -- if ( !osync_group_delete( group.mGroup, &error ) ) -- return Result( &error ); -- else -- return Result(); --} -- --int Environment::pluginCount() const --{ -- return osync_env_num_plugins( mEnvironment ); --} -- --Plugin Environment::pluginAt( int pos ) const --{ -- Plugin plugin; -- -- if ( pos < 0 || pos >= pluginCount() ) -- return plugin; -- -- OSyncPlugin *oplugin = osync_env_nth_plugin( mEnvironment, pos ); -- plugin.mPlugin = oplugin; -- -- return plugin; --} -- --Plugin Environment::pluginByName( const QString &name ) const --{ -- Plugin plugin; -- -- OSyncPlugin *oplugin = osync_env_find_plugin( mEnvironment, name.latin1() ); -- if ( oplugin ) -- plugin.mPlugin = oplugin; -- -- return plugin; --} -- --Conversion Environment::conversion() const --{ -- Conversion conversion; -- conversion.mEnvironment = mEnvironment; -- -- return conversion; --} -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/environment.h kitchensync/libqopensync/environment.h ---- kitchensync.orig/libqopensync/environment.h 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/environment.h 2008-05-31 11:31:48.000000000 +0200 -@@ -1,199 +0,0 @@ --/* -- This file is part of libqopensync. -- -- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org> -- -- This library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Library General Public -- License as published by the Free Software Foundation; either -- version 2 of the License, or (at your option) any later version. -- -- This library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Library General Public License for more details. -- -- You should have received a copy of the GNU Library General Public License -- along with this library; see the file COPYING.LIB. If not, write to -- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- Boston, MA 02110-1301, USA. --*/ -- --#ifndef OSYNC_ENVIRONMENT_H --#define OSYNC_ENVIRONMENT_H -- --#include <qstring.h> -- --#include <libqopensync/group.h> --#include <libqopensync/plugin.h> --#include <libqopensync/result.h> --#include <libqopensync/conversion.h> -- --struct OSyncEnv; -- --namespace QSync { -- --class Environment --{ -- public: -- Environment(); -- ~Environment(); -- -- class GroupIterator -- { -- friend class Environment; -- -- public: -- GroupIterator( Environment *environment ) -- : mEnvironment( environment ), mPos( -1 ) -- { -- } -- -- GroupIterator( const GroupIterator &it ) -- { -- mEnvironment = it.mEnvironment; -- mPos = it.mPos; -- } -- -- Group operator*() -- { -- return mEnvironment->groupAt( mPos ); -- } -- -- GroupIterator &operator++() { mPos++; return *this; } -- GroupIterator &operator++( int ) { mPos++; return *this; } -- GroupIterator &operator--() { mPos--; return *this; } -- GroupIterator &operator--( int ) { mPos--; return *this; } -- bool operator==( const GroupIterator &it ) { return mEnvironment == it.mEnvironment && mPos == it.mPos; } -- bool operator!=( const GroupIterator &it ) { return mEnvironment == it.mEnvironment && mPos != it.mPos; } -- -- private: -- Environment *mEnvironment; -- int mPos; -- }; -- -- class PluginIterator -- { -- friend class Environment; -- -- public: -- PluginIterator( Environment *environment ) -- : mEnvironment( environment ), mPos( -1 ) -- { -- } -- -- PluginIterator( const PluginIterator &it ) -- { -- mEnvironment = it.mEnvironment; -- mPos = it.mPos; -- } -- -- Plugin operator*() -- { -- return mEnvironment->pluginAt( mPos ); -- } -- -- PluginIterator &operator++() { mPos++; return *this; } -- PluginIterator &operator++( int ) { mPos++; return *this; } -- PluginIterator &operator--() { mPos--; return *this; } -- PluginIterator &operator--( int ) { mPos--; return *this; } -- bool operator==( const PluginIterator &it ) { return mEnvironment == it.mEnvironment && mPos == it.mPos; } -- bool operator!=( const PluginIterator &it ) { return mEnvironment == it.mEnvironment && mPos != it.mPos; } -- -- private: -- Environment *mEnvironment; -- int mPos; -- }; -- -- /** -- Returns an iterator pointing to the first item in the group list. -- This iterator equals groupEnd() if the group list is empty. -- */ -- GroupIterator groupBegin(); -- -- /** -- Returns an iterator pointing past the last item in the group list. -- This iterator equals groupBegin() if the group list is empty. -- */ -- GroupIterator groupEnd(); -- -- /** -- Returns an iterator pointing to the first item in the plugin list. -- This iterator equals pluginEnd() if the group list is empty. -- */ -- PluginIterator pluginBegin(); -- -- /** -- Returns an iterator pointing past the last item in the plugin list. -- This iterator equals pluginBegin() if the plugin list is empty. -- */ -- PluginIterator pluginEnd(); -- -- /** -- Initializes the environment ( e.g. loads the groups and plugins ). -- Has to be called before the groups or plugins can be accessed. -- */ -- Result initialize(); -- -- /** -- Finalizes the environment ( e.g. unloads the groups and plugins ). -- Should be the last call before the object is deleted. -- */ -- Result finalize(); -- -- /** -- Returns the number of groups. -- */ -- int groupCount() const; -- -- /** -- Returns the group at position @param pos. -- */ -- Group groupAt( int pos ) const; -- -- /** -- Returns a group by name or an invalid group when the group with this -- name doesn't exists. -- */ -- Group groupByName( const QString &name ) const; -- -- /** -- Adds a new group to the environment. -- -- @returns the new group. -- */ -- Group addGroup(); -- -- /** -- Removes a group from the environment. -- */ -- Result removeGroup( const Group &group ); -- -- /** -- Returns the number of plugins. -- */ -- int pluginCount() const; -- -- /** -- Returns the plugin at position @param pos. -- */ -- Plugin pluginAt( int pos ) const; -- -- /** -- Returns a plugin by name or an invalid plugin when the plugin with this -- name doesn't exists. -- */ -- Plugin pluginByName( const QString &name ) const; -- -- /** -- Returns the conversion object of this environment. -- */ -- Conversion conversion() const; -- -- private: -- OSyncEnv *mEnvironment; --}; -- --} -- --#endif -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/filter.cpp kitchensync/libqopensync/filter.cpp ---- kitchensync.orig/libqopensync/filter.cpp 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/filter.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -18,10 +18,11 @@ - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - */ - - #include <opensync/opensync.h> -+#include <opensync/opensync-format.h> - - #include "filter.h" - - using namespace QSync; - -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/group.cpp kitchensync/libqopensync/group.cpp ---- kitchensync.orig/libqopensync/group.cpp 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/group.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -23,90 +23,22 @@ - #include <qdom.h> - #include <qfile.h> - /** hack includes **/ - - #include <opensync/opensync.h> -+#include <opensync/opensync-group.h> - - #include "conversion.h" -+#include "filter.h" -+#include "member.h" -+#include "plugin.h" -+#include "result.h" -+ - #include "group.h" - - using namespace QSync; - --/** -- This class is a quick hack for OpenSync 0.19 and 0.20 because -- the engine doesn't stores the filter settings itself when calling -- osync_group_set_objtype_enabled(), so we have to store it for every -- group in a separated config file. This class encapsulates it. -- */ --GroupConfig::GroupConfig() -- : mGroup( 0 ) --{ --} -- --QStringList GroupConfig::activeObjectTypes() const --{ -- Q_ASSERT( mGroup ); -- -- const QString fileName = QString( "%1/filter.conf" ).arg( osync_group_get_configdir( mGroup ) ); -- -- QFile file( fileName ); -- if ( !file.open( IO_ReadOnly ) ) -- return QStringList(); -- -- QDomDocument document; -- -- QString message; -- if ( !document.setContent( &file, &message ) ) { -- qDebug( "Error on loading %s: %s", fileName.latin1(), message.latin1() ); -- return QStringList(); -- } -- file.close(); -- -- QStringList objectTypes; -- -- QDomElement element = document.documentElement(); -- QDomNode node = element.firstChild(); -- while ( !node.isNull() ) { -- QDomElement childElement = node.toElement(); -- if ( !childElement.isNull() ) -- objectTypes.append( childElement.tagName() ); -- -- node = node.nextSibling(); -- } -- -- return objectTypes; --} -- --void GroupConfig::setActiveObjectTypes( const QStringList &objectTypes ) --{ -- Q_ASSERT( mGroup ); -- -- QDomDocument document( "Filter" ); -- document.appendChild( document.createProcessingInstruction( -- "xml", "version=\"1.0\" encoding=\"UTF-8\"" ) ); -- -- QDomElement element = document.createElement( "filter" ); -- document.appendChild( element ); -- -- for ( uint i = 0; i < objectTypes.count(); ++i ) { -- QDomElement entry = document.createElement( objectTypes[ i ] ); -- element.appendChild( entry ); -- } -- -- const QString fileName = QString( "%1/filter.conf" ).arg( osync_group_get_configdir( mGroup ) ); -- -- QFile file( fileName ); -- if ( !file.open( IO_WriteOnly ) ) -- return; -- -- QTextStream s( &file ); -- s.setEncoding( QTextStream::UnicodeUTF8 ); -- s << document.toString(); -- file.close(); --} -- -- - Group::Group() - : mGroup( 0 ) - { - } - -@@ -117,26 +49,10 @@ - bool Group::isValid() const - { - return ( mGroup != 0 ); - } - --Group::Iterator Group::begin() --{ -- Iterator it( this ); -- it.mPos = 0; -- -- return it; --} -- --Group::Iterator Group::end() --{ -- Iterator it( this ); -- it.mPos = memberCount(); -- -- return it; --} -- - void Group::setName( const QString &name ) - { - Q_ASSERT( mGroup ); - - osync_group_set_name( mGroup, name.latin1() ); -@@ -186,22 +102,26 @@ - return LockStale; - break; - } - } - --void Group::unlock( bool removeFile ) -+void Group::unlock() - { - Q_ASSERT( mGroup ); - -- osync_group_unlock( mGroup, removeFile ); -+ osync_group_unlock( mGroup ); - } - --Member Group::addMember() -+Member Group::addMember( const QSync::Plugin &plugin ) - { - Q_ASSERT( mGroup ); - -- OSyncMember *omember = osync_member_new( mGroup ); -+ OSyncError *error = 0; -+ -+ OSyncMember *omember = osync_member_new( &error ); -+ osync_group_add_member( mGroup, omember ); -+ osync_member_set_pluginname( omember, plugin.name().utf8() ); - - Member member; - member.mMember = omember; - - save(); -@@ -267,10 +187,34 @@ - return Result( &error ); - else - return Result(); - } - -+void Group::setUseMerger( bool use ) -+{ -+ Q_ASSERT( mGroup ); -+ osync_group_set_merger_enabled( mGroup, use ); -+} -+ -+bool Group::useMerger() const -+{ -+ Q_ASSERT( mGroup ); -+ return osync_group_get_merger_enabled( mGroup ); -+} -+ -+void Group::setUseConverter( bool use ) -+{ -+ Q_ASSERT( mGroup ); -+ osync_group_set_converter_enabled( mGroup, use ); -+} -+ -+bool Group::useConverter() const -+{ -+ Q_ASSERT( mGroup ); -+ return osync_group_get_converter_enabled( mGroup ); -+} -+ - void Group::setObjectTypeEnabled( const QString &objectType, bool enabled ) - { - Q_ASSERT( mGroup ); - - osync_group_set_objtype_enabled( mGroup, objectType.utf8(), enabled ); -@@ -279,14 +223,15 @@ - bool Group::isObjectTypeEnabled( const QString &objectType ) const - { - return osync_group_objtype_enabled( mGroup, objectType.utf8() ); - } - --GroupConfig Group::config() const -+Result Group::cleanup() const - { - Q_ASSERT( mGroup ); - -- GroupConfig config; -- config.mGroup = mGroup; -- -- return config; -+ OSyncError *error = 0; -+ if ( !osync_group_delete( mGroup, &error ) ) -+ return Result( &error ); -+ else -+ return Result(); - } -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/groupenv.cpp kitchensync/libqopensync/groupenv.cpp ---- kitchensync.orig/libqopensync/groupenv.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ kitchensync/libqopensync/groupenv.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -0,0 +1,121 @@ -+/* -+ This file is part of libqopensync. -+ -+ Copyright (c) 2005 Tobias Koenig <tokoe@kde.org> -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Library General Public -+ License as published by the Free Software Foundation; either -+ version 2 of the License, or (at your option) any later version. -+ -+ This library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Library General Public License for more details. -+ -+ You should have received a copy of the GNU Library General Public License -+ along with this library; see the file COPYING.LIB. If not, write to -+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -+ Boston, MA 02110-1301, USA. -+*/ -+ -+#include <opensync/opensync.h> -+#include <opensync/opensync-group.h> -+ -+#include "group.h" -+#include "result.h" -+ -+#include "groupenv.h" -+ -+using namespace QSync; -+ -+GroupEnv::GroupEnv() -+{ -+ OSyncError *error = 0; -+ mGroupEnv = osync_group_env_new( &error ); -+} -+ -+GroupEnv::~GroupEnv() -+{ -+ osync_group_env_free( mGroupEnv ); -+} -+ -+Result GroupEnv::initialize() -+{ -+ Q_ASSERT( mGroupEnv ); -+ -+ OSyncError *error = 0; -+ if ( !osync_group_env_load_groups( mGroupEnv, NULL, &error ) ) -+ return Result( &error ); -+ else -+ return Result(); -+} -+ -+void GroupEnv::finalize() -+{ -+} -+ -+int GroupEnv::groupCount() const -+{ -+ Q_ASSERT( mGroupEnv ); -+ -+ return osync_group_env_num_groups( mGroupEnv ); -+} -+ -+Group GroupEnv::groupAt( int pos ) const -+{ -+ Q_ASSERT( mGroupEnv ); -+ -+ Group group; -+ -+ if ( pos < 0 || pos >= groupCount() ) -+ return group; -+ -+ OSyncGroup *ogroup = osync_group_env_nth_group( mGroupEnv, pos ); -+ group.mGroup = ogroup; -+ -+ return group; -+} -+ -+Group GroupEnv::groupByName( const QString &name ) const -+{ -+ Q_ASSERT( mGroupEnv ); -+ -+ Group group; -+ -+ OSyncGroup *ogroup = osync_group_env_find_group( mGroupEnv, name.latin1() ); -+ if ( ogroup ) -+ group.mGroup = ogroup; -+ -+ return group; -+} -+ -+Group GroupEnv::addGroup( const QString &name ) -+{ -+ Q_ASSERT( mGroupEnv ); -+ -+ Group group; -+ OSyncError *error = 0; -+ -+ OSyncGroup *ogroup = osync_group_new( &error ); -+ if ( ogroup ) -+ group.mGroup = ogroup; -+ -+ group.setName( name ); -+ -+ if ( !osync_group_env_add_group( mGroupEnv, ogroup, &error ) ) { -+ Result res( &error ); -+ qDebug( "Error on adding group: %s", res.message().latin1() ); -+ } -+ -+ return group; -+} -+ -+void GroupEnv::removeGroup( const Group &group ) -+{ -+ Q_ASSERT( mGroupEnv ); -+ -+ group.cleanup(); -+ -+ osync_group_env_remove_group( mGroupEnv, group.mGroup ); -+} -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/groupenv.h kitchensync/libqopensync/groupenv.h ---- kitchensync.orig/libqopensync/groupenv.h 1970-01-01 01:00:00.000000000 +0100 -+++ kitchensync/libqopensync/groupenv.h 2008-05-31 11:31:48.000000000 +0200 -@@ -0,0 +1,86 @@ -+/* -+ This file is part of libqopensync. -+ -+ Copyright (c) 2005 Tobias Koenig <tokoe@kde.org> -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Library General Public -+ License as published by the Free Software Foundation; either -+ version 2 of the License, or (at your option) any later version. -+ -+ This library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Library General Public License for more details. -+ -+ You should have received a copy of the GNU Library General Public License -+ along with this library; see the file COPYING.LIB. If not, write to -+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -+ Boston, MA 02110-1301, USA. -+*/ -+ -+#ifndef OSYNC_GROUPENV_H -+#define OSYNC_GROUPENV_H -+ -+#include <qstring.h> -+ -+struct OSyncGroupEnv; -+ -+namespace QSync { -+ -+class Group; -+class Result; -+ -+class GroupEnv -+{ -+ public: -+ GroupEnv(); -+ ~GroupEnv(); -+ -+ /** -+ Initializes the environment ( e.g. loads the groups and plugins ). -+ Has to be called before the groups or plugins can be accessed. -+ */ -+ Result initialize(); -+ -+ /** -+ Finalizes the environment ( e.g. unloads the groups and plugins ). -+ Should be the last call before the object is deleted. -+ */ -+ void finalize(); -+ -+ /** -+ Returns the number of groups. -+ */ -+ int groupCount() const; -+ -+ /** -+ Returns the group at position @param pos. -+ */ -+ Group groupAt( int pos ) const; -+ -+ /** -+ Returns a group by name or an invalid group when the group with this -+ name doesn't exists. -+ */ -+ Group groupByName( const QString &name ) const; -+ -+ /** -+ Adds a new group to the environment. -+ -+ @returns the new group. -+ */ -+ Group addGroup( const QString &name ); -+ -+ /** -+ Removes a group from the environment. -+ */ -+ void removeGroup( const Group &group ); -+ -+ private: -+ OSyncGroupEnv *mGroupEnv; -+}; -+ -+} -+ -+#endif -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/group.h kitchensync/libqopensync/group.h ---- kitchensync.orig/libqopensync/group.h 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/group.h 2008-05-31 11:31:48.000000000 +0200 -@@ -23,39 +23,26 @@ - #define QSYNC_GROUP_H - - #include <qdatetime.h> - #include <qstringlist.h> - --#include <libqopensync/filter.h> --#include <libqopensync/member.h> -- - class OSyncGroup; - - namespace QSync { - -+class Filter; -+class Member; -+class Plugin; -+class Result; -+ - /** - @internal - */ --class GroupConfig --{ -- friend class Group; -- -- public: -- GroupConfig(); -- -- QStringList activeObjectTypes() const; -- void setActiveObjectTypes( const QStringList &objectTypes ); -- -- private: -- OSyncGroup *mGroup; --}; -- -- - class Group - { - friend class Engine; -- friend class Environment; -+ friend class GroupEnv; - - public: - enum LockType - { - LockOk, -@@ -69,55 +56,10 @@ - /** - Returns whether the object is a valid group. - */ - bool isValid() const; - -- class Iterator -- { -- friend class Group; -- -- public: -- Iterator( Group *group ) -- : mGroup( group ), mPos( -1 ) -- { -- } -- -- Iterator( const Iterator &it ) -- { -- mGroup = it.mGroup; -- mPos = it.mPos; -- } -- -- Member operator*() -- { -- return mGroup->memberAt( mPos ); -- } -- -- Iterator &operator++() { mPos++; return *this; } -- Iterator &operator++( int ) { mPos++; return *this; } -- Iterator &operator--() { mPos--; return *this; } -- Iterator &operator--( int ) { mPos--; return *this; } -- bool operator==( const Iterator &it ) { return mGroup == it.mGroup && mPos == it.mPos; } -- bool operator!=( const Iterator &it ) { return mGroup == it.mGroup && mPos != it.mPos; } -- -- private: -- Group *mGroup; -- int mPos; -- }; -- -- /** -- Returns an iterator pointing to the first item in the member list. -- This iterator equals end() if the member list is empty. -- */ -- Iterator begin(); -- -- /** -- Returns an iterator pointing past the last item in the member list. -- This iterator equals begin() if the member list is empty. -- */ -- Iterator end(); -- - /** - Sets the name of the group. - */ - void setName( const QString &name ); - -@@ -143,21 +85,19 @@ - */ - LockType lock(); - - /** - Unlocks the group. -- -- @param removeFile Whether the lock file shall be removed. - */ -- void unlock( bool removeFile = true ); -+ void unlock(); - - /** - Adds a new member to the group. - - @returns the new member. - */ -- Member addMember(); -+ Member addMember( const QSync::Plugin &plugin ); - - /** - Removes a member from the group. - */ - void removeMember( const Member &member ); -@@ -193,23 +133,41 @@ - this group. - */ - bool isObjectTypeEnabled( const QString &objectType ) const; - - /** -- Saves the configuration to hard disc. -+ Sets whether this group uses the merger for synchronization. - */ -- Result save(); -+ void setUseMerger( bool use ); - - /** -- Returns the config object of this group. -+ Returns whether this group uses the merger for synchronization. -+ */ -+ bool useMerger() const; - -- Note: This method is only available for OpenSync 0.19 and 0.20. -+ /** -+ Sets whether this group uses the converter for synchronization. - */ -- GroupConfig config() const; -+ void setUseConverter( bool use ); -+ -+ /** -+ Returns whether this group uses the converter for synchronization. -+ */ -+ bool useConverter() const; -+ -+ /** -+ Saves the configuration to hard disc. -+ */ -+ Result save(); - - bool operator==( const Group &group ) const { return mGroup == group.mGroup; } - -+ /** -+ Removes all group configurations from the hard disc. -+ */ -+ Result cleanup() const; -+ - private: - OSyncGroup *mGroup; - }; - - } -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/Makefile.am kitchensync/libqopensync/Makefile.am ---- kitchensync.orig/libqopensync/Makefile.am 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/Makefile.am 2008-05-31 11:31:48.000000000 +0200 -@@ -1,19 +1,23 @@ - INCLUDES = -I$(top_srcdir)/kitchensync/src \ - -I$(top_srcdir)/kitchensync \ - -I$(top_srcdir) \ - $(OPENSYNC_CFLAGS) \ -- $(OPENSYNCENGINE_CFLAGS) \ -+ $(GLIB_CFLAGS) \ - $(all_includes) - - lib_LTLIBRARIES = libqopensync.la - --libqopensync_la_SOURCES = callbackhandler.cpp conversion.cpp engine.cpp environment.cpp filter.cpp group.cpp \ -+libqopensync_la_SOURCES = callbackhandler.cpp engine.cpp groupenv.cpp pluginenv.cpp filter.cpp group.cpp \ - member.cpp plugin.cpp result.cpp syncmapping.cpp syncupdates.cpp \ - syncchange.cpp --libqopensync_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) -no-undefined --libqopensync_la_LIBADD = $(LIB_KDEUI) $(OPENSYNC_LIBS) $(OPENSYNCENGINE_LIBS) -+ -+# FIXME: -no-undefined break the build for some unkown reason - libopensync broken?! -+#libqopensync_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) -no-undefined -+libqopensync_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) -+libqopensync_la_LIBADD = $(LIB_KDEUI) $(OPENSYNC_LIBS) -+ - - METASOURCES = AUTO - - messages: rc.cpp - $(XGETTEXT) *.cpp *.h -o $(podir)/libqopensync.pot -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/member.cpp kitchensync/libqopensync/member.cpp ---- kitchensync.orig/libqopensync/member.cpp 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/member.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -18,12 +18,16 @@ - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - */ - - #include <opensync/opensync.h> -+#include <opensync/opensync-group.h> -+ - #include <stdlib.h> - -+#include "result.h" -+ - #include "member.h" - - using namespace QSync; - - Member::Member() -@@ -40,13 +44,13 @@ - OSyncError *error = 0; - - if ( !mMember ) - return false; - -- if ( !osync_member_instance_plugin( mMember, pluginName().utf8(), &error ) ) { -+ if ( !osync_member_load( mMember, configurationDirectory().utf8(), &error ) ) { - qDebug( "Plugin %s is not valid: %s", pluginName().latin1(), osync_error_print( &error ) ); -- osync_error_free( &error ); -+ osync_error_unref( &error ); - return false; - } - - return true; - } -@@ -63,23 +67,10 @@ - Q_ASSERT( mMember ); - - return QString::fromLatin1( osync_member_get_pluginname( mMember ) ); - } - --Plugin Member::plugin() const --{ -- Q_ASSERT( mMember ); -- -- Plugin plugin; -- -- OSyncPlugin *oplugin = osync_member_get_plugin( mMember ); -- if ( oplugin ) -- plugin.mPlugin = oplugin; -- -- return plugin; --} -- - int Member::id() const - { - Q_ASSERT( mMember ); - - return osync_member_get_id( mMember ); -@@ -101,31 +92,32 @@ - - void Member::setConfiguration( const QByteArray &configurationData ) - { - Q_ASSERT( mMember ); - -- osync_member_set_config( mMember, configurationData.data(), configurationData.size() ); -+ osync_member_set_config( mMember, configurationData.data() ); - } - - Result Member::configuration( QByteArray &configurationData, bool useDefault ) - { - Q_ASSERT( mMember ); - -- char *data; -- int size; -+ const char *data; -+ int size = 0; - - OSyncError *error = 0; -- osync_bool ok = false; - if ( useDefault ) -- ok = osync_member_get_config_or_default( mMember, &data, &size, &error ); -+ data = osync_member_get_config_or_default( mMember, &error ); - else -- ok = osync_member_get_config( mMember, &data, &size, &error ); -+ data = osync_member_get_config( mMember, &error ); - -- if ( !ok ) { -+ -+ if ( !data ) { - return Result( &error ); - } else { -- configurationData.resize( size ); -+ size = strlen(data); -+ configurationData.resize( size ); - memcpy( configurationData.data(), data, size ); - - return Result(); - } - } -@@ -139,50 +131,29 @@ - return Result( &error ); - else - return Result(); - } - --Result Member::instance( const Plugin &plugin ) -+Result Member::instance() - { - OSyncError *error = 0; -- if ( !osync_member_instance_plugin( mMember, plugin.name().utf8(), &error ) ) -+ if ( !osync_member_load( mMember, configurationDirectory().utf8(), &error ) ) - return Result( &error ); - else - return Result(); - } - - bool Member::operator==( const Member &member ) const - { - return mMember == member.mMember; - } - --QString Member::scanDevices( const QString &query ) --{ -- Q_ASSERT( mMember ); -- -- OSyncError *error = 0; -- char *data = (char*)osync_member_call_plugin( mMember, "scan_devices", const_cast<char*>( query.utf8().data() ), &error ); -- if ( error != 0 ) { -- osync_error_free( &error ); -- return QString(); -- } else { -- QString xml = QString::fromUtf8( data ); -- free( data ); -- return xml; -- } --} -- --bool Member::testConnection( const QString &configuration ) -+Result Member::cleanup() const - { - Q_ASSERT( mMember ); - - OSyncError *error = 0; -- int *result = (int*)osync_member_call_plugin( mMember, "test_connection", const_cast<char*>( configuration.utf8().data() ), &error ); -- if ( error != 0 ) { -- osync_error_free( &error ); -- return false; -- } else { -- bool value = ( *result == 1 ? true : false ); -- free( result ); -- return value; -- } -+ if ( !osync_member_delete( mMember, &error ) ) -+ return Result( &error ); -+ else -+ return Result(); - } -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/member.h kitchensync/libqopensync/member.h ---- kitchensync.orig/libqopensync/member.h 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/member.h 2008-05-31 11:31:48.000000000 +0200 -@@ -20,23 +20,25 @@ - */ - - #ifndef QSYNC_MEMBER_H - #define QSYNC_MEMBER_H - --#include <libqopensync/plugin.h> --#include <libqopensync/result.h> --#include <libqopensync/plugin.h> -+#include <qstring.h> - - class OSyncMember; - - namespace QSync { - -+class Result; -+ - class Member - { - friend class Group; -+ friend class Engine; - friend class SyncChange; - friend class SyncMemberUpdate; -+ friend class SyncChangeUpdate; - - public: - Member(); - ~Member(); - -@@ -54,15 +56,10 @@ - Returns the name of the plugin, the member belongs to. - */ - QString pluginName() const; - - /** -- Returns the plugin, the member belongs to. -- */ -- Plugin plugin() const; -- -- /** - Returns the id of the plugin. - */ - int id() const; - - /** -@@ -100,11 +97,11 @@ - Result save(); - - /** - Make this member an instance of the given plugin. - */ -- Result instance( const Plugin & ); -+ Result instance(); - - bool operator==( const Member& ) const; - - /** - This method can be used to query the plugin for scanning devices. -@@ -117,10 +114,16 @@ - This method can be used to test whether the plugin can connect - to the device with the given configuration. - */ - bool testConnection( const QString &configuration ); - -+ -+ /** -+ * Deletes the member's information from the hard disc. -+ */ -+ Result cleanup() const; -+ - private: - OSyncMember *mMember; - }; - - } -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/plugin.cpp kitchensync/libqopensync/plugin.cpp ---- kitchensync.orig/libqopensync/plugin.cpp 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/plugin.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -18,10 +18,11 @@ - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - */ - - #include <opensync/opensync.h> -+#include <opensync/opensync-plugin.h> - - #include "plugin.h" - - using namespace QSync; - -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/pluginenv.cpp kitchensync/libqopensync/pluginenv.cpp ---- kitchensync.orig/libqopensync/pluginenv.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ kitchensync/libqopensync/pluginenv.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -0,0 +1,96 @@ -+/* -+ This file is part of libqopensync. -+ -+ Copyright (c) 2005 Tobias Koenig <tokoe@kde.org> -+ Copyright (c) 2007 Daniel Gollub <dgollub@suse.de> -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Library General Public -+ License as published by the Free Software Foundation; either -+ version 2 of the License, or (at your option) any later version. -+ -+ This library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Library General Public License for more details. -+ -+ You should have received a copy of the GNU Library General Public License -+ along with this library; see the file COPYING.LIB. If not, write to -+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -+ Boston, MA 02110-1301, USA. -+*/ -+ -+#include <opensync/opensync.h> -+#include <opensync/opensync-plugin.h> -+ -+#include "plugin.h" -+#include "result.h" -+ -+#include "pluginenv.h" -+ -+using namespace QSync; -+ -+PluginEnv::PluginEnv() -+{ -+ OSyncError *error = 0; -+ mPluginEnv = osync_plugin_env_new( &error ); -+} -+ -+PluginEnv::~PluginEnv() -+{ -+ osync_plugin_env_free( mPluginEnv ); -+} -+ -+Result PluginEnv::initialize() -+{ -+ OSyncError *error = 0; -+ if ( !osync_plugin_env_load( mPluginEnv, NULL, &error ) ) -+ return Result( &error ); -+ else -+ return Result(); -+} -+ -+Result PluginEnv::finalize() -+{ -+ osync_plugin_env_free( mPluginEnv ); -+ return Result(); -+} -+ -+int PluginEnv::pluginCount() const -+{ -+ return osync_plugin_env_num_plugins( mPluginEnv ); -+} -+ -+Plugin PluginEnv::pluginAt( int pos ) const -+{ -+ Plugin plugin; -+ -+ if ( pos < 0 || pos >= pluginCount() ) -+ return plugin; -+ -+ OSyncPlugin *oplugin = osync_plugin_env_nth_plugin( mPluginEnv, pos ); -+ plugin.mPlugin = oplugin; -+ -+ return plugin; -+} -+ -+Plugin PluginEnv::pluginByName( const QString &name ) const -+{ -+ Plugin plugin; -+ -+ OSyncPlugin *oplugin = osync_plugin_env_find_plugin( mPluginEnv, name.latin1() ); -+ if ( oplugin ) -+ plugin.mPlugin = oplugin; -+ -+ return plugin; -+} -+ -+/* -+Conversion PluginEnv::conversion() const -+{ -+ Conversion conversion; -+ conversion.mPluginEnv = mPluginEnv; -+ -+ return conversion; -+} -+*/ -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/pluginenv.h kitchensync/libqopensync/pluginenv.h ---- kitchensync.orig/libqopensync/pluginenv.h 1970-01-01 01:00:00.000000000 +0100 -+++ kitchensync/libqopensync/pluginenv.h 2008-05-31 11:31:48.000000000 +0200 -@@ -0,0 +1,80 @@ -+/* -+ This file is part of libqopensync. -+ -+ Copyright (c) 2005 Tobias Koenig <tokoe@kde.org> -+ Copyright (c) 2007 Daniel Gollub <dgollub@suse.de> -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Library General Public -+ License as published by the Free Software Foundation; either -+ version 2 of the License, or (at your option) any later version. -+ -+ This library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Library General Public License for more details. -+ -+ You should have received a copy of the GNU Library General Public License -+ along with this library; see the file COPYING.LIB. If not, write to -+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -+ Boston, MA 02110-1301, USA. -+*/ -+ -+#ifndef OSYNC_PLUGINENV_H -+#define OSYNC_PLUGINENV_H -+ -+#include <qstring.h> -+ -+struct OSyncPluginEnv; -+ -+namespace QSync { -+ -+class Plugin; -+class Result; -+ -+class PluginEnv -+{ -+ public: -+ PluginEnv(); -+ ~PluginEnv(); -+ -+ /** -+ Initializes the environment ( e.g. loads the groups and plugins ). -+ Has to be called before the groups or plugins can be accessed. -+ */ -+ Result initialize(); -+ -+ /** -+ Finalizes the environment ( e.g. unloads the groups and plugins ). -+ Should be the last call before the object is deleted. -+ */ -+ Result finalize(); -+ -+ /** -+ Returns the number of plugins. -+ */ -+ int pluginCount() const; -+ -+ /** -+ Returns the plugin at position @param pos. -+ */ -+ Plugin pluginAt( int pos ) const; -+ -+ /** -+ Returns a plugin by name or an invalid plugin when the plugin with this -+ name doesn't exists. -+ */ -+ Plugin pluginByName( const QString &name ) const; -+ -+ /** -+ Returns the conversion object of this environment. -+ */ -+// Conversion conversion() const; -+ -+ private: -+ OSyncPluginEnv *mPluginEnv; -+}; -+ -+} -+ -+#endif -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/plugin.h kitchensync/libqopensync/plugin.h ---- kitchensync.orig/libqopensync/plugin.h 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/plugin.h 2008-05-31 11:31:48.000000000 +0200 -@@ -28,11 +28,11 @@ - - namespace QSync { - - class Plugin - { -- friend class Environment; -+ friend class PluginEnv; - friend class Member; - - public: - Plugin(); - ~Plugin(); -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/result.cpp kitchensync/libqopensync/result.cpp ---- kitchensync.orig/libqopensync/result.cpp 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/result.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -98,11 +98,11 @@ - mType = type; - mName = QString::fromUtf8( osync_error_get_name( error ) ); - mMessage = QString::fromUtf8( osync_error_print( error ) ); - - if ( deleteError ) -- osync_error_free( error ); -+ osync_error_unref( error ); - } - - Result::~Result() - { - } -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/syncchange.cpp kitchensync/libqopensync/syncchange.cpp ---- kitchensync.orig/libqopensync/syncchange.cpp 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/syncchange.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -17,12 +17,17 @@ - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - */ - -+#include <stdlib.h> -+ - #include <opensync/file.h> -+ - #include <opensync/opensync.h> -+#include <opensync/opensync-data.h> -+#include <opensync/opensync-format.h> - - #include "syncchange.h" - - using namespace QSync; - -@@ -62,73 +67,85 @@ - QString SyncChange::hash() const - { - return QString::fromUtf8( osync_change_get_hash( mSyncChange ) ); - } - --void SyncChange::setData( const QString &data ) -+void SyncChange::setData( const QString &data , OSyncObjFormat *format ) - { -- osync_change_set_data( mSyncChange, const_cast<char*>( data.utf8().data() ), data.utf8().size(), true ); -+ OSyncError *error = 0; -+ -+ OSyncData *odata = osync_data_new( const_cast<char*>( data.utf8().data() ), data.utf8().size(), format, &error ); -+ osync_change_set_data( mSyncChange, odata ); - } - - QString SyncChange::data() const - { -- int size = osync_change_get_datasize( mSyncChange ); -+ char *buf; -+ unsigned int size; -+ -+ OSyncData *data = osync_change_get_data( mSyncChange ); -+ -+ osync_data_get_data( data, &buf, &size ); - - QString content; - if ( objectFormatName() == "file" ) { -- fileFormat *format = (fileFormat*)osync_change_get_data( mSyncChange ); -+ OSyncFileFormat *format = (OSyncFileFormat*) buf; - if ( format ) - content = QString::fromUtf8( format->data, format->size ); - } else -- content = QString::fromUtf8( osync_change_get_data( mSyncChange ), size ); -+ content = QString::fromUtf8( buf, size ); -+ -+ free( buf ); - - return content; - } - - bool SyncChange::hasData() const - { -- return osync_change_has_data( mSyncChange ); -+ return osync_data_has_data( osync_change_get_data( mSyncChange ) ); - } - - QString SyncChange::objectFormatName() const - { -- OSyncObjFormat *format = osync_change_get_objformat( mSyncChange ); -+ OSyncObjFormat *format = osync_data_get_objformat( osync_change_get_data( mSyncChange ) ); - Q_ASSERT( format ); - - return QString::fromUtf8( osync_objformat_get_name( format ) ); - } - -+/* - Member SyncChange::member() const - { - OSyncMember *omember = osync_change_get_member( mSyncChange ); - - Member m; - m.mMember = omember; - - return m; - } -+*/ - - void SyncChange::setChangeType( Type changeType ) - { - OSyncChangeType ochangeType; - - switch ( changeType ) { - case AddedChange: -- ochangeType = CHANGE_ADDED; -+ ochangeType = OSYNC_CHANGE_TYPE_ADDED; - break; - case UnmodifiedChange: -- ochangeType = CHANGE_UNMODIFIED; -+ ochangeType = OSYNC_CHANGE_TYPE_UNMODIFIED; - break; - case DeletedChange: -- ochangeType = CHANGE_DELETED; -+ ochangeType = OSYNC_CHANGE_TYPE_DELETED; - break; - case ModifiedChange: -- ochangeType = CHANGE_MODIFIED; -+ ochangeType = OSYNC_CHANGE_TYPE_MODIFIED; - break; - case UnknownChange: - default: -- ochangeType = CHANGE_UNKNOWN; -+ ochangeType = OSYNC_CHANGE_TYPE_UNKNOWN; - break; - } - - osync_change_set_changetype( mSyncChange, ochangeType ); - } -@@ -136,23 +153,23 @@ - SyncChange::Type SyncChange::changeType() const - { - OSyncChangeType ochangeType = osync_change_get_changetype( mSyncChange ); - - switch ( ochangeType ) { -- case CHANGE_ADDED: -+ case OSYNC_CHANGE_TYPE_ADDED: - return AddedChange; - break; -- case CHANGE_UNMODIFIED: -+ case OSYNC_CHANGE_TYPE_UNMODIFIED: - return UnmodifiedChange; - break; -- case CHANGE_DELETED: -+ case OSYNC_CHANGE_TYPE_DELETED: - return DeletedChange; - break; -- case CHANGE_MODIFIED: -+ case OSYNC_CHANGE_TYPE_MODIFIED: - return ModifiedChange; - break; -- case CHANGE_UNKNOWN: -+ case OSYNC_CHANGE_TYPE_UNKNOWN: - default: - return UnknownChange; - break; - } - } -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/syncchange.h kitchensync/libqopensync/syncchange.h ---- kitchensync.orig/libqopensync/syncchange.h 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/syncchange.h 2008-05-31 11:31:48.000000000 +0200 -@@ -23,10 +23,11 @@ - #define QSYNC_SYNCCHANGE_H - - #include <libqopensync/member.h> - - class OSyncChange; -+class OSyncObjFormat; - - namespace QSync { - - class SyncChange - { -@@ -72,11 +73,11 @@ - QString hash() const; - - /** - Sets the data provided by the plugin. - */ -- void setData( const QString &data ); -+ void setData( const QString &data, OSyncObjFormat *format ); - - /** - Returns the data provided by the plugin. - */ - QString data() const; -@@ -92,11 +93,11 @@ - QString objectFormatName() const; - - /** - Returns the parent member of this change. - */ -- Member member() const; -+// Member member() const; - - /** - Sets the change type. - */ - void setChangeType( Type changeType ); -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/syncmapping.cpp kitchensync/libqopensync/syncmapping.cpp ---- kitchensync.orig/libqopensync/syncmapping.cpp 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/syncmapping.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -18,83 +18,90 @@ - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - */ - - #include <qstring.h> --#include <osengine/engine.h> -+#include <opensync/opensync.h> -+#include <opensync/opensync-engine.h> - - #include "syncmapping.h" - - using namespace QSync; - - SyncMapping::SyncMapping() -- : mEngine( 0 ), mMapping( 0 ) -+ : mEngine( 0 ), mMappingEngine( 0 ) - { - } - --SyncMapping::SyncMapping( OSyncMapping *mapping, OSyncEngine *engine ) -- : mEngine( engine ), mMapping( mapping ) -+SyncMapping::SyncMapping( OSyncMappingEngine *mapping, OSyncEngine *engine ) -+ : mEngine( engine ), mMappingEngine( mapping ) - { - } - - SyncMapping::~SyncMapping() - { - } - - bool SyncMapping::isValid() const - { -- return ( mEngine != 0 && mMapping != 0 ); -+ return ( mEngine != 0 && mMappingEngine != 0 ); - } - -+/* - long long SyncMapping::id() const - { -- Q_ASSERT( mMapping ); -+ Q_ASSERT( mMappingEngine ); - -- return osengine_mapping_get_id( mMapping ); -+ return osync_mapping_engine_get_id( mMappingEngine ); - } -+*/ - - void SyncMapping::duplicate() - { - Q_ASSERT( mEngine ); -- Q_ASSERT( mMapping ); -+ Q_ASSERT( mMappingEngine ); -+ -+ OSyncError *error = 0; - -- osengine_mapping_duplicate( mEngine, mMapping ); -+ osync_mapping_engine_duplicate( mMappingEngine, &error ); - } - - void SyncMapping::solve( const SyncChange &change ) - { - Q_ASSERT( mEngine ); -- Q_ASSERT( mMapping ); -+ Q_ASSERT( mMappingEngine ); - Q_ASSERT( change.isValid() ); - -- osengine_mapping_solve( mEngine, mMapping, change.mSyncChange ); -+ OSyncError *error = 0; -+ -+ osync_mapping_engine_solve( mMappingEngine, change.mSyncChange, &error ); - } - - void SyncMapping::ignore() - { - Q_ASSERT( mEngine ); -- Q_ASSERT( mMapping ); -+ Q_ASSERT( mMappingEngine ); - - //TODO: error should be returned as Result - OSyncError *error = 0; -- osengine_mapping_ignore_conflict( mEngine, mMapping, &error ); -+ osync_mapping_engine_ignore( mMappingEngine, &error ); - } - - int SyncMapping::changesCount() const - { -- Q_ASSERT( mMapping ); -+ Q_ASSERT( mMappingEngine ); - -- return osengine_mapping_num_changes( mMapping ); -+ return osync_mapping_engine_num_changes( mMappingEngine ); - } - - SyncChange SyncMapping::changeAt( int pos ) - { -- Q_ASSERT( mMapping ); -+ Q_ASSERT( mMappingEngine ); - -- if ( pos < 0 || pos >= osengine_mapping_num_changes( mMapping ) ) -+ if ( pos < 0 || pos >= osync_mapping_engine_num_changes( mMappingEngine ) ) - return SyncChange(); - -- OSyncChange *ochange = osengine_mapping_nth_change( mMapping, pos ); -+ OSyncChange *ochange = osync_mapping_engine_nth_change( mMappingEngine, pos ); - - return SyncChange( ochange ); - } - -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/syncmapping.h kitchensync/libqopensync/syncmapping.h ---- kitchensync.orig/libqopensync/syncmapping.h 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/syncmapping.h 2008-05-31 11:31:48.000000000 +0200 -@@ -23,21 +23,21 @@ - #define QSYNC_SYNCMAPPING_H - - #include <libqopensync/syncchange.h> - - class OSyncEngine; --class OSyncMapping; -+class OSyncMappingEngine; - - namespace QSync { - - class SyncMapping - { - friend class SyncMappingUpdate; - - public: - SyncMapping(); -- SyncMapping( OSyncMapping*, OSyncEngine* ); -+ SyncMapping( OSyncMappingEngine*, OSyncEngine* ); - ~SyncMapping(); - - bool isValid() const; - - long long id() const; -@@ -49,11 +49,11 @@ - int changesCount() const; - SyncChange changeAt( int pos ); - - private: - OSyncEngine *mEngine; -- OSyncMapping *mMapping; -+ OSyncMappingEngine *mMappingEngine; - }; - - } - - #endif -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/syncupdates.cpp kitchensync/libqopensync/syncupdates.cpp ---- kitchensync.orig/libqopensync/syncupdates.cpp 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/syncupdates.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -17,11 +17,12 @@ - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - */ - --#include <osengine/engine.h> -+#include <opensync/opensync.h> -+#include <opensync/opensync-engine.h> - - #include "syncupdates.h" - - using namespace QSync; - -@@ -30,36 +31,30 @@ - } - - SyncMemberUpdate::SyncMemberUpdate( OSyncMemberUpdate *update ) - { - switch ( update->type ) { -- case MEMBER_CONNECTED: -+ case OSYNC_CLIENT_EVENT_CONNECTED: - mType = Connected; - break; -- case MEMBER_SENT_CHANGES: -- mType = SentChanges; -- break; -- case MEMBER_COMMITTED_ALL: -- mType = CommittedAll; -- break; -- case MEMBER_DISCONNECTED: -+ case OSYNC_CLIENT_EVENT_DISCONNECTED: - mType = Disconnected; - break; -- case MEMBER_CONNECT_ERROR: -- mType = ConnectError; -+ case OSYNC_CLIENT_EVENT_READ: -+ mType = Read; - break; -- case MEMBER_GET_CHANGES_ERROR: -- mType = GetChangesError; -+ case OSYNC_CLIENT_EVENT_WRITTEN: -+ mType = Written; - break; -- case MEMBER_COMMITTED_ALL_ERROR: -- mType = CommittedAllError; -+ case OSYNC_CLIENT_EVENT_SYNC_DONE: -+ mType = SyncDone; - break; -- case MEMBER_SYNC_DONE_ERROR: -- mType = SyncDoneError; -+ case OSYNC_CLIENT_EVENT_DISCOVERED: -+ mType = Discovered; - break; -- case MEMBER_DISCONNECT_ERROR: -- mType = DisconnectedError; -+ case OSYNC_CLIENT_EVENT_ERROR: -+ mType = Error; - break; - } - - if ( update->error ) - mResult = Result( &(update->error) ); -@@ -92,32 +87,26 @@ - } - - SyncChangeUpdate::SyncChangeUpdate( OSyncChangeUpdate *update ) - { - switch ( update->type ) { -- case CHANGE_RECEIVED: -- mType = Received; -- break; -- case CHANGE_RECEIVED_INFO: -- mType = ReceivedInfo; -+ case OSYNC_CHANGE_EVENT_READ: -+ mType = Read; - break; -- case CHANGE_SENT: -- mType = Sent; -+ case OSYNC_CHANGE_EVENT_WRITTEN: -+ mType = Written; - break; -- case CHANGE_WRITE_ERROR: -- mType = WriteError; -- break; -- case CHANGE_RECV_ERROR: -- mType = ReceiveError; -+ case OSYNC_CHANGE_EVENT_ERROR: -+ mType = Error; - break; - } - - if ( update->error ) - mResult = Result( &(update->error) ); - - mChange = SyncChange( update->change ); -- mMemberId = update->member_id; -+ mMember.mMember = update->member; - mMappingId = update->mapping_id; - } - - SyncChangeUpdate::~SyncChangeUpdate() - { -@@ -136,13 +125,13 @@ - SyncChange SyncChangeUpdate::change() const - { - return mChange; - } - --int SyncChangeUpdate::memberId() const -+Member SyncChangeUpdate::member() const - { -- return mMemberId; -+ return mMember; - } - - int SyncChangeUpdate::mappingId() const - { - return mMappingId; -@@ -153,27 +142,29 @@ - } - - SyncMappingUpdate::SyncMappingUpdate( OSyncMappingUpdate *update, OSyncEngine *engine ) - { - switch ( update->type ) { -- case MAPPING_SOLVED: -+ case OSYNC_MAPPING_EVENT_SOLVED: - mType = Solved; - break; -- case MAPPING_SYNCED: -- mType = Synced; -- break; -- case MAPPING_WRITE_ERROR: -- mType = WriteError; -+// case OSYNC_MAPPING_EVENT_SYNCED: -+ // mType = Synced; -+ // break; -+ case OSYNC_MAPPING_EVENT_ERROR: -+ mType = Error; - break; - } - - if ( update->error ) - mResult = Result( &(update->error) ); - - mWinner = update->winner; - mMapping.mEngine = engine; -- mMapping.mMapping = update->mapping; -+ -+ // TODO PORTING -+// mMapping.mMapping = update->mapping; - } - - SyncMappingUpdate::~SyncMappingUpdate() - { - } -@@ -203,34 +194,37 @@ - } - - SyncEngineUpdate::SyncEngineUpdate( OSyncEngineUpdate *update ) - { - switch ( update->type ) { -- case ENG_ENDPHASE_CON: -- mType = EndPhaseConnected; -+ case OSYNC_ENGINE_EVENT_CONNECTED: -+ mType = Connected; - break; -- case ENG_ENDPHASE_READ: -- mType = EndPhaseRead; -+ case OSYNC_ENGINE_EVENT_READ: -+ mType = Read; - break; -- case ENG_ENDPHASE_WRITE: -- mType = EndPhaseWrite; -+ case OSYNC_ENGINE_EVENT_WRITTEN: -+ mType = Written; - break; -- case ENG_ENDPHASE_DISCON: -- mType = EndPhaseDisconnected; -+ case OSYNC_ENGINE_EVENT_DISCONNECTED: -+ mType = Disconnected; - break; -- case ENG_ERROR: -+ case OSYNC_ENGINE_EVENT_ERROR: - mType = Error; - break; -- case ENG_SYNC_SUCCESSFULL: -- mType = SyncSuccessfull; -+ case OSYNC_ENGINE_EVENT_SUCCESSFUL: -+ mType = SyncSuccessful; - break; -- case ENG_PREV_UNCLEAN: -+ case OSYNC_ENGINE_EVENT_PREV_UNCLEAN: - mType = PrevUnclean; - break; -- case ENG_END_CONFLICTS: -+ case OSYNC_ENGINE_EVENT_END_CONFLICTS: - mType = EndConflicts; - break; -+ case OSYNC_ENGINE_EVENT_SYNC_DONE: -+ mType = SyncDone; -+ break; - } - - if ( update->error ) - mResult = Result( &(update->error) ); - } -diff --exclude=.svn -NrU5 kitchensync.orig/libqopensync/syncupdates.h kitchensync/libqopensync/syncupdates.h ---- kitchensync.orig/libqopensync/syncupdates.h 2008-05-31 11:37:13.000000000 +0200 -+++ kitchensync/libqopensync/syncupdates.h 2008-05-31 11:31:48.000000000 +0200 -@@ -40,18 +40,16 @@ - friend class CallbackHandler; - - public: - enum Type { - Connected, -- SentChanges, -- CommittedAll, - Disconnected, -- ConnectError, -- GetChangesError, -- CommittedAllError, -- SyncDoneError, -- DisconnectedError -+ Read, -+ Written, -+ SyncDone, -+ Discovered, -+ Error - }; - - SyncMemberUpdate(); - SyncMemberUpdate( OSyncMemberUpdate* ); - ~SyncMemberUpdate(); -@@ -70,44 +68,42 @@ - { - friend class CallbackHandler; - - public: - enum Type { -- Received = 1, -- ReceivedInfo, -- Sent, -- WriteError, -- ReceiveError -+ Read = 1, -+ Written, -+ Error - }; - - SyncChangeUpdate(); - SyncChangeUpdate( OSyncChangeUpdate* ); - ~SyncChangeUpdate(); - - Type type() const; - Result result() const; - SyncChange change() const; -- int memberId() const; -+ Member member() const; - int mappingId() const; - - private: - Type mType; - Result mResult; - SyncChange mChange; -- int mMemberId; -+ Member mMember; - int mMappingId; - }; - - class SyncMappingUpdate - { - friend class CallbackHandler; - - public: - enum Type { - Solved = 1, -- Synced, -- WriteError -+ //Synced, -+ Error - }; - - SyncMappingUpdate(); - SyncMappingUpdate( OSyncMappingUpdate*, OSyncEngine* ); - ~SyncMappingUpdate(); -@@ -128,18 +124,19 @@ - { - friend class CallbackHandler; - - public: - enum Type { -- EndPhaseConnected = 1, -- EndPhaseRead, -- EndPhaseWrite, -- EndPhaseDisconnected, -+ Connected = 1, -+ Read, -+ Written, -+ Disconnected, - Error, -- SyncSuccessfull, -+ SyncSuccessful, - PrevUnclean, -- EndConflicts -+ EndConflicts, -+ SyncDone - }; - - SyncEngineUpdate(); - SyncEngineUpdate( OSyncEngineUpdate* ); - ~SyncEngineUpdate(); -diff --exclude=.svn -NrU5 kitchensync.orig/src/configguifile.cpp kitchensync/src/configguifile.cpp ---- kitchensync.orig/src/configguifile.cpp 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/configguifile.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -53,29 +53,41 @@ - void ConfigGuiFile::load( const QString &xml ) - { - QDomDocument doc; - doc.setContent( xml ); - QDomElement docElement = doc.documentElement(); -- QDomNode n; -- for( n = docElement.firstChild(); !n.isNull(); n = n.nextSibling() ) { -- QDomElement e = n.toElement(); -- if ( e.tagName() == "path" ) { -- mFilename->setURL( e.text() ); -- } else if ( e.tagName() == "recursive" ) { -- mRecursive->setChecked( e.text() == "TRUE" ); -+ -+ QDomNode node; -+ for ( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) { -+ QDomElement e = node.toElement(); -+ if ( e.tagName() == "directory" ) { -+ QDomNode subNode; -+ for ( subNode = e.firstChild(); !subNode.isNull(); subNode = subNode.nextSibling() ) { -+ QDomElement subElement = subNode.toElement(); -+ if ( subElement.tagName() == "path" ) { -+ mFilename->setURL( subElement.text() ); -+ } else if ( subElement.tagName() == "recursive" ) { -+ mRecursive->setChecked( subElement.text() == "TRUE" ); -+ } -+ } - } - } - } - - QString ConfigGuiFile::save() const - { - QString xml; -- xml = "<config>"; -- xml += "<path>" + mFilename->url() + "</path>"; -- xml += "<recursive>"; -- if ( mRecursive->isChecked() ) xml += "TRUE"; -- else xml += "FALSE"; -- xml += "</recursive>"; -- xml += "</config>"; -+ xml = "<config>\n"; -+ xml += " <directory>\n"; -+ xml += " <path>" + mFilename->url() + "</path>\n"; -+ xml += " <objtype>data</objtype>\n"; -+ xml += " <recursive>"; -+ if ( mRecursive->isChecked() ) -+ xml += "TRUE"; -+ else -+ xml += "FALSE"; -+ xml += "</recursive>\n"; -+ xml += " </directory>\n"; -+ xml += "</config>\n"; - - return xml; - } -diff --exclude=.svn -NrU5 kitchensync.orig/src/configguisyncmlhttp.cpp kitchensync/src/configguisyncmlhttp.cpp ---- kitchensync.orig/src/configguisyncmlhttp.cpp 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/configguisyncmlhttp.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -119,20 +119,20 @@ - // recvLimit - label = new QLabel( i18n("Receive Limit:"), optionWidget ); - mGridLayout->addWidget( label, 5, 0 ); - - mRecvLimit = new QSpinBox( optionWidget ); -- mRecvLimit->setMinValue( 1 ); -+ mRecvLimit->setMinValue( 0 ); - mRecvLimit->setMaxValue( 65536 ); - mGridLayout->addWidget( mRecvLimit, 5, 1 ); - - // maxObjSize - label = new QLabel( i18n("Maximum Object Size"), optionWidget ); - mGridLayout->addWidget( label, 6, 0 ); - - mMaxObjSize = new QSpinBox( optionWidget ); -- mMaxObjSize->setMinValue( 1 ); -+ mMaxObjSize->setMinValue( 0 ); - mMaxObjSize->setMaxValue( 65536 ); - mGridLayout->addWidget( mMaxObjSize, 6, 1 ); - - topLayout()->addStretch( 1 ); - } -diff --exclude=.svn -NrU5 kitchensync.orig/src/configguisyncmlobex.cpp kitchensync/src/configguisyncmlobex.cpp ---- kitchensync.orig/src/configguisyncmlobex.cpp 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/configguisyncmlobex.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -151,20 +151,20 @@ - // recvLimit - label = new QLabel( i18n("Receive Limit:"), optionsWidget ); - mGridLayout->addWidget( label, 14, 0 ); - - mRecvLimit = new QSpinBox( optionsWidget ); -- mRecvLimit->setMinValue( 1 ); -+ mRecvLimit->setMinValue( 0 ); - mRecvLimit->setMaxValue( 65536 ); - mGridLayout->addWidget( mRecvLimit, 14, 1 ); - - // maxObjSize - label = new QLabel( i18n("Maximum Object Size"), optionsWidget ); - mGridLayout->addWidget( label, 15, 0 ); - - mMaxObjSize = new QSpinBox( optionsWidget ); -- mMaxObjSize->setMinValue( 1 ); -+ mMaxObjSize->setMinValue( 0 ); - mMaxObjSize->setMaxValue( 65536 ); - mGridLayout->addWidget( mMaxObjSize, 15, 1 ); - - topLayout()->addStretch( 1 ); - } -diff --exclude=.svn -NrU5 kitchensync.orig/src/groupconfigcommon.cpp kitchensync/src/groupconfigcommon.cpp ---- kitchensync.orig/src/groupconfigcommon.cpp 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/groupconfigcommon.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -28,18 +28,19 @@ - #include <qlabel.h> - #include <qlayout.h> - #include <qcheckbox.h> - - #include <libqopensync/group.h> --#include <libqopensync/conversion.h> --#include <libqopensync/environment.h> -+//#include <libqopensync/conversion.h> - - #include "syncprocess.h" - #include "syncprocessmanager.h" - - #include "groupconfigcommon.h" - -+// TODO: port ObjectTypeSelector to ported solution of Conversation class -+#if 0 - ObjectTypeSelector::ObjectTypeSelector( QWidget *parent ) - : QWidget( parent ) - { - QGridLayout *layout = new QGridLayout( this ); - layout->setMargin( 0 ); -@@ -122,10 +123,11 @@ - objectTypes.append( "data" ); - - QSync::GroupConfig config = group.config(); - config.setActiveObjectTypes( objectTypes ); - } -+#endif - - GroupConfigCommon::GroupConfigCommon( QWidget *parent ) - : QWidget( parent ) - { - QGridLayout *layout = new QGridLayout( this, 2, 2, KDialog::marginHint(), KDialog::spacingHint() ); -@@ -133,26 +135,31 @@ - layout->addWidget( new QLabel( i18n( "Name:" ), this ), 0, 0 ); - - mGroupName = new KLineEdit( this ); - layout->addWidget( mGroupName, 0, 1 ); - -- layout->addWidget( new QLabel( i18n( "Object Types to be Synchronized:"), this ), 1, 0, Qt::AlignTop ); -+ //layout->addWidget( new QLabel( i18n( "Object Types to be Synchronized:"), this ), 1, 0, Qt::AlignTop ); - -- mObjectTypeSelector = new ObjectTypeSelector( this ); -- layout->addWidget( mObjectTypeSelector, 1, 1 ); -+ // TODO port ObjectTypeSelector class.. -+ //mObjectTypeSelector = new ObjectTypeSelector( this ); -+ //layout->addWidget( mObjectTypeSelector, 1, 1 ); - - layout->setRowStretch( 2, 1 ); - } - - void GroupConfigCommon::setSyncProcess( SyncProcess *syncProcess ) - { - mSyncProcess = syncProcess; - - mGroupName->setText( mSyncProcess->group().name() ); -- mObjectTypeSelector->load( mSyncProcess->group() ); -+ -+ // TODO port ObjectTypeSelector class.. -+ //mObjectTypeSelector->load( mSyncProcess->group() ); - } - - void GroupConfigCommon::save() - { - mSyncProcess->group().setName( mGroupName->text() ); -- mObjectTypeSelector->save( mSyncProcess->group() ); -+ -+ // TODO port ObjectTypeSelector class.. -+ //mObjectTypeSelector->save( mSyncProcess->group() ); - } -diff --exclude=.svn -NrU5 kitchensync.orig/src/groupconfigcommon.h kitchensync/src/groupconfigcommon.h ---- kitchensync.orig/src/groupconfigcommon.h 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/groupconfigcommon.h 2008-05-31 11:31:48.000000000 +0200 -@@ -28,10 +28,12 @@ - - class KLineEdit; - class SyncProcess; - class QCheckBox; - -+//TODO: Conversation needs to be ported before... -+#if 0 - class ObjectTypeSelector : public QWidget - { - public: - ObjectTypeSelector( QWidget *parent ); - -@@ -39,10 +41,11 @@ - void save( QSync::Group group ); - - private: - QMap<QString,QCheckBox *> mObjectTypeChecks; - }; -+#endif - - class GroupConfigCommon : public QWidget - { - public: - GroupConfigCommon( QWidget *parent ); -@@ -50,11 +53,11 @@ - void setSyncProcess( SyncProcess *syncProcess ); - void save(); - - private: - KLineEdit *mGroupName; -- ObjectTypeSelector *mObjectTypeSelector; -+ // ObjectTypeSelector *mObjectTypeSelector; - - SyncProcess *mSyncProcess; - }; - - #endif -diff --exclude=.svn -NrU5 kitchensync.orig/src/groupconfig.cpp kitchensync/src/groupconfig.cpp ---- kitchensync.orig/src/groupconfig.cpp 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/groupconfig.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -25,12 +25,14 @@ - #include "memberinfo.h" - #include "pluginpicker.h" - #include "syncprocess.h" - #include "syncprocessmanager.h" - -+#include <libqopensync/engine.h> - #include <libqopensync/group.h> - #include <libqopensync/plugin.h> -+#include <libqopensync/result.h> - - #include <kdialog.h> - #include <kiconloader.h> - #include <kjanuswidget.h> - #include <klocale.h> -@@ -38,10 +40,11 @@ - - - #include <qlabel.h> - #include <qlayout.h> - #include <qpushbutton.h> -+#include <qtimer.h> - - GroupConfig::GroupConfig( QWidget *parent ) - : QWidget( parent ) - { - QBoxLayout *topLayout = new QVBoxLayout( this ); -@@ -82,25 +85,19 @@ - nameLayout->addStretch( 1 ); - - mMemberView = new KJanusWidget( this, 0, KJanusWidget::IconList ); - topLayout->addWidget( mMemberView ); - -- QBoxLayout *buttonLayout = new QHBoxLayout( topLayout ); -- -- QPushButton *addButton = new QPushButton( i18n("Add Member..."), this ); -- connect( addButton, SIGNAL( clicked() ), SLOT( addMember() ) ); -- buttonLayout->addWidget( addButton ); -- -- buttonLayout->addStretch( 1 ); -- - icon = KGlobal::iconLoader()->loadIcon( "bookmark", KIcon::Desktop ); - QFrame *page = mMemberView->addPage( i18n("Group"), - i18n("General Group Settings"), icon ); - QBoxLayout *pageLayout = new QVBoxLayout( page ); - - mCommonConfig = new GroupConfigCommon( page ); - pageLayout->addWidget( mCommonConfig ); -+ -+ connect( mMemberView, SIGNAL( aboutToShowPage( QWidget* ) ), SLOT( memberWidgetSelected( QWidget* ) ) ); - } - - void GroupConfig::setSyncProcess( SyncProcess *process ) - { - mProcess = process; -@@ -111,54 +108,68 @@ - updateMembers(); - } - - void GroupConfig::updateMembers() - { -- QValueList<MemberConfig *>::ConstIterator memberIt; -+ QMap<QWidget*, MemberConfig *>::ConstIterator memberIt; - for ( memberIt = mMemberConfigs.begin(); memberIt != mMemberConfigs.end(); ++memberIt ) -- (*memberIt)->saveData(); -+ memberIt.data()->saveData(); - - QValueList<QFrame *>::ConstIterator it2; - for ( it2 = mConfigPages.begin(); it2 != mConfigPages.end(); ++it2 ) { - mMemberView->removePage( *it2 ); - delete *it2; - } - mConfigPages.clear(); - mMemberConfigs.clear(); - -- QSync::Group group = mProcess->group(); -- QSync::Group::Iterator it( group.begin() ); -- for ( ; it != group.end(); ++it ) { -- QSync::Member member = *it; -+ const QSync::Group group = mProcess->group(); -+ for ( int i = 0; i < group.memberCount(); ++i ) { -+ QSync::Member member = group.memberAt( i ); - MemberInfo mi( member ); - QFrame *page = mMemberView->addPage( mi.name(), - QString( "%1 (%2)" ).arg( mi.name() ).arg(member.pluginName()), mi.desktopIcon() ); - - QBoxLayout *pageLayout = new QVBoxLayout( page ); - mConfigPages.append( page ); - - MemberConfig *memberConfig = new MemberConfig( page, member ); -- mMemberConfigs.append( memberConfig ); -+ mMemberConfigs.insert( page, memberConfig ); - pageLayout->addWidget( memberConfig ); - - memberConfig->loadData(); - } - } - - void GroupConfig::saveConfig() - { - mProcess->group().save(); - -- QValueList<MemberConfig *>::ConstIterator it; -+ QMap<QWidget*, MemberConfig*>::ConstIterator it; - for ( it = mMemberConfigs.begin(); it != mMemberConfigs.end(); ++it ) -- (*it)->saveData(); -+ it.data()->saveData(); - - mCommonConfig->save(); - -+ const QSync::Group group = mProcess->group(); -+ for ( int i = 0; i < group.memberCount(); ++i ) { -+ const QSync::Member member = group.memberAt( i ); -+ mProcess->engine()->discover( member ); -+ } -+ - mProcess->reinitEngine(); - } - -+void GroupConfig::memberWidgetSelected( QWidget *wdg ) -+{ -+ /** -+ * Emit 'true' whenever a real member widget is selected by the -+ * user. -+ */ -+ emit memberSelected( wdg != mCommonConfig->parentWidget() ); -+} -+ - void GroupConfig::addMember() - { - QSync::Plugin plugin = PluginPickerDialog::getPlugin( this ); - - if ( plugin.isValid() ) { -@@ -174,6 +185,19 @@ - mMemberView->showPage( index ); - } - } - } - -+void GroupConfig::removeMember() -+{ -+ QWidget *selectedWidget = mMemberView->pageWidget( mMemberView->activePageIndex() ); -+ if ( selectedWidget && mMemberConfigs.contains( selectedWidget ) ) { -+ MemberConfig *config = mMemberConfigs[ selectedWidget ]; -+ -+ SyncProcessManager::self()->removeMember( mProcess, config->member() ); -+ mMemberConfigs.remove( selectedWidget ); -+ -+ QTimer::singleShot( 0, this, SLOT( updateMembers() ) ); -+ } -+} -+ - #include "groupconfig.moc" -diff --exclude=.svn -NrU5 kitchensync.orig/src/groupconfigdialog.cpp kitchensync/src/groupconfigdialog.cpp ---- kitchensync.orig/src/groupconfigdialog.cpp 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/groupconfigdialog.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -26,11 +26,11 @@ - - #include <qlayout.h> - - GroupConfigDialog::GroupConfigDialog( QWidget *parent, SyncProcess *process ) - : KDialogBase( parent, 0, true, i18n("Configure Synchronization Group"), -- Ok ) -+ Ok | User1 | User2, Ok ) - { - QFrame *topFrame = makeMainWidget(); - - QBoxLayout *topLayout = new QVBoxLayout( topFrame ); - -@@ -38,10 +38,17 @@ - topLayout->addWidget( mConfigWidget ); - - mConfigWidget->setSyncProcess( process ); - - setInitialSize( configDialogSize( "size_groupconfigdialog" ) ); -+ -+ enableButton( User1, false ); -+ setButtonText( User1, i18n( "Remove Member" ) ); -+ -+ connect( mConfigWidget, SIGNAL( memberSelected( bool ) ), SLOT( memberSelected( bool ) ) ); -+ -+ setButtonText( User2, i18n("Add Member...") ); - } - - GroupConfigDialog::~GroupConfigDialog() - { - saveDialogSize( "size_groupconfigdialog" ); -@@ -52,6 +59,21 @@ - mConfigWidget->saveConfig(); - - accept(); - } - -+void GroupConfigDialog::slotUser1() -+{ -+ mConfigWidget->removeMember(); -+} -+ -+void GroupConfigDialog::slotUser2() -+{ -+ mConfigWidget->addMember(); -+} -+ -+void GroupConfigDialog::memberSelected( bool selected ) -+{ -+ enableButton( User1, selected ); -+} -+ - #include "groupconfigdialog.moc" -diff --exclude=.svn -NrU5 kitchensync.orig/src/groupconfigdialog.h kitchensync/src/groupconfigdialog.h ---- kitchensync.orig/src/groupconfigdialog.h 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/groupconfigdialog.h 2008-05-31 11:31:48.000000000 +0200 -@@ -33,10 +33,15 @@ - GroupConfigDialog( QWidget *parent, SyncProcess * ); - ~GroupConfigDialog(); - - protected slots: - void slotOk(); -+ void slotUser1(); -+ void slotUser2(); -+ -+ private slots: -+ void memberSelected( bool ); - - private: - GroupConfig *mConfigWidget; - }; - -diff --exclude=.svn -NrU5 kitchensync.orig/src/groupconfig.h kitchensync/src/groupconfig.h ---- kitchensync.orig/src/groupconfig.h 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/groupconfig.h 2008-05-31 11:31:48.000000000 +0200 -@@ -38,25 +38,32 @@ - public: - GroupConfig( QWidget *parent ); - - void setSyncProcess( SyncProcess *process ); - -+ void saveConfig(); -+ -+ public slots: -+ void addMember(); -+ void removeMember(); -+ - void updateMembers(); - -- void saveConfig(); -+ signals: -+ void memberSelected( bool ); - - protected slots: -- void addMember(); -+ void memberWidgetSelected( QWidget* ); - - private: - QLabel *mNameLabel; - - KJanusWidget *mMemberView; - - SyncProcess *mProcess; - - GroupConfigCommon *mCommonConfig; -- QValueList<MemberConfig *> mMemberConfigs; -- QValueList<QFrame *> mConfigPages; -+ QMap<QWidget*, MemberConfig*> mMemberConfigs; -+ QValueList<QFrame*> mConfigPages; - }; - - #endif -diff --exclude=.svn -NrU5 kitchensync.orig/src/groupitem.cpp kitchensync/src/groupitem.cpp ---- kitchensync.orig/src/groupitem.cpp 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/groupitem.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -31,10 +31,13 @@ - #include <qlayout.h> - #include <qpixmap.h> - #include <qprogressbar.h> - #include <qvbox.h> - -+#include <libqopensync/plugin.h> -+#include <libqopensync/pluginenv.h> -+ - #include "memberinfo.h" - #include "multiconflictdialog.h" - #include "singleconflictdialog.h" - #include "syncprocessmanager.h" - -@@ -148,16 +151,13 @@ - mTime->setText( i18n( "Not synchronized yet" ) ); - - mProgressBar->reset(); - mProgressBar->hide(); - -- QSync::Group group = mSyncProcess->group(); -- QSync::Group::Iterator memberIt( group.begin() ); -- QSync::Group::Iterator memberEndIt( group.end() ); -- -- for ( ; memberIt != memberEndIt; ++memberIt ) { -- MemberItem *item = new MemberItem( mBox, mSyncProcess, *memberIt ); -+ const QSync::Group group = mSyncProcess->group(); -+ for ( int i = 0; i < group.memberCount(); ++i ) { -+ MemberItem *item = new MemberItem( mBox, mSyncProcess, group.memberAt( i ) ); - item->show(); - item->setStatusMessage( i18n( "Ready" ) ); - mMemberItems.append( item ); - } - } -@@ -185,18 +185,15 @@ - } - - void GroupItem::change( const QSync::SyncChangeUpdate &update ) - { - switch ( update.type() ) { -- case QSync::SyncChangeUpdate::Received: -+ case QSync::SyncChangeUpdate::Read: - mProcessedItems++; - mStatus->setText( i18n( "%1 entries read" ).arg( mProcessedItems ) ); - break; -- case QSync::SyncChangeUpdate::ReceivedInfo: -- mStatus->setText( i18n( "Receive information" ) ); -- break; -- case QSync::SyncChangeUpdate::Sent: -+ case QSync::SyncChangeUpdate::Written: - mProcessedItems--; - mStatus->setText( i18n( "%1 entries written" ).arg( mMaxProcessedItems - mProcessedItems ) ); - - mProgressBar->show(); - -@@ -209,15 +206,11 @@ - progress = 0; - - mProgressBar->setProgress( 100 - progress ); - } - break; -- case QSync::SyncChangeUpdate::WriteError: -- mStatus->setText( i18n( "Error" ) ); -- KPassivePopup::message( update.result().message(), this ); -- break; -- case QSync::SyncChangeUpdate::ReceiveError: -+ case QSync::SyncChangeUpdate::Error: - mStatus->setText( i18n( "Error" ) ); - KPassivePopup::message( update.result().message(), this ); - break; - default: - mStatus->setText( QString() ); -@@ -230,36 +223,36 @@ - } - - void GroupItem::engine( const QSync::SyncEngineUpdate &update ) - { - switch ( update.type() ) { -- case QSync::SyncEngineUpdate::EndPhaseConnected: -+ case QSync::SyncEngineUpdate::Connected: - mStatus->setText( i18n( "Connected" ) ); - mProgressBar->setProgress( 0 ); - mSynchronizing = true; - mSyncAction->setText( "Abort Synchronization" ); - break; -- case QSync::SyncEngineUpdate::EndPhaseRead: -+ case QSync::SyncEngineUpdate::Read: - mStatus->setText( i18n( "Data read" ) ); - break; -- case QSync::SyncEngineUpdate::EndPhaseWrite: -+ case QSync::SyncEngineUpdate::Written: - mStatus->setText( i18n( "Data written" ) ); - mProgressBar->setProgress( 100 ); - mProcessedItems = mMaxProcessedItems = 0; - break; -- case QSync::SyncEngineUpdate::EndPhaseDisconnected: -+ case QSync::SyncEngineUpdate::Disconnected: - mStatus->setText( i18n( "Disconnected" ) ); - break; - case QSync::SyncEngineUpdate::Error: - mStatus->setText( i18n( "Synchronization failed" ) ); - KPassivePopup::message( update.result().message(), this ); - this->update(); - - mSynchronizing = false; - mSyncAction->setText( i18n( "Synchronize Now" ) ); - break; -- case QSync::SyncEngineUpdate::SyncSuccessfull: -+ case QSync::SyncEngineUpdate::SyncSuccessful: - mStatus->setText( i18n( "Successfully synchronized" ) ); - mSyncProcess->group().setLastSynchronization( QDateTime::currentDateTime() ); - mSyncProcess->group().save(); - this->update(); - -@@ -286,32 +279,26 @@ - if ( (*it)->member() == update.member() ) { - switch ( update.type() ) { - case QSync::SyncMemberUpdate::Connected: - (*it)->setStatusMessage( i18n( "Connected" ) ); - break; -- case QSync::SyncMemberUpdate::SentChanges: -+ case QSync::SyncMemberUpdate::Read: - (*it)->setStatusMessage( i18n( "Changes read" ) ); - break; -- case QSync::SyncMemberUpdate::CommittedAll: -+ case QSync::SyncMemberUpdate::Written: - (*it)->setStatusMessage( i18n( "Changes written" ) ); - break; - case QSync::SyncMemberUpdate::Disconnected: - (*it)->setStatusMessage( i18n( "Disconnected" ) ); - break; -- case QSync::SyncMemberUpdate::ConnectError: -- (*it)->setStatusMessage( i18n( "Error: %1" ).arg( update.result().message() ) ); -+ case QSync::SyncMemberUpdate::SyncDone: -+ (*it)->setStatusMessage( i18n( "Synchronization done" ) ); - break; -- case QSync::SyncMemberUpdate::GetChangesError: -- (*it)->setStatusMessage( i18n( "Error: %1" ).arg( update.result().message() ) ); -+ case QSync::SyncMemberUpdate::Discovered: -+ (*it)->setStatusMessage( i18n( "Discovered" ) ); - break; -- case QSync::SyncMemberUpdate::CommittedAllError: -- (*it)->setStatusMessage( i18n( "Error: %1" ).arg( update.result().message() ) ); -- break; -- case QSync::SyncMemberUpdate::SyncDoneError: -- (*it)->setStatusMessage( i18n( "Error: %1" ).arg( update.result().message() ) ); -- break; -- case QSync::SyncMemberUpdate::DisconnectedError: -+ case QSync::SyncMemberUpdate::Error: - (*it)->setStatusMessage( i18n( "Error: %1" ).arg( update.result().message() ) ); - break; - default: - break; - } -@@ -350,15 +337,12 @@ - : QWidget( parent ), mSyncProcess( process ), mMember( member ) - { - QFont boldFont; - boldFont.setBold( true ); - -- MemberInfo mi( member ); -- -- QPixmap icon = mi.smallIcon(); -- -- QSync::Plugin plugin = member.plugin(); -+ const MemberInfo mi( member ); -+ const QPixmap icon = mi.smallIcon(); - - QVBoxLayout *layout = new QVBoxLayout( this ); - - QHBox* box = new QHBox( this ); - box->setMargin( 5 ); -@@ -376,11 +360,18 @@ - mDescription = new QLabel( nameBox ); - - mStatus = new QLabel( box ); - - mMemberName->setText( member.name() ); -- mDescription->setText( plugin.longName() ); -+ -+ const QSync::PluginEnv *env = SyncProcessManager::self()->pluginEnv(); -+ const QSync::Plugin plugin = env->pluginByName( member.pluginName() ); -+ -+ if ( plugin.isValid() ) -+ mDescription->setText( plugin.longName() ); -+ else -+ mDescription->setText( i18n("Plugin \"%1\" can't get initialized!").arg( member.pluginName() ) ); - } - - void MemberItem::setStatusMessage( const QString &msg ) - { - mStatus->setText( msg ); -diff --exclude=.svn -NrU5 kitchensync.orig/src/kitchensync.desktop kitchensync/src/kitchensync.desktop ---- kitchensync.orig/src/kitchensync.desktop 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/kitchensync.desktop 2008-05-31 11:31:48.000000000 +0200 -@@ -1,20 +1,20 @@ - [Desktop Entry] - Encoding=UTF-8 - Name=KitchenSync - Name[pt]=KitchenSyncFilter -+Name[pt_BR]=KitchenSyncFilter - Name[sv]=Kitchensync - GenericName=Synchronization - GenericName[af]=Sinkronisasie - GenericName[bg]=Синхронизация - GenericName[ca]=Sincronització - GenericName[cs]=Synchronizace - GenericName[cy]=Cydamseriad - GenericName[da]=Synkronisering - GenericName[de]=Abgleich - GenericName[el]=Συγχρονισμός --GenericName[eo]=Sinkronigo - GenericName[es]=Sincronización - GenericName[et]=Sünkroniseerimine - GenericName[eu]=Sinkronizazioa - GenericName[fa]=همگامی - GenericName[fi]=Synkronointi -@@ -45,11 +45,10 @@ - GenericName[sr@Latn]=Sinhronizacija - GenericName[sv]=Synkronisering - GenericName[ta]=கூட்டிணைப்பு - GenericName[tr]=Senkronizasyon - GenericName[uk]=Синхронізація --GenericName[zh_CN]=同步 - Exec=kitchensync - Icon=kitchensync - Type=Application - DocPath=kitchensync/index.html - Terminal=false -diff --exclude=.svn -NrU5 kitchensync.orig/src/mainwidget.cpp kitchensync/src/mainwidget.cpp ---- kitchensync.orig/src/mainwidget.cpp 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/mainwidget.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -24,11 +24,11 @@ - #include "groupconfigdialog.h" - #include "groupview.h" - #include "syncprocess.h" - #include "syncprocessmanager.h" - --#include <libqopensync/environment.h> -+#include <libqopensync/result.h> - - #include <kaboutdata.h> - #include <kaction.h> - #include <kdebug.h> - #include <kinputdialog.h> -@@ -44,17 +44,10 @@ - : QWidget( widget, name ), mGUIClient( guiClient ) - { - initGUI(); - initActions(); - -- /** apply object type filter hack **/ -- int count = SyncProcessManager::self()->count(); -- for ( int i = 0; i < count; ++i ) { -- SyncProcessManager::self()->at( i )->applyObjectTypeFilter(); -- } -- /** apply object type filter hack **/ -- - mGroupView->updateView(); - - connect( SyncProcessManager::self(), SIGNAL( changed() ), - mGroupView, SLOT( updateView() ) ); - connect( SyncProcessManager::self(), SIGNAL( syncProcessChanged( SyncProcess* ) ), -@@ -123,16 +116,23 @@ - - void MainWidget::addGroup() - { - bool ok; - QString name = KInputDialog::getText( i18n("Create Synchronization Group"), -- i18n("Name for new synchronization group."), QString::null, &ok, this ); -+ i18n("Name for new synchronization group."), i18n( "Default" ), &ok, this ); - if ( ok ) { -+ SyncProcess *process = SyncProcessManager::self()->byGroupName( name ); -+ if ( process ) { -+ KMessageBox::error( this, i18n( "A group with the same name exists already.\nPlease choose another name." ), -+ i18n( "Duplicated Group Name" ) ); -+ return; -+ } -+ - SyncProcessManager::self()->addGroup( name ); - enableActions(); - -- SyncProcess *process = SyncProcessManager::self()->byGroupName( name ); -+ process = SyncProcessManager::self()->byGroupName( name ); - if ( process ) - editGroup( process ); - } - } - -diff --exclude=.svn -NrU5 kitchensync.orig/src/Makefile.am kitchensync/src/Makefile.am ---- kitchensync.orig/src/Makefile.am 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/Makefile.am 2008-05-31 11:31:48.000000000 +0200 -@@ -22,11 +22,11 @@ - groupconfig.cpp groupitem.cpp groupview.cpp memberconfig.cpp \ - syncprocess.cpp syncprocessmanager.cpp connectionwidgets.cpp \ - pluginpicker.cpp configgui.cpp configguiblank.cpp configguifile.cpp \ - memberinfo.cpp groupconfigcommon.cpp kwidgetlist.cpp \ - configguipalm.cpp conflictdialog.cpp singleconflictdialog.cpp \ -- addresseediffalgo.cpp calendardiffalgo.cpp \ -+ addresseediffalgo.cpp calendardiffalgo.cpp xmldiffalgo.cpp \ - htmldiffalgodisplay.cpp genericdiffalgo.cpp multiconflictdialog.cpp \ - configguiirmc.cpp \ - configguisyncmlobex.cpp configguisyncmlhttp.cpp configguiopie.cpp \ - configguignokii.cpp configguigcalendar.cpp configguildap.cpp configguigpe.cpp \ - configguijescs.cpp configguievo2.cpp configguimoto.cpp configguisynce.cpp \ -diff --exclude=.svn -NrU5 kitchensync.orig/src/memberconfig.cpp kitchensync/src/memberconfig.cpp ---- kitchensync.orig/src/memberconfig.cpp 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/memberconfig.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -21,10 +21,12 @@ - #include "memberconfig.h" - - #include "configgui.h" - #include "memberinfo.h" - -+#include <libqopensync/result.h> -+ - #include <klocale.h> - #include <kmessagebox.h> - - #include <qlabel.h> - #include <qlayout.h> -@@ -65,15 +67,18 @@ - QString txt = mGui->save(); - - if ( txt.isEmpty() ) { - KMessageBox::sorry( this, i18n("Configuration of %1 is empty.").arg( mMember.pluginName() ) ); - } else { -- QByteArray cfg = txt.utf8(); -- cfg.truncate(cfg.size() - 1); /* discard NUL terminator */ -- mMember.setConfiguration( cfg ); -+ mMember.setConfiguration( txt.utf8() ); - mMember.setName( mGui->instanceName() ); - // TODO: Check for save() error. - mMember.save(); - } - } - -+QSync::Member MemberConfig::member() const -+{ -+ return mMember; -+} -+ - #include "memberconfig.moc" -diff --exclude=.svn -NrU5 kitchensync.orig/src/memberconfig.h kitchensync/src/memberconfig.h ---- kitchensync.orig/src/memberconfig.h 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/memberconfig.h 2008-05-31 11:31:48.000000000 +0200 -@@ -36,10 +36,12 @@ - ~MemberConfig(); - - void loadData(); - void saveData(); - -+ QSync::Member member() const; -+ - private: - QSync::Member mMember; - - ConfigGui *mGui; - }; -diff --exclude=.svn -NrU5 kitchensync.orig/src/multiconflictdialog.cpp kitchensync/src/multiconflictdialog.cpp ---- kitchensync.orig/src/multiconflictdialog.cpp 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/multiconflictdialog.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -37,12 +37,14 @@ - : KWidgetListItem( parent ), - mChange( change ) - { - QGridLayout *layout = new QGridLayout( this, 2, 1, KDialog::marginHint(), KDialog::spacingHint() ); - -- MemberInfo mi( change.member() ); -- layout->addWidget( new QLabel( mi.name(), this ), 0, 0 ); -+ // TODO change doesn't contain member as struct member .. use SyncMapping to determine the correct member. -+ //MemberInfo mi( change.member() ); -+ //layout->addWidget( new QLabel( mi.name(), this ), 0, 0 ); -+ layout->addWidget( new QLabel( "PORTING TODO", this ), 0, 0 ); - - QString type; - switch ( change.changeType() ) { - case QSync::SyncChange::UnknownChange: - type = i18n( "Unknown" ); -diff --exclude=.svn -NrU5 kitchensync.orig/src/pluginpicker.cpp kitchensync/src/pluginpicker.cpp ---- kitchensync.orig/src/pluginpicker.cpp 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/pluginpicker.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -22,11 +22,11 @@ - #include "pluginpicker.h" - - #include "memberinfo.h" - #include "syncprocessmanager.h" - --#include <libqopensync/environment.h> -+#include <libqopensync/pluginenv.h> - - #include <kdialog.h> - #include <kglobal.h> - #include <kiconloader.h> - #include <klocale.h> -@@ -75,16 +75,18 @@ - - void PluginPicker::updatePluginList() - { - mPluginList->clear(); - -- QSync::Environment *env = SyncProcessManager::self()->environment(); -+ const QSync::PluginEnv *env = SyncProcessManager::self()->pluginEnv(); -+ -+ for ( int i = 0; i < env->pluginCount(); ++i ) { -+ QSync::Plugin plugin = env->pluginAt( i ); -+ -+ if ( plugin.isValid() ) -+ mPluginList->appendItem( new PluginItem( mPluginList, plugin ) ); - -- QSync::Environment::PluginIterator it( env->pluginBegin() ); -- for( ; it != env->pluginEnd(); ++it ) { -- QSync::Plugin plugin = *it; -- mPluginList->appendItem( new PluginItem( mPluginList, plugin ) ); - } - } - - QSync::Plugin PluginPicker::selectedPlugin() const - { -diff --exclude=.svn -NrU5 kitchensync.orig/src/singleconflictdialog.cpp kitchensync/src/singleconflictdialog.cpp ---- kitchensync.orig/src/singleconflictdialog.cpp 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/singleconflictdialog.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -25,10 +25,11 @@ - #include <qlayout.h> - #include <qpushbutton.h> - - #include "addresseediffalgo.h" - #include "genericdiffalgo.h" -+#include "xmldiffalgo.h" - #include "htmldiffalgodisplay.h" - #include "memberinfo.h" - - #include "singleconflictdialog.h" - -@@ -41,20 +42,26 @@ - QSync::SyncChange leftChange = mapping.changeAt( 0 ); - QSync::SyncChange rightChange = mapping.changeAt( 1 ); - - if ( format == "file" ) { - mDiffAlgo = new KSync::GenericDiffAlgo( leftChange.data(), rightChange.data() ); -- } else if ( format == "vcard" ) { -- } else if ( format == "calendar" ) { -- } else if ( format == "xml-contact" ) { -+ } else if ( format == "vcard21" || format == "vcard30" ) { - mDiffAlgo = new KSync::AddresseeDiffAlgo( leftChange.data(), rightChange.data() ); -+ } else if ( format == "calendar" ) { -+ } else if ( format == "xmlformat-contact" || format == "xmlformat-note" -+ || format == "xmlformat-event" || format == "xmlformat-todo") { -+ mDiffAlgo = new KSync::XmlDiffAlgo( leftChange.data(), rightChange.data() ); - } - -+// TODO: SyncChange doesn't have member as struct member anymore ... -+// Use SyncMapping to determine the member .. see msynctool for example implementation of conlicthandler -+#if 0 - MemberInfo miLeft( leftChange.member() ); - mDiffAlgoDisplay->setLeftSourceTitle( miLeft.name() ); - MemberInfo miRight( rightChange.member() ); - mDiffAlgoDisplay->setRightSourceTitle( miRight.name() ); -+#endif - - if ( mDiffAlgo ) { - mDiffAlgo->addDisplay( mDiffAlgoDisplay ); - mDiffAlgo->run(); - } -@@ -97,10 +104,11 @@ - void SingleConflictDialog::initGUI() - { - QGridLayout *layout = new QGridLayout( this, 3, 4, KDialog::marginHint(), KDialog::spacingHint() ); - - layout->addMultiCellWidget( new QLabel( i18n( "A conflict has appeared, please solve it manually." ), this ), 0, 0, 0, 3 ); -+ - mDiffAlgoDisplay = new KSync::HTMLDiffAlgoDisplay( this ); - - layout->addMultiCellWidget( mDiffAlgoDisplay, 1, 1, 0, 3 ); - - QPushButton *button = new QPushButton( i18n( "Use Item" ), this ); -diff --exclude=.svn -NrU5 kitchensync.orig/src/syncprocess.cpp kitchensync/src/syncprocess.cpp ---- kitchensync.orig/src/syncprocess.cpp 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/syncprocess.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -17,14 +17,16 @@ - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - - #include <libqopensync/engine.h> --#include <libqopensync/environment.h> -+#include <libqopensync/member.h> -+#include <libqopensync/result.h> - - #include <kdebug.h> - #include <klocale.h> -+#include <kmessagebox.h> - - #include "syncprocess.h" - #include "syncprocessmanager.h" - - using namespace QSync; -@@ -58,51 +60,38 @@ - return i18n( "Ready" ); - } - - QSync::Result SyncProcess::addMember( const QSync::Plugin &plugin ) - { -- QSync::Member member = mGroup.addMember(); -- QSync::Result result = member.instance( plugin ); -+ QSync::Member member = mGroup.addMember( plugin ); -+ QSync::Result result = member.instance(); - - if ( !result.isError() ) - mGroup.save(); - - return result; - } - -+void SyncProcess::removeMember( const QSync::Member &member ) -+{ -+ member.cleanup(); -+ mGroup.removeMember( member ); -+ mGroup.save(); -+} -+ - void SyncProcess::reinitEngine() - { - mEngine->finalize(); - delete mEngine; - mEngine = new QSync::Engine( mGroup ); - Result result = mEngine->initialize(); -- if ( result.isError() ) -+ if ( result.isError() ) { - kdDebug() << "SyncProcess::reinitEngine: " << result.message() << endl; -+ KMessageBox::error( 0, i18n("Error initializing Synchronization Engine for group \"%1\":\n %2") -+ .arg( mGroup.name() ).arg( result.message() ) ); - -- applyObjectTypeFilter(); -+ } - - emit engineChanged( mEngine ); - } - --void SyncProcess::applyObjectTypeFilter() --{ -- const QSync::Conversion conversion = SyncProcessManager::self()->environment()->conversion(); -- const QStringList objectTypes = conversion.objectTypes(); -- const QStringList activeObjectTypes = mGroup.config().activeObjectTypes(); -- -- for ( uint i = 0; i < objectTypes.count(); ++i ) { -- if ( activeObjectTypes.contains( objectTypes[ i ] ) ) { -- kdDebug() << "Enabled object type: " << objectTypes[ i ] << endl; -- /* -- * This is not required. Also this lead to filtering problems when sync with "file-sync". -- * Uncomment this line again when OpenSync is fixed! -- * -- * mGroup.setObjectTypeEnabled( objectTypes[ i ], true ); -- */ -- } else { -- kdDebug() << "Disabled object type: " << objectTypes[ i ] << endl; -- mGroup.setObjectTypeEnabled( objectTypes[ i ], false ); -- } -- } --} -- - #include "syncprocess.moc" -diff --exclude=.svn -NrU5 kitchensync.orig/src/syncprocess.h kitchensync/src/syncprocess.h ---- kitchensync.orig/src/syncprocess.h 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/syncprocess.h 2008-05-31 11:31:48.000000000 +0200 -@@ -42,16 +42,14 @@ - - QString groupStatus() const; - QString memberStatus( const QSync::Member &member ) const; - - QSync::Result addMember( const QSync::Plugin &plugin ); -+ void removeMember( const QSync::Member &member ); - - void reinitEngine(); - -- /** apply object type filter hack **/ -- void applyObjectTypeFilter(); -- - signals: - /** - This signal is emitted whenever the engine has changed ( reinitialized ). - */ - void engineChanged( QSync::Engine *engine ); -diff --exclude=.svn -NrU5 kitchensync.orig/src/syncprocessmanager.cpp kitchensync/src/syncprocessmanager.cpp ---- kitchensync.orig/src/syncprocessmanager.cpp 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/syncprocessmanager.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -21,11 +21,14 @@ - - #include "syncprocessmanager.h" - - #include "syncprocess.h" - --#include <libqopensync/environment.h> -+#include <libqopensync/groupenv.h> -+#include <libqopensync/member.h> -+#include <libqopensync/pluginenv.h> -+#include <libqopensync/result.h> - - #include <kstaticdeleter.h> - #include <kmessagebox.h> - #include <klocale.h> - -@@ -41,30 +44,40 @@ - return mSelf; - } - - SyncProcessManager::SyncProcessManager() - { -- mEnvironment = new QSync::Environment; -- QSync::Result result = mEnvironment->initialize(); -+ mGroupEnv = new QSync::GroupEnv; -+ QSync::Result result = mGroupEnv->initialize(); - if ( result.isError() ) { - KMessageBox::error( 0, i18n("Error initializing OpenSync.\n%1") - .arg( result.message() ) ); - } else { -- init( mEnvironment ); -+ initGroup( mGroupEnv ); - } -+ -+ mPluginEnv = new QSync::PluginEnv; -+ result = mPluginEnv->initialize(); -+ if ( result.isError() ) { -+ KMessageBox::error( 0, i18n("Error initializing OpenSync.\n%1") -+ .arg( result.message() ) ); -+ } else { -+// initPlugin( mPluginEnv ); -+ } -+ - } - - SyncProcessManager::~SyncProcessManager() - { - QValueList<SyncProcess*>::Iterator it; - for ( it = mProcesses.begin(); it != mProcesses.end(); ++it ) - delete *it; - - mProcesses.clear(); - -- mEnvironment->finalize(); -- delete mEnvironment; -+ mGroupEnv->finalize(); -+ delete mGroupEnv; - } - - int SyncProcessManager::count() const - { - return mProcesses.count(); -@@ -100,12 +113,11 @@ - - void SyncProcessManager::addGroup( const QString &name ) - { - SyncProcess* process = byGroupName( name ); - if ( !process ) { -- QSync::Group group = mEnvironment->addGroup(); -- group.setName( name ); -+ QSync::Group group = mGroupEnv->addGroup( name ); - group.save(); - - mProcesses.append( new SyncProcess( group ) ); - - emit changed(); -@@ -118,26 +130,25 @@ - if ( syncProcess ) { - mProcesses.remove( syncProcess ); - const QSync::Group group = syncProcess->group(); - delete syncProcess; - -- mEnvironment->removeGroup( group ); -+ mGroupEnv->removeGroup( group ); - - emit changed(); - } - } - --void SyncProcessManager::init( QSync::Environment *environment ) -+void SyncProcessManager::initGroup( QSync::GroupEnv *groupEnv ) - { -- QSync::Environment::GroupIterator it( environment->groupBegin() ); -- for ( ; it != environment->groupEnd(); ++it ) { -+ for ( int i = 0; i < groupEnv->groupCount(); ++i ) { - /** - * We check whether the group is valid before we append them - * to mProcesses. That avoids crashes if the plugin of one of - * the members isn't loaded (e.g. not installed). - */ -- const QSync::Group group = *it; -+ const QSync::Group group = groupEnv->groupAt( i ); - int count = group.memberCount(); - - bool isValid = true; - for ( int i = 0; i < count; ++i ) { - const QSync::Member member = group.memberAt( i ); -@@ -147,11 +158,11 @@ - break; - } - } - - if ( isValid ) -- mProcesses.append( new SyncProcess( *it ) ); -+ mProcesses.append( new SyncProcess( group ) ); - } - - emit changed(); - } - -@@ -167,6 +178,15 @@ - } - - return result; - } - -+void SyncProcessManager::removeMember( SyncProcess *process, const QSync::Member &member ) -+{ -+ Q_ASSERT( process ); -+ -+ process->removeMember( member ); -+ process->group().save(); -+ emit syncProcessChanged( process ); -+} -+ - #include "syncprocessmanager.moc" -diff --exclude=.svn -NrU5 kitchensync.orig/src/syncprocessmanager.h kitchensync/src/syncprocessmanager.h ---- kitchensync.orig/src/syncprocessmanager.h 2008-05-31 11:37:19.000000000 +0200 -+++ kitchensync/src/syncprocessmanager.h 2008-05-31 11:31:48.000000000 +0200 -@@ -24,11 +24,12 @@ - #include <qobject.h> - - #include <libqopensync/group.h> - - namespace QSync { --class Environment; -+class GroupEnv; -+class PluginEnv; - } - - class SyncProcess; - - class SyncProcessManager : public QObject -@@ -41,13 +42,18 @@ - Destroys the SyncProcessList. - */ - ~SyncProcessManager(); - - /** -- Return OpenSync Environment. -+ Return OpenSync GroupEnv. - */ -- QSync::Environment *environment() const { return mEnvironment; } -+ QSync::GroupEnv *groupEnv() const { return mGroupEnv; } -+ -+ /** -+ Return OpenSync PluginEnv. -+ */ -+ QSync::PluginEnv *pluginEnv() const { return mPluginEnv; } - - /** - Returns the number of SyncProcesses. - */ - int count() const; -@@ -80,21 +86,28 @@ - /** - Adds @param plugin instance as member to the group of @param process. - */ - QSync::Result addMember( SyncProcess *process, const QSync::Plugin &plugin ); - -+ /** -+ Removes the @param member from the group of @param process. -+ */ -+ void removeMember( SyncProcess *process, const QSync::Member &member ); -+ - signals: - void changed(); - void syncProcessChanged( SyncProcess *process ); - - private: - SyncProcessManager(); - -- void init( QSync::Environment *environment ); -+ void initGroup( QSync::GroupEnv *groupEnv ); -+// void initPlugin( QSync::PluginEnv *pluginEnv ); - - QValueList<SyncProcess*> mProcesses; -- QSync::Environment *mEnvironment; -+ QSync::GroupEnv *mGroupEnv; -+ QSync::PluginEnv *mPluginEnv; - - static SyncProcessManager *mSelf; - }; - - #endif -diff --exclude=.svn -NrU5 kitchensync.orig/src/xmldiffalgo.cpp kitchensync/src/xmldiffalgo.cpp ---- kitchensync.orig/src/xmldiffalgo.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ kitchensync/src/xmldiffalgo.cpp 2008-05-31 11:31:48.000000000 +0200 -@@ -0,0 +1,166 @@ -+/* -+ This file is part of KitchenSync. -+ -+ Copyright (c) 2006 Daniel Gollub <dgollub@suse.de> -+ -+ This program is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Library General Public -+ License as published by the Free Software Foundation; either -+ version 2 of the License, or (at your option) any later version. -+ -+ This library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Library General Public License for more details. -+ -+ You should have received a copy of the GNU Library General Public License -+ along with this library; see the file COPYING.LIB. If not, write to -+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -+ Boston, MA 02110-1301, USA. -+*/ -+ -+#include "xmldiffalgo.h" -+ -+#include <kdebug.h> -+ -+using namespace KSync; -+ -+#ifndef KDE_USE_FINAL -+// With --enable-final, we get the (identical) compareString from -+// addresseediffalgo.cpp -+// -+static bool compareString( const QString &left, const QString &right ) -+{ -+ if ( left.isEmpty() && right.isEmpty() ) -+ return true; -+ else -+ return left == right; -+} -+#endif -+ -+XmlDiffAlgo::XmlDiffAlgo( const QString &leftXml, const QString &rightXml ) -+{ -+ kdDebug() << __func__ << " " << __LINE__ << endl; -+ -+ mLeftXml.setContent( leftXml ); -+ mRightXml.setContent( rightXml ); -+ -+} -+ -+XmlDiffAlgo::XmlDiffAlgo( const QDomDocument &leftXml, const QDomDocument &rightXml ) -+ : mLeftXml( leftXml ), mRightXml( rightXml ) -+{ -+ kdDebug() << __func__ << " " << __LINE__ << endl; -+} -+ -+void XmlDiffAlgo::appendSingleNodes(QDomElement &element, bool isLeft) -+{ -+ QDomNode node; -+ -+ for ( node = element.firstChild(); !node.isNull(); node = node.nextSibling() ) { -+ QDomElement child = node.toElement(); -+ -+ if (isLeft) -+ additionalLeftField( node.nodeName(), child.text() ); -+ else -+ additionalRightField( node.nodeName(), child.text() ); -+ } -+ -+} -+ -+void XmlDiffAlgo::appendConflictNodes(QDomElement &leftElement, QDomElement &rightElement) -+{ -+ QDomNode left, right; -+ QDomElement leftChild, rightChild; -+ -+ for ( left = leftElement.firstChild(); !left.isNull(); left = left.nextSibling() ) { -+ leftChild = left.toElement(); -+ -+ for ( right = rightElement.firstChild(); !right.isNull(); right = right.nextSibling() ) { -+ rightChild = right.toElement(); -+ -+ if ( leftChild.tagName() != rightChild.tagName() ) -+ continue; -+ -+ if (leftChild.text().isEmpty() || rightChild.text().isEmpty()) -+ continue; -+ -+ QString id = leftChild.tagName(); -+ if (id == "Content") -+ id = left.parentNode().nodeName(); -+ -+ conflictField( id, leftChild.text(), rightChild.text() ); -+ -+ left.parentNode().removeChild( left ); -+ left = leftElement.firstChild(); -+ -+ right.parentNode().removeChild( right ); -+ right = rightElement.firstChild(); -+ -+ } -+ } -+} -+ -+void XmlDiffAlgo::compareNode(QDomElement &leftElement, QDomElement &rightElement) -+{ -+ QDomNode left, right; -+ QDomElement leftChild, rightChild; -+ QDomNodeList nlist; -+top:; -+ -+ for ( left = leftElement.firstChild(); !left.isNull(); left = left.nextSibling() ) { -+ leftChild = left.toElement(); -+ -+ for ( right = rightElement.firstChild(); !right.isNull(); right = right.nextSibling() ) { -+ rightChild = right.toElement(); -+ -+ if (leftChild.tagName() != rightChild.tagName()) -+ continue; -+ -+ if ( left.childNodes().count() > 1 && right.childNodes().count() > 1 ) { -+ compareNode( leftChild, rightChild ); -+ -+ if ( !left.hasChildNodes() && !right.hasChildNodes() ) { -+ left.parentNode().removeChild( left ); -+ right.parentNode().removeChild( right ); -+ goto top; -+ } -+ -+ break; -+ } -+ -+ if ( leftChild.text() == rightChild.text() ) { -+ QString id = leftChild.tagName(); -+ -+ if ( id == "Content" ) -+ id = left.parentNode().nodeName(); -+ -+ if ( id != "Type" ) -+ //matchingField( id, leftChild.text(), rightChild.text() ); -+ -+ left.parentNode().removeChild( left ); -+ right.parentNode().removeChild( right ); -+ goto top; -+ } -+ } -+ } -+ -+ appendConflictNodes(rightElement, leftElement); -+ -+ appendSingleNodes(rightElement, false); -+ appendSingleNodes(leftElement, true); -+} -+ -+void XmlDiffAlgo::run() -+{ -+ kdDebug() << __func__ << endl; -+ begin(); -+ -+ QDomElement leftElement = mLeftXml.documentElement(); -+ QDomElement rightElement = mRightXml.documentElement(); -+ -+ compareNode( leftElement, rightElement ); -+ -+ end(); -+} -+ -diff --exclude=.svn -NrU5 kitchensync.orig/src/xmldiffalgo.h kitchensync/src/xmldiffalgo.h ---- kitchensync.orig/src/xmldiffalgo.h 1970-01-01 01:00:00.000000000 +0100 -+++ kitchensync/src/xmldiffalgo.h 2008-05-31 11:31:48.000000000 +0200 -@@ -0,0 +1,54 @@ -+/* -+ This file is part of KitchenSync -+ -+ Copyright (c) 2006 Daniel Gollub <dgollub@suse.de> -+ -+ This program is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Library General Public -+ License as published by the Free Software Foundation; either -+ version 2 of the License, or (at your option) any later version. -+ -+ This library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Library General Public License for more details. -+ -+ You should have received a copy of the GNU Library General Public License -+ along with this library; see the file COPYING.LIB. If not, write to -+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -+ Boston, MA 02110-1301, USA. -+*/ -+ -+#ifndef KSYNC_XMLDIFFALGO_H -+#define KSYNC_XMLDIFFALGO_H -+ -+#include <qdom.h> -+ -+#include <libkdepim/diffalgo.h> -+ -+using namespace KPIM; -+ -+namespace KSync { -+ -+class XmlDiffAlgo : public DiffAlgo -+{ -+ public: -+ XmlDiffAlgo( const QString &leftXml, const QString &rightXml ); -+ XmlDiffAlgo( const QDomDocument &leftXml, const QDomDocument &rightXml ); -+ -+ void run(); -+ -+ private: -+ void appendConflictNodes(QDomElement &leftElement, QDomElement &rightElement); -+ void appendSingleNodes(QDomElement &element, bool isLeft); -+ -+ -+ void compareNode(QDomElement &leftElement, QDomElement &rightElement); -+ -+ QDomDocument mLeftXml; -+ QDomDocument mRightXml; -+}; -+ -+} -+ -+#endif diff --git a/kde-base/kitchensync/kitchensync-3.5.9-r1.ebuild b/kde-base/kitchensync/kitchensync-3.5.9-r1.ebuild index 328b90750d66..8aecfe0fba20 100644 --- a/kde-base/kitchensync/kitchensync-3.5.9-r1.ebuild +++ b/kde-base/kitchensync/kitchensync-3.5.9-r1.ebuild @@ -1,6 +1,6 @@ -# Copyright 1999-2008 Gentoo Foundation +# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/kde-base/kitchensync/kitchensync-3.5.9-r1.ebuild,v 1.1 2008/06/05 23:31:36 loki_val Exp $ +# $Header: /var/cvsroot/gentoo-x86/kde-base/kitchensync/kitchensync-3.5.9-r1.ebuild,v 1.2 2009/02/03 22:50:01 alexxy Exp $ KMNAME=kdepim EAPI="1" @@ -8,6 +8,8 @@ inherit kde-meta eutils DESCRIPTION="Synchronize Data with KDE" KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" +SRC_URI="${SRC_URI} + mirror://gentoo/${P}-OpenSync0.30API.patch.tar.bz2" IUSE="" DEPEND=">=app-pda/libopensync-0.36 >=kde-base/kontact-${PV}:${SLOT} @@ -25,7 +27,7 @@ KMEXTRACTONLY=" libkdenetwork/ kontact/interfaces" -PATCHES=( "${FILESDIR}/${P}-OpenSync0.30API.patch" ) +PATCHES=( "${DISTDIR}/${P}-OpenSync0.30API.patch.tar.bz2" ) # Disabled by default in kontact/plugins/Makefile.am, so check before enabling - 3.4.0_beta1 -- danarmak # KMEXTRA="kontact/plugins/kitchensync" |