Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>pull/74/head
@ -1,3 +0,0 @@
|
||||
##### create translation templates ##############
|
||||
|
||||
tde_l10n_auto_add_subdirectories( )
|
@ -1,23 +0,0 @@
|
||||
#################################################
|
||||
#
|
||||
# (C) 2010-2011 Serghei Amelian
|
||||
# serghei (DOT) amelian (AT) gmail.com
|
||||
#
|
||||
# Improvements and feedback are welcome
|
||||
#
|
||||
# This file is released under GPL >= 2
|
||||
#
|
||||
#################################################
|
||||
|
||||
message( AUTHOR_WARNING
|
||||
" \n"
|
||||
" ---------------------------------------------------------- \n"
|
||||
" *** NOTE *** \n"
|
||||
" Building kitchensync is deprecated and should not be done. \n"
|
||||
" kitchensync will be dropped starting from R14.2.0. \n"
|
||||
" Please contact the TDE development team on ML if you wish \n"
|
||||
" kitchensync to be continued. \n"
|
||||
" ---------------------------------------------------------- \n")
|
||||
|
||||
add_subdirectory( libqopensync )
|
||||
add_subdirectory( src )
|
@ -1,3 +0,0 @@
|
||||
SUBDIRS = libqopensync src
|
||||
|
||||
include $(top_srcdir)/admin/Doxyfile.am
|
@ -1,8 +0,0 @@
|
||||
if test "$HAVE_OPENSYNC" = 0 -o "$HAVE_OPENSYNC_ENGINE" = 0; then
|
||||
echo ""
|
||||
echo "You're missing a compatible version of libopensync."
|
||||
echo "Version 0.19 or greater is needed."
|
||||
echo "kitchensync will not be built."
|
||||
echo ""
|
||||
all_tests=bad
|
||||
fi
|
@ -1,68 +0,0 @@
|
||||
dnl configure.in.in for OpenSync based KitchenSync
|
||||
dnl
|
||||
dnl Copyright (C) 2005 Holger Hans Peter Freyther
|
||||
dnl
|
||||
dnl Based on KPilot's configure.in
|
||||
dnl Copyright (C) 2000,2001 Adriaan de Groot
|
||||
dnl
|
||||
dnl This file is released under the terms of the GNU General Public
|
||||
dnl Licence (GPL) Version 2.
|
||||
|
||||
|
||||
|
||||
dnl we need PKG_CONFIG for doing these tests
|
||||
AC_DEFUN([KITCHENSYNC_CHECK_OPENSYNC],[
|
||||
dnl AC_REQUIRE([PKG_CHECK_MODULES])
|
||||
|
||||
dnl Say what we're doing
|
||||
AC_MSG_CHECKING(for opensync (for KitchenSync))
|
||||
AC_ARG_WITH(opensync,
|
||||
[ --with-opensync=PATH set prefix for opensync files],
|
||||
)dnl
|
||||
|
||||
dnl change pkg_config_path if we have a OpenSync prefix
|
||||
dnl and also set it to our prefix
|
||||
if test -d "$with_opensync"; then
|
||||
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/lib/pkgconfig:$with_opensync/lib/pkgconfig
|
||||
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(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)
|
||||
fi
|
||||
|
||||
if test "$PKG_CONFIG" != "no"; then
|
||||
OPENSYNC_CONFIGDIR=`$PKG_CONFIG --variable=configdir "opensync-1.0"`
|
||||
OPENSYNC_PLUGINDIR=`$PKG_CONFIG --variable=plugindir "opensync-1.0"`
|
||||
OPENSYNC_FORMATSDIR=`$PKG_CONFIG --variable=formatsdir "opensync-1.0"`
|
||||
OPENSYNC_HEADERDIR=`$PKG_CONFIG --variable=headerdir "opensync-1.0"`
|
||||
fi
|
||||
|
||||
AC_SUBST(OPENSYNC_CONFIGDIR)
|
||||
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)
|
||||
|
||||
if test "$HAVE_OPENSYNC" = 1 -a "$HAVE_OPENSYNC_ENGINE" = 1 ; then
|
||||
AC_MSG_RESULT([found])
|
||||
else
|
||||
AC_MSG_RESULT([not found])
|
||||
DO_NOT_COMPILE="$DO_NOT_COMPILE kitchensync"
|
||||
fi
|
||||
|
||||
])
|
||||
|
||||
|
||||
dnl Check For OpenSync support
|
||||
KITCHENSYNC_CHECK_OPENSYNC
|
@ -1,38 +0,0 @@
|
||||
#################################################
|
||||
#
|
||||
# (C) 2010-2011 Serghei Amelian
|
||||
# serghei (DOT) amelian (AT) gmail.com
|
||||
#
|
||||
# Improvements and feedback are welcome
|
||||
#
|
||||
# This file is released under GPL >= 2
|
||||
#
|
||||
#################################################
|
||||
|
||||
include( ConfigureChecks.cmake )
|
||||
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/..
|
||||
${TDE_INCLUDE_DIR}
|
||||
${TQT_INCLUDE_DIRS}
|
||||
${OSENGINE_INCLUDE_DIRS}
|
||||
${OPENSYNC_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
link_directories(
|
||||
${TQT_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
|
||||
##### qopensync (shared) ########################
|
||||
|
||||
tde_add_library( qopensync SHARED AUTOMOC
|
||||
SOURCES
|
||||
callbackhandler.cpp conversion.cpp engine.cpp environment.cpp
|
||||
filter.cpp group.cpp member.cpp plugin.cpp result.cpp syncmapping.cpp
|
||||
syncupdates.cpp syncchange.cpp
|
||||
VERSION 0.0.0
|
||||
LINK tdeui-shared ${OSENGINE_LIBRARIES} ${OPENSYNC_LIBRARIES}
|
||||
DESTINATION ${LIB_INSTALL_DIR}
|
||||
)
|
@ -1,22 +0,0 @@
|
||||
#################################################
|
||||
#
|
||||
# (C) 2010-2011 Serghei Amelian
|
||||
# serghei (DOT) amelian (AT) gmail.com
|
||||
#
|
||||
# Improvements and feedback are welcome
|
||||
#
|
||||
# This file is released under GPL >= 2
|
||||
#
|
||||
#################################################
|
||||
|
||||
# NOTE is needed libopensync-0.22
|
||||
|
||||
pkg_search_module( OPENSYNC opensync-1.0 )
|
||||
if( NOT OPENSYNC_FOUND )
|
||||
tde_message_fatal( "opensync-1.0 is requested, but was not found on your system" )
|
||||
endif( )
|
||||
|
||||
pkg_search_module( OSENGINE osengine-1.0 )
|
||||
if( NOT OSENGINE_FOUND )
|
||||
tde_message_fatal( "osengine-1.0 is requested, but was not found on your system" )
|
||||
endif( )
|
@ -1,19 +0,0 @@
|
||||
INCLUDES = -I$(top_srcdir)/kitchensync/src \
|
||||
-I$(top_srcdir)/kitchensync \
|
||||
-I$(top_srcdir) \
|
||||
$(OPENSYNC_CFLAGS) \
|
||||
$(OPENSYNCENGINE_CFLAGS) \
|
||||
$(all_includes)
|
||||
|
||||
lib_LTLIBRARIES = libqopensync.la
|
||||
|
||||
libqopensync_la_SOURCES = callbackhandler.cpp conversion.cpp engine.cpp environment.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_TDEUI) $(OPENSYNC_LIBS) $(OPENSYNCENGINE_LIBS)
|
||||
|
||||
METASOURCES = AUTO
|
||||
|
||||
messages: rc.cpp
|
||||
$(XGETTEXT) *.cpp *.h -o $(podir)/libqopensync.pot
|
@ -1,191 +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 <osengine/engine.h>
|
||||
|
||||
#include <libqopensync/engine.h>
|
||||
|
||||
#include <tqapplication.h>
|
||||
|
||||
#include "callbackhandler.h"
|
||||
|
||||
using namespace QSync;
|
||||
|
||||
class CallbackHandler::ConflictEvent : public TQCustomEvent
|
||||
{
|
||||
public:
|
||||
ConflictEvent( const SyncMapping& mapping )
|
||||
: TQCustomEvent( ConflictEventType ), mMapping( mapping )
|
||||
{
|
||||
}
|
||||
|
||||
SyncMapping mapping() const { return mMapping; }
|
||||
|
||||
private:
|
||||
SyncMapping mMapping;
|
||||
};
|
||||
|
||||
class CallbackHandler::ChangeEvent : public TQCustomEvent
|
||||
{
|
||||
public:
|
||||
ChangeEvent( const SyncChangeUpdate& change )
|
||||
: TQCustomEvent( ChangeEventType ), mChange( change )
|
||||
{
|
||||
}
|
||||
|
||||
SyncChangeUpdate change() const { return mChange; }
|
||||
|
||||
private:
|
||||
SyncChangeUpdate mChange;
|
||||
};
|
||||
|
||||
class CallbackHandler::MappingEvent : public TQCustomEvent
|
||||
{
|
||||
public:
|
||||
MappingEvent( const SyncMappingUpdate& mapping )
|
||||
: TQCustomEvent( MappingEventType ), mMapping( mapping )
|
||||
{
|
||||
}
|
||||
|
||||
SyncMappingUpdate mapping() const { return mMapping; }
|
||||
|
||||
private:
|
||||
SyncMappingUpdate mMapping;
|
||||
};
|
||||
|
||||
class CallbackHandler::EngineEvent : public TQCustomEvent
|
||||
{
|
||||
public:
|
||||
EngineEvent( const SyncEngineUpdate& engine )
|
||||
: TQCustomEvent( EngineEventType ), mEngine( engine )
|
||||
{
|
||||
}
|
||||
|
||||
SyncEngineUpdate engine() const { return mEngine; }
|
||||
|
||||
private:
|
||||
SyncEngineUpdate mEngine;
|
||||
};
|
||||
|
||||
class CallbackHandler::MemberEvent : public TQCustomEvent
|
||||
{
|
||||
public:
|
||||
MemberEvent( const SyncMemberUpdate& member )
|
||||
: TQCustomEvent( MemberEventType ), mMember( member )
|
||||
{
|
||||
}
|
||||
|
||||
SyncMemberUpdate member() const { return mMember; }
|
||||
|
||||
private:
|
||||
SyncMemberUpdate mMember;
|
||||
};
|
||||
|
||||
CallbackHandler::CallbackHandler()
|
||||
{
|
||||
}
|
||||
|
||||
CallbackHandler::~CallbackHandler()
|
||||
{
|
||||
}
|
||||
|
||||
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 );
|
||||
}
|
||||
|
||||
Engine* CallbackHandler::engine() const
|
||||
{
|
||||
return mEngine;
|
||||
}
|
||||
|
||||
void CallbackHandler::customEvent( TQCustomEvent *event )
|
||||
{
|
||||
if ( event->type() == static_cast<TQEvent::Type>( ConflictEventType ) ) {
|
||||
ConflictEvent *conflictEvent = static_cast<ConflictEvent*>( event );
|
||||
emit conflict( conflictEvent->mapping() );
|
||||
} else if ( event->type() == static_cast<TQEvent::Type>( ChangeEventType ) ) {
|
||||
ChangeEvent *changeEvent = static_cast<ChangeEvent*>( event );
|
||||
emit change( changeEvent->change() );
|
||||
} else if ( event->type() == static_cast<TQEvent::Type>( MappingEventType ) ) {
|
||||
MappingEvent *mappingEvent = static_cast<MappingEvent*>( event );
|
||||
emit mapping( mappingEvent->mapping() );
|
||||
} else if ( event->type() == static_cast<TQEvent::Type>( EngineEventType ) ) {
|
||||
EngineEvent *engineEvent = static_cast<EngineEvent*>( event );
|
||||
emit engine( engineEvent->engine() );
|
||||
} else if ( event->type() == static_cast<TQEvent::Type>( MemberEventType ) ) {
|
||||
MemberEvent *memberEvent = static_cast<MemberEvent*>( event );
|
||||
emit member( memberEvent->member() );
|
||||
}
|
||||
}
|
||||
|
||||
void CallbackHandler::conflict_callback( OSyncEngine *engine, OSyncMapping *omapping, void *data )
|
||||
{
|
||||
SyncMapping mapping( omapping, engine );
|
||||
|
||||
CallbackHandler *handler = static_cast<CallbackHandler*>( data );
|
||||
|
||||
TQApplication::postEvent( handler, new ConflictEvent( mapping ) );
|
||||
}
|
||||
|
||||
void CallbackHandler::change_callback( OSyncEngine*, OSyncChangeUpdate *update, void *data )
|
||||
{
|
||||
SyncChangeUpdate change( update );
|
||||
|
||||
CallbackHandler *handler = static_cast<CallbackHandler*>( data );
|
||||
|
||||
TQApplication::postEvent( handler, new ChangeEvent( change ) );
|
||||
}
|
||||
|
||||
void CallbackHandler::mapping_callback( OSyncMappingUpdate *update, void *data )
|
||||
{
|
||||
CallbackHandler *handler = static_cast<CallbackHandler*>( data );
|
||||
|
||||
SyncMappingUpdate mapping( update, handler->engine()->mEngine );
|
||||
|
||||
TQApplication::postEvent( handler, new MappingEvent( mapping ) );
|
||||
}
|
||||
|
||||
void CallbackHandler::engine_callback( OSyncEngine*, OSyncEngineUpdate *update, void *data )
|
||||
{
|
||||
SyncEngineUpdate engine( update );
|
||||
|
||||
CallbackHandler *handler = static_cast<CallbackHandler*>( data );
|
||||
|
||||
TQApplication::postEvent( handler, new EngineEvent( engine ) );
|
||||
}
|
||||
|
||||
void CallbackHandler::member_callback( OSyncMemberUpdate *update, void *data )
|
||||
{
|
||||
SyncMemberUpdate member( update );
|
||||
|
||||
CallbackHandler *handler = static_cast<CallbackHandler*>( data );
|
||||
|
||||
TQApplication::postEvent( handler, new MemberEvent( member ) );
|
||||
}
|
||||
|
||||
#include "callbackhandler.moc"
|
@ -1,91 +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 TQSYNC_CALLBACKHANDLER_H
|
||||
#define TQSYNC_CALLBACKHANDLER_H
|
||||
|
||||
#include <libqopensync/syncmapping.h>
|
||||
#include <libqopensync/syncupdates.h>
|
||||
|
||||
#include <tqobject.h>
|
||||
|
||||
class OSyncEngine;
|
||||
class OSyncMapping;
|
||||
class OSyncChangeUpdate;
|
||||
class OSyncMappingUpdate;
|
||||
class OSyncEngineUpdate;
|
||||
class OSyncMemberUpdate;
|
||||
|
||||
class TQCustomEvent;
|
||||
|
||||
namespace QSync {
|
||||
|
||||
class Engine;
|
||||
|
||||
class CallbackHandler : public TQObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
CallbackHandler();
|
||||
~CallbackHandler();
|
||||
|
||||
void setEngine( Engine *engine );
|
||||
Engine* engine() const;
|
||||
|
||||
signals:
|
||||
void conflict( QSync::SyncMapping mapping );
|
||||
void change( const QSync::SyncChangeUpdate &update );
|
||||
void mapping( const QSync::SyncMappingUpdate &update );
|
||||
void engine( const QSync::SyncEngineUpdate &update );
|
||||
void member( const QSync::SyncMemberUpdate &update );
|
||||
|
||||
protected:
|
||||
virtual void customEvent( TQCustomEvent *event );
|
||||
|
||||
private:
|
||||
enum EventType {
|
||||
ConflictEventType = 4044,
|
||||
ChangeEventType,
|
||||
MappingEventType,
|
||||
EngineEventType,
|
||||
MemberEventType
|
||||
};
|
||||
|
||||
class ConflictEvent;
|
||||
class ChangeEvent;
|
||||
class MappingEvent;
|
||||
class EngineEvent;
|
||||
class MemberEvent;
|
||||
|
||||
static void conflict_callback( OSyncEngine*, OSyncMapping*, void* );
|
||||
static void change_callback( OSyncEngine*, OSyncChangeUpdate*, void* );
|
||||
static void mapping_callback( OSyncMappingUpdate*, void* );
|
||||
static void engine_callback( OSyncEngine*, OSyncEngineUpdate*, void* );
|
||||
static void member_callback( OSyncMemberUpdate*, void* );
|
||||
|
||||
Engine* mEngine;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -1,58 +0,0 @@
|
||||
/*
|
||||
This file is part of libqopensync.
|
||||
|
||||
Copyright (c) 2006 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 "conversion.h"
|
||||
|
||||
using namespace QSync;
|
||||
|
||||
Conversion::Conversion()
|
||||
: mEnvironment( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
Conversion::~Conversion()
|
||||
{
|
||||
}
|
||||
|
||||
bool Conversion::isValid() const
|
||||
{
|
||||
return mEnvironment != 0;
|
||||
}
|
||||
|
||||
TQStringList Conversion::objectTypes() const
|
||||
{
|
||||
Q_ASSERT( mEnvironment );
|
||||
|
||||
OSyncFormatEnv *formatEnv = osync_conv_env_new( mEnvironment );
|
||||
Q_ASSERT( formatEnv );
|
||||
|
||||
TQStringList types;
|
||||
for ( int i = 0; i < osync_conv_num_objtypes( formatEnv ); i++ ) {
|
||||
OSyncObjType *type = osync_conv_nth_objtype( formatEnv, i );
|
||||
types.append( TQString::fromUtf8( osync_objtype_get_name( type ) ) );
|
||||
}
|
||||
|
||||
osync_conv_env_free( formatEnv );
|
||||
|
||||
return types;
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
/*
|
||||
This file is part of libqopensync.
|
||||
|
||||
Copyright (c) 2006 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 TQSYNC_CONVERSION_H
|
||||
#define TQSYNC_CONVERSION_H
|
||||
|
||||
#include <tqstringlist.h>
|
||||
|
||||
class OSyncEnv;
|
||||
|
||||
namespace QSync {
|
||||
|
||||
class Conversion
|
||||
{
|
||||
friend class Environment;
|
||||
|
||||
public:
|
||||
Conversion();
|
||||
~Conversion();
|
||||
|
||||
/**
|
||||
Returns whether the object is a valid conversion.
|
||||
*/
|
||||
bool isValid() const;
|
||||
|
||||
/**
|
||||
Returns the list of names of supported object types.
|
||||
*/
|
||||
TQStringList objectTypes() const;
|
||||
|
||||
private:
|
||||
OSyncEnv *mEnvironment;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -1,67 +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 <opensync/opensync.h>
|
||||
#include <osengine/engine.h>
|
||||
|
||||
#include "engine.h"
|
||||
|
||||
using namespace QSync;
|
||||
|
||||
Engine::Engine( const Group &group )
|
||||
{
|
||||
OSyncError *error = 0;
|
||||
mEngine = osengine_new( group.mGroup, &error );
|
||||
}
|
||||
|
||||
Engine::~Engine()
|
||||
{
|
||||
osengine_free( mEngine );
|
||||
mEngine = 0;
|
||||
}
|
||||
|
||||
Result Engine::initialize()
|
||||
{
|
||||
OSyncError *error = 0;
|
||||
if ( !osengine_init( mEngine, &error ) )
|
||||
return Result( &error );
|
||||
else
|
||||
return Result();
|
||||
}
|
||||
|
||||
void Engine::finalize()
|
||||
{
|
||||
osengine_finalize( mEngine );
|
||||
}
|
||||
|
||||
Result Engine::synchronize()
|
||||
{
|
||||
OSyncError *error = 0;
|
||||
if ( !osengine_synchronize( mEngine, &error ) )
|
||||
return Result( &error );
|
||||
else
|
||||
return Result();
|
||||
}
|
||||
|
||||
void Engine::abort()
|
||||
{
|
||||
osengine_abort( mEngine );
|
||||
}
|
@ -1,72 +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 TQSYNC_ENGINE_H
|
||||
#define TQSYNC_ENGINE_H
|
||||
|
||||
#include <libqopensync/group.h>
|
||||
|
||||
class OSyncEngine;
|
||||
|
||||
namespace QSync {
|
||||
|
||||
class Engine
|
||||
{
|
||||
friend class CallbackHandler;
|
||||
|
||||
public:
|
||||
/**
|
||||
Constructs an engine .
|
||||
*/
|
||||
Engine( const Group &group );
|
||||
|
||||
/**
|
||||
Destroys the engine.
|
||||
*/
|
||||
~Engine();
|
||||
|
||||
/**
|
||||
Initializes the engine.
|
||||
*/
|
||||
Result initialize();
|
||||
|
||||
/**
|
||||
Finalizes the engine.
|
||||
*/
|
||||
void finalize();
|
||||
|
||||
/**
|
||||
Starts the synchronization process.
|
||||
*/
|
||||
Result synchronize();
|
||||
|
||||
/**
|
||||
Stops the synchronization process.
|
||||
*/
|
||||
void abort();
|
||||
|
||||
private:
|
||||
OSyncEngine *mEngine;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -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 TQString &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 TQString &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;
|
||||
}
|
@ -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 <tqstring.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 TQString &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 TQString &name ) const;
|
||||
|
||||
/**
|
||||
Returns the conversion object of this environment.
|
||||
*/
|
||||
Conversion conversion() const;
|
||||
|
||||
private:
|
||||
OSyncEnv *mEnvironment;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -1,55 +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 <opensync/opensync.h>
|
||||
|
||||
#include "filter.h"
|
||||
|
||||
using namespace QSync;
|
||||
|
||||
Filter::Filter()
|
||||
: mFilter( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
Filter::~Filter()
|
||||
{
|
||||
}
|
||||
|
||||
bool Filter::isValid() const
|
||||
{
|
||||
return (mFilter != 0);
|
||||
}
|
||||
|
||||
void Filter::setConfiguration( const TQString &configuration )
|
||||
{
|
||||
Q_ASSERT( mFilter );
|
||||
|
||||
osync_filter_set_config( mFilter, (const char*)configuration.utf8() );
|
||||
}
|
||||
|
||||
TQString Filter::configuration() const
|
||||
{
|
||||
Q_ASSERT( mFilter );
|
||||
|
||||
return TQString::fromUtf8( osync_filter_get_config( mFilter ) );
|
||||
}
|
||||
|
@ -1,64 +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 TQSYNC_FILTER_H
|
||||
#define TQSYNC_FILTER_H
|
||||
|
||||
#include <tqstring.h>
|
||||
|
||||
class OSyncFilter;
|
||||
|
||||
namespace QSync {
|
||||
|
||||
class Filter
|
||||
{
|
||||
friend class Group;
|
||||
|
||||
public:
|
||||
Filter();
|
||||
~Filter();
|
||||
|
||||
/**
|
||||
Returns whether the object is a valid filter.
|
||||
*/
|
||||
bool isValid() const;
|
||||
|
||||
/**
|
||||
Sets the configuration string of this filter. The format of
|
||||
string is filter specific.
|
||||
*/
|
||||
void setConfiguration( const TQString &configuration );
|
||||
|
||||
/**
|
||||
Returns the configuration string of this filter.
|
||||
*/
|
||||
TQString configuration() const;
|
||||
|
||||
bool operator==( const Filter &filter ) const { return mFilter == filter.mFilter; }
|
||||
|
||||
private:
|
||||
OSyncFilter *mFilter;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -1,292 +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.
|
||||
*/
|
||||
|
||||
/** hack includes **/
|
||||
#include <tqdom.h>
|
||||
#include <tqfile.h>
|
||||
/** hack includes **/
|
||||
|
||||
#include <opensync/opensync.h>
|
||||
|
||||
#include "conversion.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 )
|
||||
{
|
||||
}
|
||||
|
||||
TQStringList GroupConfig::activeObjectTypes() const
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
const TQString fileName = TQString( "%1/filter.conf" ).arg( osync_group_get_configdir( mGroup ) );
|
||||
|
||||
TQFile file( fileName );
|
||||
if ( !file.open( IO_ReadOnly ) )
|
||||
return TQStringList();
|
||||
|
||||
TQDomDocument document;
|
||||
|
||||
TQString message;
|
||||
if ( !document.setContent( &file, &message ) ) {
|
||||
tqDebug( "Error on loading %s: %s", fileName.latin1(), message.latin1() );
|
||||
return TQStringList();
|
||||
}
|
||||
file.close();
|
||||
|
||||
TQStringList objectTypes;
|
||||
|
||||
TQDomElement element = document.documentElement();
|
||||
TQDomNode node = element.firstChild();
|
||||
while ( !node.isNull() ) {
|
||||
TQDomElement childElement = node.toElement();
|
||||
if ( !childElement.isNull() )
|
||||
objectTypes.append( childElement.tagName() );
|
||||
|
||||
node = node.nextSibling();
|
||||
}
|
||||
|
||||
return objectTypes;
|
||||
}
|
||||
|
||||
void GroupConfig::setActiveObjectTypes( const TQStringList &objectTypes )
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
TQDomDocument document( "Filter" );
|
||||
document.appendChild( document.createProcessingInstruction(
|
||||
"xml", "version=\"1.0\" encoding=\"UTF-8\"" ) );
|
||||
|
||||
TQDomElement element = document.createElement( "filter" );
|
||||
document.appendChild( element );
|
||||
|
||||
for ( uint i = 0; i < objectTypes.count(); ++i ) {
|
||||
TQDomElement entry = document.createElement( objectTypes[ i ] );
|
||||
element.appendChild( entry );
|
||||
}
|
||||
|
||||
const TQString fileName = TQString( "%1/filter.conf" ).arg( osync_group_get_configdir( mGroup ) );
|
||||
|
||||
TQFile file( fileName );
|
||||
if ( !file.open( IO_WriteOnly ) )
|
||||
return;
|
||||
|
||||
TQTextStream s( &file );
|
||||
s.setEncoding( TQTextStream::UnicodeUTF8 );
|
||||
s << document.toString();
|
||||
file.close();
|
||||
}
|
||||
|
||||
|
||||
Group::Group()
|
||||
: mGroup( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
Group::~Group()
|
||||
{
|
||||
}
|
||||
|
||||
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 TQString &name )
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
osync_group_set_name( mGroup, name.latin1() );
|
||||
}
|
||||
|
||||
TQString Group::name() const
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
return TQString::fromLatin1( osync_group_get_name( mGroup ) );
|
||||
}
|
||||
|
||||
void Group::setLastSynchronization( const TQDateTime &dateTime )
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
if ( dateTime.isValid() )
|
||||
osync_group_set_last_synchronization( mGroup, dateTime.toTime_t() );
|
||||
}
|
||||
|
||||
TQDateTime Group::lastSynchronization() const
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
TQDateTime dateTime;
|
||||
time_t time = osync_group_get_last_synchronization( mGroup );
|
||||
if ( time != 0 )
|
||||
dateTime.setTime_t( time );
|
||||
|
||||
return dateTime;
|
||||
}
|
||||
|
||||
Group::LockType Group::lock()
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
OSyncLockState state = osync_group_lock( mGroup );
|
||||
switch ( state ) {
|
||||
default:
|
||||
case OSYNC_LOCK_OK:
|
||||
return LockOk;
|
||||
break;
|
||||
case OSYNC_LOCKED:
|
||||
return Locked;
|
||||
break;
|
||||
case OSYNC_LOCK_STALE:
|
||||
return LockStale;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Group::unlock( bool removeFile )
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
osync_group_unlock( mGroup, removeFile );
|
||||
}
|
||||
|
||||
Member Group::addMember()
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
OSyncMember *omember = osync_member_new( mGroup );
|
||||
|
||||
Member member;
|
||||
member.mMember = omember;
|
||||
|
||||
save();
|
||||
|
||||
return member;
|
||||
}
|
||||
|
||||
void Group::removeMember( const Member &member )
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
osync_group_remove_member( mGroup, member.mMember );
|
||||
}
|
||||
|
||||
int Group::memberCount() const
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
return osync_group_num_members( mGroup );
|
||||
}
|
||||
|
||||
Member Group::memberAt( int pos ) const
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
Member member;
|
||||
|
||||
if ( pos < 0 || pos >= memberCount() )
|
||||
return member;
|
||||
|
||||
member.mMember = osync_group_nth_member( mGroup, pos );
|
||||
|
||||
return member;
|
||||
}
|
||||
|
||||
int Group::filterCount() const
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
return osync_group_num_filters( mGroup );
|
||||
}
|
||||
|
||||
Filter Group::filterAt( int pos )
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
Filter filter;
|
||||
|
||||
if ( pos < 0 || pos >= filterCount() )
|
||||
return filter;
|
||||
|
||||
filter.mFilter = osync_group_nth_filter( mGroup, pos );
|
||||
|
||||
return filter;
|
||||
}
|
||||
|
||||
Result Group::save()
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
OSyncError *error = 0;
|
||||
if ( !osync_group_save( mGroup, &error ) )
|
||||
return Result( &error );
|
||||
else
|
||||
return Result();
|
||||
}
|
||||
|
||||
void Group::setObjectTypeEnabled( const TQString &objectType, bool enabled )
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
osync_group_set_objtype_enabled( mGroup, objectType.utf8(), enabled );
|
||||
}
|
||||
|
||||
bool Group::isObjectTypeEnabled( const TQString &objectType ) const
|
||||
{
|
||||
return osync_group_objtype_enabled( mGroup, objectType.utf8() );
|
||||
}
|
||||
|
||||
GroupConfig Group::config() const
|
||||
{
|
||||
Q_ASSERT( mGroup );
|
||||
|
||||
GroupConfig config;
|
||||
config.mGroup = mGroup;
|
||||
|
||||
return config;
|
||||
}
|
@ -1,217 +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 TQSYNC_GROUP_H
|
||||
#define TQSYNC_GROUP_H
|
||||
|
||||
#include <tqdatetime.h>
|
||||
#include <tqstringlist.h>
|
||||
|
||||
#include <libqopensync/filter.h>
|
||||
#include <libqopensync/member.h>
|
||||
|
||||
class OSyncGroup;
|
||||
|
||||
namespace QSync {
|
||||
|
||||
/**
|
||||
@internal
|
||||
*/
|
||||
class GroupConfig
|
||||
{
|
||||
friend class Group;
|
||||
|
||||
public:
|
||||
GroupConfig();
|
||||
|
||||
TQStringList activeObjectTypes() const;
|
||||
void setActiveObjectTypes( const TQStringList &objectTypes );
|
||||
|
||||
private:
|
||||
OSyncGroup *mGroup;
|
||||
};
|
||||
|
||||
|
||||
class Group
|
||||
{
|
||||
friend class Engine;
|
||||
friend class Environment;
|
||||
|
||||
public:
|
||||
enum LockType
|
||||
{
|
||||
LockOk,
|
||||
Locked,
|
||||
LockStale
|
||||
};
|
||||
|
||||
Group();
|
||||
~Group();
|
||||
|
||||
/**
|
||||
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 TQString &name );
|
||||
|
||||
/**
|
||||
Returns the name of the group.
|
||||
*/
|
||||
TQString name() const;
|
||||
|
||||
/**
|
||||
Sets the time of the last successfull synchronization.
|
||||
*/
|
||||
void setLastSynchronization( const TQDateTime &dateTime );
|
||||
|
||||
/**
|
||||
Returns the time of the last successfull synchronization.
|
||||
*/
|
||||
TQDateTime lastSynchronization() const;
|
||||
|
||||
/**
|
||||
Locks the group.
|
||||
|
||||
@returns The the result of the locking request.
|
||||
*/
|
||||
LockType lock();
|
||||
|
||||
/**
|
||||
Unlocks the group.
|
||||
|
||||
@param removeFile Whether the lock file shall be removed.
|
||||
*/
|
||||
void unlock( bool removeFile = true );
|
||||
|
||||
/**
|
||||
Adds a new member to the group.
|
||||
|
||||
@returns the new member.
|
||||
*/
|
||||
Member addMember();
|
||||
|
||||
/**
|
||||
Removes a member from the group.
|
||||
*/
|
||||
void removeMember( const Member &member );
|
||||
|
||||
/**
|
||||
Returns the number of members.
|
||||
*/
|
||||
int memberCount() const;
|
||||
|
||||
/**
|
||||
Returns the member at position @param pos.
|
||||
*/
|
||||
Member memberAt( int pos ) const;
|
||||
|
||||
/**
|
||||
Returns the number of filters.
|
||||
*/
|
||||
int filterCount() const;
|
||||
|
||||
/**
|
||||
Returns the filter at position @param pos.
|
||||
*/
|
||||
Filter filterAt( int pos );
|
||||
|
||||
/**
|
||||
Set, if the object type with given name is enabled for synchronisation for
|
||||
this group.
|
||||
*/
|
||||
void setObjectTypeEnabled( const TQString &objectType, bool enabled );
|
||||
|
||||
/**
|
||||
Returns whether the object type with given name is enabled for synchronisation for
|
||||
this group.
|
||||
*/
|
||||
bool isObjectTypeEnabled( const TQString &objectType ) const;
|
||||
|
||||
/**
|
||||
Saves the configuration to hard disc.
|
||||
*/
|
||||
Result save();
|
||||
|
||||
/**
|
||||
Returns the config object of this group.
|
||||
|
||||
Note: This method is only available for OpenSync 0.19 and 0.20.
|
||||
*/
|
||||
GroupConfig config() const;
|
||||
|
||||
bool operator==( const Group &group ) const { return mGroup == group.mGroup; }
|
||||
|
||||
private:
|
||||
OSyncGroup *mGroup;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -1,121 +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 <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 TQString &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 TQString &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 );
|
||||
tqDebug( "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 );
|
||||
}
|
@ -1,86 +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_GROUPENV_H
|
||||
#define OSYNC_GROUPENV_H
|
||||
|
||||
#include <tqstring.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 TQString &name ) const;
|
||||
|
||||
/**
|
||||
Adds a new group to the environment.
|
||||
|
||||
@returns the new group.
|
||||
*/
|
||||
Group addGroup( const TQString &name );
|
||||
|
||||
/**
|
||||
Removes a group from the environment.
|
||||
*/
|
||||
void removeGroup( const Group &group );
|
||||
|
||||
private:
|
||||
OSyncGroupEnv *mGroupEnv;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -1,188 +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 <opensync/opensync.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "member.h"
|
||||
|
||||
using namespace QSync;
|
||||
|
||||
Member::Member()
|
||||
: mMember( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
Member::~Member()
|
||||
{
|
||||
}
|
||||
|
||||
bool Member::isValid() const
|
||||
{
|
||||
OSyncError *error = 0;
|
||||
|
||||
if ( !mMember )
|
||||
return false;
|
||||
|
||||
if ( !osync_member_instance_plugin( mMember, pluginName().utf8(), &error ) ) {
|
||||
tqDebug( "Plugin %s is not valid: %s", pluginName().latin1(), osync_error_print( &error ) );
|
||||
osync_error_free( &error );
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
TQString Member::configurationDirectory() const
|
||||
{
|
||||
Q_ASSERT( mMember );
|
||||
|
||||
return TQString::fromLatin1( osync_member_get_configdir( mMember ) );
|
||||
}
|
||||
|
||||
TQString Member::pluginName() const
|
||||
{
|
||||
Q_ASSERT( mMember );
|
||||
|
||||
return TQString::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 );
|
||||
}
|
||||
|
||||
void Member::setName( const TQString &name )
|
||||
{
|
||||
Q_ASSERT( mMember );
|
||||
|
||||
osync_member_set_name( mMember, (const char*)name.utf8() );
|
||||
}
|
||||
|
||||
TQString Member::name() const
|
||||
{
|
||||
Q_ASSERT( mMember );
|
||||
|
||||
return TQString::fromUtf8( osync_member_get_name( mMember ) );
|
||||
}
|
||||
|
||||
void Member::setConfiguration( const TQByteArray &configurationData )
|
||||
{
|
||||
Q_ASSERT( mMember );
|
||||
|
||||
osync_member_set_config( mMember, configurationData.data(), configurationData.size() );
|
||||
}
|
||||
|
||||
Result Member::configuration( TQByteArray &configurationData, bool useDefault )
|
||||
{
|
||||
Q_ASSERT( mMember );
|
||||
|
||||
char *data;
|
||||
int size;
|
||||
|
||||
OSyncError *error = 0;
|
||||
osync_bool ok = false;
|
||||
if ( useDefault )
|
||||
ok = osync_member_get_config_or_default( mMember, &data, &size, &error );
|
||||
else
|
||||
ok = osync_member_get_config( mMember, &data, &size, &error );
|
||||
|
||||
if ( !ok ) {
|
||||
return Result( &error );
|
||||
} else {
|
||||
configurationData.resize( size );
|
||||
memcpy( configurationData.data(), data, size );
|
||||
|
||||
return Result();
|
||||
}
|
||||
}
|
||||
|
||||
Result Member::save()
|
||||
{
|
||||
Q_ASSERT( mMember );
|
||||
|
||||
OSyncError *error = 0;
|
||||
if ( !osync_member_save( mMember, &error ) )
|
||||
return Result( &error );
|
||||
else
|
||||
return Result();
|
||||
}
|
||||
|
||||
Result Member::instance( const Plugin &plugin )
|
||||
{
|
||||
OSyncError *error = 0;
|
||||
if ( !osync_member_instance_plugin( mMember, plugin.name().utf8(), &error ) )
|
||||
return Result( &error );
|
||||
else
|
||||
return Result();
|
||||
}
|
||||
|
||||
bool Member::operator==( const Member &member ) const
|
||||
{
|
||||
return mMember == member.mMember;
|
||||
}
|
||||
|
||||
TQString Member::scanDevices( const TQString &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 TQString();
|
||||
} else {
|
||||
TQString xml = TQString::fromUtf8( data );
|
||||
free( data );
|
||||
return xml;
|
||||
}
|
||||
}
|
||||
|
||||
bool Member::testConnection( const TQString &configuration )
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
@ -1,129 +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 TQSYNC_MEMBER_H
|
||||
#define TQSYNC_MEMBER_H
|
||||
|
||||
#include <libqopensync/plugin.h>
|
||||
#include <libqopensync/result.h>
|
||||
#include <libqopensync/plugin.h>
|
||||
|
||||
class OSyncMember;
|
||||
|
||||
namespace QSync {
|
||||
|
||||
class Member
|
||||
{
|
||||
friend class Group;
|
||||
friend class SyncChange;
|
||||
friend class SyncMemberUpdate;
|
||||
|
||||
public:
|
||||
Member();
|
||||
~Member();
|
||||
|
||||
/**
|
||||
Returns whether the member object is valid.
|
||||
*/
|
||||
bool isValid() const;
|
||||
|
||||
/**
|
||||
Returns the configuration directory.
|
||||
*/
|
||||
TQString configurationDirectory() const;
|
||||
|
||||
/**
|
||||
Returns the name of the plugin, the member belongs to.
|
||||
*/
|
||||
TQString pluginName() const;
|
||||
|
||||
/**
|
||||
Returns the plugin, the member belongs to.
|
||||
*/
|
||||
Plugin plugin() const;
|
||||
|
||||
/**
|
||||
Returns the id of the plugin.
|
||||
*/
|
||||
int id() const;
|
||||
|
||||
/**
|
||||
Sets the name of this member.
|
||||
*/
|
||||
void setName( const TQString &name );
|
||||
|
||||
/**
|
||||
Returns the name of this member.
|
||||
*/
|
||||
TQString name() const;
|
||||
|
||||
/**
|
||||
Sets the configuration data as byte array. The developer has to decide the
|
||||
type of the data ( e.g. xml, plain text, binary ).
|
||||
*/
|
||||
void setConfiguration( const TQByteArray &configurationData );
|
||||
|
||||
/**
|
||||
Gets the configuration data as byte array. The developer has to decide the
|
||||
type of the data ( e.g. xml, plain text, binary ).
|
||||
|
||||
@param useDefault If set to true, return default config, if no config
|
||||
exists. If set to false, return error when no config
|
||||
exists.
|
||||
|
||||
@returns The result of this operation.
|
||||
*/
|
||||
Result configuration( TQByteArray &configurationData,
|
||||
bool useDefault = true );
|
||||
|
||||
/**
|
||||
Saves the changes to the configuration to hard disc.
|
||||
*/
|
||||
Result save();
|
||||
|
||||
/**
|
||||
Make this member an instance of the given plugin.
|
||||
*/
|
||||
Result instance( const Plugin & );
|
||||
|
||||
bool operator==( const Member& ) const;
|
||||
|
||||
/**
|
||||
This method can be used to query the plugin for scanning devices.
|
||||
The @param query is a plugin specific xml document as well as
|
||||
the return value.
|
||||
*/
|
||||
TQString scanDevices( const TQString &query );
|
||||
|
||||
/**
|
||||
This method can be used to test whether the plugin can connect
|
||||
to the device with the given configuration.
|
||||
*/
|
||||
bool testConnection( const TQString &configuration );
|
||||
|
||||
private:
|
||||
OSyncMember *mMember;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -1,62 +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 <opensync/opensync.h>
|
||||
|
||||
#include "plugin.h"
|
||||
|
||||
using namespace QSync;
|
||||
|
||||
Plugin::Plugin()
|
||||
: mPlugin( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
Plugin::~Plugin()
|
||||
{
|
||||
}
|
||||
|
||||
bool Plugin::isValid() const
|
||||
{
|
||||
return ( mPlugin != 0 );
|
||||
}
|
||||
|
||||
TQString Plugin::name() const
|
||||
{
|
||||
Q_ASSERT( mPlugin );
|
||||
|
||||
return TQString::fromLatin1( osync_plugin_get_name( mPlugin ) );
|
||||
}
|
||||
|
||||
TQString Plugin::longName() const
|
||||
{
|
||||
Q_ASSERT( mPlugin );
|
||||
|
||||
return TQString::fromLatin1( osync_plugin_get_longname( mPlugin ) );
|
||||
}
|
||||
|
||||
TQString Plugin::description() const
|
||||
{
|
||||
Q_ASSERT( mPlugin );
|
||||
|
||||
return TQString::fromLatin1( osync_plugin_get_description( mPlugin ) );
|
||||
}
|
||||
|
@ -1,67 +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 TQSYNC_PLUGIN_H
|
||||
#define TQSYNC_PLUGIN_H
|
||||
|
||||
#include <tqstring.h>
|
||||
|
||||
class OSyncPlugin;
|
||||
|
||||
namespace QSync {
|
||||
|
||||
class Plugin
|
||||
{
|
||||
friend class Environment;
|
||||
friend class Member;
|
||||
|
||||
public:
|
||||
Plugin();
|
||||
~Plugin();
|
||||
|
||||
/**
|
||||
Returns whether the object is a valid plugin.
|
||||
*/
|
||||
bool isValid() const;
|
||||
|
||||
/**
|
||||
Returns the name of the plugin.
|
||||
*/
|
||||
TQString name() const;
|
||||
|
||||
/**
|
||||
Returns the long name of the plugin.
|
||||
*/
|
||||
TQString longName() const;
|
||||
|
||||
/**
|
||||
Returns the description of the plugin.
|
||||
*/
|
||||
TQString description() const;
|
||||
|
||||
private:
|
||||
OSyncPlugin *mPlugin;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -1,96 +0,0 @@
|
||||
/*
|
||||
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 TQString &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;
|
||||
}
|
||||
*/
|
@ -1,80 +0,0 @@
|
||||
/*
|
||||
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 <tqstring.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 TQString &name ) const;
|
||||
|
||||
/**
|
||||
Returns the conversion object of this environment.
|
||||
*/
|
||||
// Conversion conversion() const;
|
||||
|
||||
private:
|
||||
OSyncPluginEnv *mPluginEnv;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -1,149 +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 "result.h"
|
||||
|
||||
#include <opensync/opensync.h>
|
||||
|
||||
using namespace QSync;
|
||||
|
||||
Result::Result()
|
||||
: mType( NoError )
|
||||
{
|
||||
}
|
||||
|
||||
Result::Result( Type type )
|
||||
: mType( type )
|
||||
{
|
||||
}
|
||||
|
||||
Result::Result( OSyncError **error, bool deleteError )
|
||||
{
|
||||
OSyncErrorType otype = osync_error_get_type( error );
|
||||
Type type;
|
||||
|
||||
switch ( otype ) {
|
||||
case OSYNC_NO_ERROR:
|
||||
type = NoError;
|
||||
break;
|
||||
default:
|
||||
case OSYNC_ERROR_GENERIC:
|
||||
type = GenericError;
|
||||
break;
|
||||
case OSYNC_ERROR_IO_ERROR:
|
||||
type = IOError;
|
||||
break;
|
||||
case OSYNC_ERROR_NOT_SUPPORTED:
|
||||
type = NotSupported;
|
||||
break;
|
||||
case OSYNC_ERROR_TIMEOUT:
|
||||
type = Timeout;
|
||||
break;
|
||||
case OSYNC_ERROR_DISCONNECTED:
|
||||
type = Disconnected;
|
||||
break;
|
||||
case OSYNC_ERROR_FILE_NOT_FOUND:
|
||||
type = FileNotFound;
|
||||
break;
|
||||
case OSYNC_ERROR_EXISTS:
|
||||
type = Exists;
|
||||
break;
|
||||
case OSYNC_ERROR_CONVERT:
|
||||
type = Convert;
|
||||
break;
|
||||
case OSYNC_ERROR_MISCONFIGURATION:
|
||||
type = Misconfiguration;
|
||||
break;
|
||||
case OSYNC_ERROR_INITIALIZATION:
|
||||
type = Initialization;
|
||||
break;
|
||||
case OSYNC_ERROR_PARAMETER:
|
||||
type = Parameter;
|
||||
break;
|
||||
case OSYNC_ERROR_EXPECTED:
|
||||
type = Expected;
|
||||
break;
|
||||
case OSYNC_ERROR_NO_CONNECTION:
|
||||
type = NoConnection;
|
||||
break;
|
||||
case OSYNC_ERROR_TEMPORARY:
|
||||
type = Temporary;
|
||||
break;
|
||||
case OSYNC_ERROR_LOCKED:
|
||||
type = Locked;
|
||||
break;
|
||||
case OSYNC_ERROR_PLUGIN_NOT_FOUND:
|
||||
type = PluginNotFound;
|
||||
break;
|
||||
}
|
||||
|
||||
mType = type;
|
||||
mName = TQString::fromUtf8( osync_error_get_name( error ) );
|
||||
mMessage = TQString::fromUtf8( osync_error_print( error ) );
|
||||
|
||||
if ( deleteError )
|
||||
osync_error_free( error );
|
||||
}
|
||||
|
||||
Result::~Result()
|
||||
{
|
||||
}
|
||||
|
||||
void Result::setName( const TQString &name )
|
||||
{
|
||||
mName = name;
|
||||
}
|
||||
|
||||
TQString Result::name() const
|
||||
{
|
||||
return mName;
|
||||
}
|
||||
|
||||
void Result::setMessage( const TQString &message )
|
||||
{
|
||||
mMessage = message;
|
||||
}
|
||||
|
||||
TQString Result::message() const
|
||||
{
|
||||
return mMessage;
|
||||
}
|
||||
|
||||
void Result::setType( Type type )
|
||||
{
|
||||
mType = type;
|
||||
}
|
||||
|
||||
Result::Type Result::type() const
|
||||
{
|
||||
return mType;
|
||||
}
|
||||
|
||||
bool Result::isError() const
|
||||
{
|
||||
return mType != NoError;
|
||||
}
|
||||
|
||||
Result::operator bool () const
|
||||
{
|
||||
return ( mType != NoError );
|
||||
}
|
||||
|
@ -1,126 +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 TQSYNC_RESULT_H
|
||||
#define TQSYNC_RESULT_H
|
||||
|
||||
#include <tqstring.h>
|
||||
|
||||
struct OSyncError;
|
||||
|
||||
namespace QSync {
|
||||
|
||||
class Result
|
||||
{
|
||||
public:
|
||||
/**
|
||||
Result types.
|
||||
*/
|
||||
enum Type {
|
||||
NoError,
|
||||
GenericError,
|
||||
IOError,
|
||||
NotSupported,
|
||||
Timeout,
|
||||
Disconnected,
|
||||
FileNotFound,
|
||||
Exists,
|
||||
Convert,
|
||||
Misconfiguration,
|
||||
Initialization,
|
||||
Parameter,
|
||||
Expected,
|
||||
NoConnection,
|
||||
Temporary,
|
||||
Locked,
|
||||
PluginNotFound
|
||||
};
|
||||
|
||||
/**
|
||||
Constructs a NoError result.
|
||||
*/
|
||||
Result();
|
||||
|
||||
/**
|
||||
Constructs a result of the given type.
|
||||
*/
|
||||
Result( Type type );
|
||||
|
||||
/**
|
||||
Construct Result from OpenSync error object. Deletes the OpenSync error
|
||||
object.
|
||||
*/
|
||||
Result( OSyncError **, bool deleteError = true );
|
||||
|
||||
/**
|
||||
Destroys the result.
|
||||
*/
|
||||
~Result();
|
||||
|
||||
/**
|
||||
Sets the name of the result.
|
||||
*/
|
||||
void setName( const TQString &name );
|
||||
|
||||
/**
|
||||
Returns the name of the result.
|
||||
*/
|
||||
TQString name() const;
|
||||
|
||||
/**
|
||||
Sets the message text of the result.
|
||||
*/
|
||||
void setMessage( const TQString &message );
|
||||
|
||||
/**
|
||||
Returns the message text of the result.
|
||||
*/
|
||||
TQString message() const;
|
||||
|
||||
/**
|
||||
Sets the type of the result.
|
||||
*/
|
||||
void setType( Type type );
|
||||
|
||||
/**
|
||||
Returns the type of the result.
|
||||
*/
|
||||
Type type() const;
|
||||
|
||||
/**
|
||||
Reimplemented boolean operator.
|
||||
*/
|
||||
operator bool () const;
|
||||
|
||||
/**
|
||||
Return true, if this Result is an error, return false otherwise.
|
||||
*/
|
||||
bool isError() const;
|
||||
|
||||
private:
|
||||
TQString mName;
|
||||
TQString mMessage;
|
||||
Type mType;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -1,159 +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 <opensync/file.h>
|
||||
#include <opensync/opensync.h>
|
||||
|
||||
#include "syncchange.h"
|
||||
|
||||
using namespace QSync;
|
||||
|
||||
SyncChange::SyncChange()
|
||||
{
|
||||
}
|
||||
|
||||
SyncChange::SyncChange( OSyncChange *change )
|
||||
{
|
||||
mSyncChange = change;
|
||||
}
|
||||
|
||||
SyncChange::~SyncChange()
|
||||
{
|
||||
}
|
||||
|
||||
bool SyncChange::isValid() const
|
||||
{
|
||||
return ( mSyncChange != 0 );
|
||||
}
|
||||
|
||||
void SyncChange::setUid( const TQString &uid )
|
||||
{
|
||||
osync_change_set_uid( mSyncChange, uid.utf8() );
|
||||
}
|
||||
|
||||
TQString SyncChange::uid() const
|
||||
{
|
||||
return TQString::fromUtf8( osync_change_get_uid( mSyncChange ) );
|
||||
}
|
||||
|
||||
void SyncChange::setHash( const TQString &hash )
|
||||
{
|
||||
osync_change_set_hash( mSyncChange, hash.utf8() );
|
||||
}
|
||||
|
||||
TQString SyncChange::hash() const
|
||||
{
|
||||
return TQString::fromUtf8( osync_change_get_hash( mSyncChange ) );
|
||||
}
|
||||
|
||||
void SyncChange::setData( const TQString &data )
|
||||
{
|
||||
osync_change_set_data( mSyncChange, const_cast<char*>( data.utf8().data() ), data.utf8().size(), true );
|
||||
}
|
||||
|
||||
TQString SyncChange::data() const
|
||||
{
|
||||
int size = osync_change_get_datasize( mSyncChange );
|
||||
|
||||
TQString content;
|
||||
if ( objectFormatName() == "file" ) {
|
||||
fileFormat *format = (fileFormat*)osync_change_get_data( mSyncChange );
|
||||
if ( format )
|
||||
content = TQString::fromUtf8( format->data, format->size );
|
||||
} else
|
||||
content = TQString::fromUtf8( osync_change_get_data( mSyncChange ), size );
|
||||
|
||||
return content;
|
||||
}
|
||||
|
||||
bool SyncChange::hasData() const
|
||||
{
|
||||
return osync_change_has_data( mSyncChange );
|
||||
}
|
||||
|
||||
TQString SyncChange::objectFormatName() const
|
||||
{
|
||||
OSyncObjFormat *format = osync_change_get_objformat( mSyncChange );
|
||||
Q_ASSERT( format );
|
||||
|
||||
return TQString::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;
|
||||
break;
|
||||
case UnmodifiedChange:
|
||||
ochangeType = CHANGE_UNMODIFIED;
|
||||
break;
|
||||
case DeletedChange:
|
||||
ochangeType = CHANGE_DELETED;
|
||||
break;
|
||||
case ModifiedChange:
|
||||
ochangeType = CHANGE_MODIFIED;
|
||||
break;
|
||||
case UnknownChange:
|
||||
default:
|
||||
ochangeType = CHANGE_UNKNOWN;
|
||||
break;
|
||||
}
|
||||
|
||||
osync_change_set_changetype( mSyncChange, ochangeType );
|
||||
}
|
||||
|
||||
SyncChange::Type SyncChange::changeType() const
|
||||
{
|
||||
OSyncChangeType ochangeType = osync_change_get_changetype( mSyncChange );
|
||||
|
||||
switch ( ochangeType ) {
|
||||
case CHANGE_ADDED:
|
||||
return AddedChange;
|
||||
break;
|
||||
case CHANGE_UNMODIFIED:
|
||||
return UnmodifiedChange;
|
||||
break;
|
||||
case CHANGE_DELETED:
|
||||
return DeletedChange;
|
||||
break;
|
||||
case CHANGE_MODIFIED:
|
||||
return ModifiedChange;
|
||||
break;
|
||||
case CHANGE_UNKNOWN:
|
||||
default:
|
||||
return UnknownChange;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1,116 +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 TQSYNC_SYNCCHANGE_H
|
||||
#define TQSYNC_SYNCCHANGE_H
|
||||
|
||||
#include <libqopensync/member.h>
|
||||
|
||||
class OSyncChange;
|
||||
|
||||
namespace QSync {
|
||||
|
||||
class SyncChange
|
||||
{
|
||||
friend class SyncMapping;
|
||||
|
||||
public:
|
||||
enum Type
|
||||
{
|
||||
UnknownChange,
|
||||
AddedChange,
|
||||
UnmodifiedChange,
|
||||
DeletedChange,
|
||||
ModifiedChange
|
||||
};
|
||||
|
||||
SyncChange();
|
||||
SyncChange( OSyncChange* );
|
||||
~SyncChange();
|
||||
|
||||
/**
|
||||
Returns whether it's a valid SyncChange.
|
||||
*/
|
||||
bool isValid() const;
|
||||
|
||||
/**
|
||||
Sets the uid of this change.
|
||||
*/
|
||||
void setUid( const TQString &uid );
|
||||
|
||||
/**
|
||||
Returns the uid of this change.
|
||||
*/
|
||||
TQString uid() const;
|
||||
|
||||
/**
|
||||
Sets the hash of this change.
|
||||
*/
|
||||
void setHash( const TQString &hash );
|
||||
|
||||
/**
|
||||
Returns the hash of this change.
|
||||
*/
|
||||
TQString hash() const;
|
||||
|
||||
/**
|
||||
Sets the data provided by the plugin.
|
||||
*/
|
||||
void setData( const TQString &data );
|
||||
|
||||
/**
|
||||
Returns the data provided by the plugin.
|
||||
*/
|
||||
TQString data() const;
|
||||
|
||||
/**
|
||||
Returns whether the change contains data.
|
||||
*/
|
||||
bool hasData() const;
|
||||
|
||||
/**
|
||||
Returns the object format name.
|
||||
*/
|
||||
TQString objectFormatName() const;
|
||||
|
||||
/**
|
||||
Returns the parent member of this change.
|
||||
*/
|
||||
Member member() const;
|
||||
|
||||
/**
|
||||
Sets the change type.
|
||||
*/
|
||||
void setChangeType( Type changeType );
|
||||
|
||||
/**
|
||||
Returns the change type.
|
||||
*/
|
||||
Type changeType() const;
|
||||
|
||||
private:
|
||||
OSyncChange *mSyncChange;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -1,100 +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 <tqstring.h>
|
||||
#include <osengine/engine.h>
|
||||
|
||||
#include "syncmapping.h"
|
||||
|
||||
using namespace QSync;
|
||||
|
||||
SyncMapping::SyncMapping()
|
||||
: mEngine( 0 ), mMapping( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
SyncMapping::SyncMapping( OSyncMapping *mapping, OSyncEngine *engine )
|
||||
: mEngine( engine ), mMapping( mapping )
|
||||
{
|
||||
}
|
||||
|
||||
SyncMapping::~SyncMapping()
|
||||
{
|
||||
}
|
||||
|
||||
bool SyncMapping::isValid() const
|
||||
{
|
||||
return ( mEngine != 0 && mMapping != 0 );
|
||||
}
|
||||
|
||||
long long SyncMapping::id() const
|
||||
{
|
||||
Q_ASSERT( mMapping );
|
||||
|
||||
return osengine_mapping_get_id( mMapping );
|
||||
}
|
||||
|
||||
void SyncMapping::duplicate()
|
||||
{
|
||||
Q_ASSERT( mEngine );
|
||||
Q_ASSERT( mMapping );
|
||||
|
||||
osengine_mapping_duplicate( mEngine, mMapping );
|
||||
}
|
||||
|
||||
void SyncMapping::solve( const SyncChange &change )
|
||||
{
|
||||
Q_ASSERT( mEngine );
|
||||
Q_ASSERT( mMapping );
|
||||
Q_ASSERT( change.isValid() );
|
||||
|
||||
osengine_mapping_solve( mEngine, mMapping, change.mSyncChange );
|
||||
}
|
||||
|
||||
void SyncMapping::ignore()
|
||||
{
|
||||
Q_ASSERT( mEngine );
|
||||
Q_ASSERT( mMapping );
|
||||
|
||||
//TODO: error should be returned as Result
|
||||
OSyncError *error = 0;
|
||||
osengine_mapping_ignore_conflict( mEngine, mMapping, &error );
|
||||
}
|
||||
|
||||
int SyncMapping::changesCount() const
|
||||
{
|
||||
Q_ASSERT( mMapping );
|
||||
|
||||
return osengine_mapping_num_changes( mMapping );
|
||||
}
|
||||
|
||||
SyncChange SyncMapping::changeAt( int pos )
|
||||
{
|
||||
Q_ASSERT( mMapping );
|
||||
|
||||
if ( pos < 0 || pos >= osengine_mapping_num_changes( mMapping ) )
|
||||
return SyncChange();
|
||||
|
||||
OSyncChange *ochange = osengine_mapping_nth_change( mMapping, pos );
|
||||
|
||||
return SyncChange( ochange );
|
||||
}
|
||||
|
@ -1,59 +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 TQSYNC_SYNCMAPPING_H
|
||||
#define TQSYNC_SYNCMAPPING_H
|
||||
|
||||
#include <libqopensync/syncchange.h>
|
||||
|
||||
class OSyncEngine;
|
||||
class OSyncMapping;
|
||||
|
||||
namespace QSync {
|
||||
|
||||
class SyncMapping
|
||||
{
|
||||
friend class SyncMappingUpdate;
|
||||
|
||||
public:
|
||||
SyncMapping();
|
||||
SyncMapping( OSyncMapping*, OSyncEngine* );
|
||||
~SyncMapping();
|
||||
|
||||
bool isValid() const;
|
||||
|
||||
long long id() const;
|
||||
|
||||
void duplicate();
|
||||
void solve( const SyncChange &change );
|
||||
void ignore();
|
||||
|
||||
int changesCount() const;
|
||||
SyncChange changeAt( int pos );
|
||||
|
||||
private:
|
||||
OSyncEngine *mEngine;
|
||||
OSyncMapping *mMapping;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -1,251 +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 <osengine/engine.h>
|
||||
|
||||
#include "syncupdates.h"
|
||||
|
||||
using namespace QSync;
|
||||
|
||||
SyncMemberUpdate::SyncMemberUpdate()
|
||||
{
|
||||
}
|
||||
|
||||
SyncMemberUpdate::SyncMemberUpdate( OSyncMemberUpdate *update )
|
||||
{
|
||||
switch ( update->type ) {
|
||||
case MEMBER_CONNECTED:
|
||||
mType = Connected;
|
||||
break;
|
||||
case MEMBER_SENT_CHANGES:
|
||||
mType = SentChanges;
|
||||
break;
|
||||
case MEMBER_COMMITTED_ALL:
|
||||
mType = CommittedAll;
|
||||
break;
|
||||
case MEMBER_DISCONNECTED:
|
||||
mType = Disconnected;
|
||||
break;
|
||||
case MEMBER_CONNECT_ERROR:
|
||||
mType = ConnectError;
|
||||
break;
|
||||
case MEMBER_GET_CHANGES_ERROR:
|
||||
mType = GetChangesError;
|
||||
break;
|
||||
case MEMBER_COMMITTED_ALL_ERROR:
|
||||
mType = CommittedAllError;
|
||||
break;
|
||||
case MEMBER_SYNC_DONE_ERROR:
|
||||
mType = SyncDoneError;
|
||||
break;
|
||||
case MEMBER_DISCONNECT_ERROR:
|
||||
mType = DisconnectedError;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( update->error )
|
||||
mResult = Result( &(update->error) );
|
||||
|
||||
mMember.mMember = update->member;
|
||||
}
|
||||
|
||||
SyncMemberUpdate::~SyncMemberUpdate()
|
||||
{
|
||||
}
|
||||
|
||||
SyncMemberUpdate::Type SyncMemberUpdate::type() const
|
||||
{
|
||||
return mType;
|
||||
}
|
||||
|
||||
Result SyncMemberUpdate::result() const
|
||||
{
|
||||
return mResult;
|
||||
}
|
||||
|
||||
Member SyncMemberUpdate::member() const
|
||||
{
|
||||
return mMember;
|
||||
}
|
||||
|
||||
|
||||
SyncChangeUpdate::SyncChangeUpdate()
|
||||
{
|
||||
}
|
||||
|
||||
SyncChangeUpdate::SyncChangeUpdate( OSyncChangeUpdate *update )
|
||||
{
|
||||
switch ( update->type ) {
|
||||
case CHANGE_RECEIVED:
|
||||
mType = Received;
|
||||
break;
|
||||
case CHANGE_RECEIVED_INFO:
|
||||
mType = ReceivedInfo;
|
||||
break;
|
||||
case CHANGE_SENT:
|
||||
mType = Sent;
|
||||
break;
|
||||
case CHANGE_WRITE_ERROR:
|
||||
mType = WriteError;
|
||||
break;
|
||||
case CHANGE_RECV_ERROR:
|
||||
mType = ReceiveError;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( update->error )
|
||||
mResult = Result( &(update->error) );
|
||||
|
||||
mChange = SyncChange( update->change );
|
||||
mMemberId = update->member_id;
|
||||
mMappingId = update->mapping_id;
|
||||
}
|
||||
|
||||
SyncChangeUpdate::~SyncChangeUpdate()
|
||||
{
|
||||
}
|
||||
|
||||
SyncChangeUpdate::Type SyncChangeUpdate::type() const
|
||||
{
|
||||
return mType;
|
||||
}
|
||||
|
||||
Result SyncChangeUpdate::result() const
|
||||
{
|
||||
return mResult;
|
||||
}
|
||||
|
||||
SyncChange SyncChangeUpdate::change() const
|
||||
{
|
||||
return mChange;
|
||||
}
|
||||
|
||||
int SyncChangeUpdate::memberId() const
|
||||
{
|
||||
return mMemberId;
|
||||
}
|
||||
|
||||
int SyncChangeUpdate::mappingId() const
|
||||
{
|
||||
return mMappingId;
|
||||
}
|
||||
|
||||
SyncMappingUpdate::SyncMappingUpdate()
|
||||
{
|
||||
}
|
||||
|
||||
SyncMappingUpdate::SyncMappingUpdate( OSyncMappingUpdate *update, OSyncEngine *engine )
|
||||
{
|
||||
switch ( update->type ) {
|
||||
case MAPPING_SOLVED:
|
||||
mType = Solved;
|
||||
break;
|
||||
case MAPPING_SYNCED:
|
||||
mType = Synced;
|
||||
break;
|
||||
case MAPPING_WRITE_ERROR:
|
||||
mType = WriteError;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( update->error )
|
||||
mResult = Result( &(update->error) );
|
||||
|
||||
mWinner = update->winner;
|
||||
mMapping.mEngine = engine;
|
||||
mMapping.mMapping = update->mapping;
|
||||
}
|
||||
|
||||
SyncMappingUpdate::~SyncMappingUpdate()
|
||||
{
|
||||
}
|
||||
|
||||
SyncMappingUpdate::Type SyncMappingUpdate::type() const
|
||||
{
|
||||
return mType;
|
||||
}
|
||||
|
||||
Result SyncMappingUpdate::result() const
|
||||
{
|
||||
return mResult;
|
||||
}
|
||||
|
||||
long long int SyncMappingUpdate::winner() const
|
||||
{
|
||||
return mWinner;
|
||||
}
|
||||
|
||||
SyncMapping SyncMappingUpdate::mapping() const
|
||||
{
|
||||
return mMapping;
|
||||
}
|
||||
|
||||
SyncEngineUpdate::SyncEngineUpdate()
|
||||
{
|
||||
}
|
||||
|
||||
SyncEngineUpdate::SyncEngineUpdate( OSyncEngineUpdate *update )
|
||||
{
|
||||
switch ( update->type ) {
|
||||
case ENG_ENDPHASE_CON:
|
||||
mType = EndPhaseConnected;
|
||||
break;
|
||||
case ENG_ENDPHASE_READ:
|
||||
mType = EndPhaseRead;
|
||||
break;
|
||||
case ENG_ENDPHASE_WRITE:
|
||||
mType = EndPhaseWrite;
|
||||
break;
|
||||
case ENG_ENDPHASE_DISCON:
|
||||
mType = EndPhaseDisconnected;
|
||||
break;
|
||||
case ENG_ERROR:
|
||||
mType = Error;
|
||||
break;
|
||||
case ENG_SYNC_SUCCESSFULL:
|
||||
mType = SyncSuccessfull;
|
||||
break;
|
||||
case ENG_PREV_UNCLEAN:
|
||||
mType = PrevUnclean;
|
||||
break;
|
||||
case ENG_END_CONFLICTS:
|
||||
mType = EndConflicts;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( update->error )
|
||||
mResult = Result( &(update->error) );
|
||||
}
|
||||
|
||||
SyncEngineUpdate::~SyncEngineUpdate()
|
||||
{
|
||||
}
|
||||
|
||||
SyncEngineUpdate::Type SyncEngineUpdate::type() const
|
||||
{
|
||||
return mType;
|
||||
}
|
||||
|
||||
Result SyncEngineUpdate::result() const
|
||||
{
|
||||
return mResult;
|
||||
}
|
||||
|
@ -1,157 +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 TQSYNC_SYNCUPDATES_H
|
||||
#define TQSYNC_SYNCUPDATES_H
|
||||
|
||||
#include <libqopensync/member.h>
|
||||
#include <libqopensync/result.h>
|
||||
#include <libqopensync/syncchange.h>
|
||||
#include <libqopensync/syncmapping.h>
|
||||
|
||||
class OSyncMemberUpdate;
|
||||
class OSyncChangeUpdate;
|
||||
class OSyncMappingUpdate;
|
||||
class OSyncEngineUpdate;
|
||||
class OSyncMemberUpdate;
|
||||
|
||||
namespace QSync {
|
||||
|
||||
class SyncMemberUpdate
|
||||
{
|
||||
friend class CallbackHandler;
|
||||
|
||||
public:
|
||||
enum Type {
|
||||
Connected,
|
||||
SentChanges,
|
||||
CommittedAll,
|
||||
Disconnected,
|
||||
ConnectError,
|
||||
GetChangesError,
|
||||
CommittedAllError,
|
||||
SyncDoneError,
|
||||
DisconnectedError
|
||||
};
|
||||
|
||||
SyncMemberUpdate();
|
||||
SyncMemberUpdate( OSyncMemberUpdate* );
|
||||
~SyncMemberUpdate();
|
||||
|
||||
Type type() const;
|
||||
Result result() const;
|
||||
Member member() const;
|
||||
|
||||
private:
|
||||
Type mType;
|
||||
Result mResult;
|
||||
Member mMember;
|
||||
};
|
||||
|
||||
class SyncChangeUpdate
|
||||
{
|
||||
friend class CallbackHandler;
|
||||
|
||||
public:
|
||||
enum Type {
|
||||
Received = 1,
|
||||
ReceivedInfo,
|
||||
Sent,
|
||||
WriteError,
|
||||
ReceiveError
|
||||
};
|
||||
|
||||
SyncChangeUpdate();
|
||||
SyncChangeUpdate( OSyncChangeUpdate* );
|
||||
~SyncChangeUpdate();
|
||||
|
||||
Type type() const;
|
||||
Result result() const;
|
||||
SyncChange change() const;
|
||||
int memberId() const;
|
||||
int mappingId() const;
|
||||
|
||||
private:
|
||||
Type mType;
|
||||
Result mResult;
|
||||
SyncChange mChange;
|
||||
int mMemberId;
|
||||
int mMappingId;
|
||||
};
|
||||
|
||||
class SyncMappingUpdate
|
||||
{
|
||||
friend class CallbackHandler;
|
||||
|
||||
public:
|
||||
enum Type {
|
||||
Solved = 1,
|
||||
Synced,
|
||||
WriteError
|
||||
};
|
||||
|
||||
SyncMappingUpdate();
|
||||
SyncMappingUpdate( OSyncMappingUpdate*, OSyncEngine* );
|
||||
~SyncMappingUpdate();
|
||||
|
||||
Type type() const;
|
||||
Result result() const;
|
||||
long long int winner() const;
|
||||
SyncMapping mapping() const;
|
||||
|
||||
private:
|
||||
Type mType;
|
||||
Result mResult;
|
||||
long long int mWinner;
|
||||
SyncMapping mMapping;
|
||||
};
|
||||
|
||||
class SyncEngineUpdate
|
||||
{
|
||||
friend class CallbackHandler;
|
||||
|
||||
public:
|
||||
enum Type {
|
||||
EndPhaseConnected = 1,
|
||||
EndPhaseRead,
|
||||
EndPhaseWrite,
|
||||
EndPhaseDisconnected,
|
||||
Error,
|
||||
SyncSuccessfull,
|
||||
PrevUnclean,
|
||||
EndConflicts
|
||||
};
|
||||
|
||||
SyncEngineUpdate();
|
||||
SyncEngineUpdate( OSyncEngineUpdate* );
|
||||
~SyncEngineUpdate();
|
||||
|
||||
Type type() const;
|
||||
Result result() const;
|
||||
|
||||
private:
|
||||
Type mType;
|
||||
Result mResult;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -1,10 +0,0 @@
|
||||
INCLUDES = -I/usr/local/include/dbus-1.0/qt3 $(all_includes) \
|
||||
-I$(top_srcdir)/kitchensync
|
||||
|
||||
bin_PROGRAMS = opensyncdbus
|
||||
|
||||
opensyncdbus_SOURCES = dbusclient.cpp
|
||||
opensyncdbus_LDADD = $(top_builddir)/kitchensync/libqopensync/libqopensync.la
|
||||
opensyncdbus_LDFLAGS = -ldbus-1-qt3 -ldbus-1 $(all_libraries) $(KDE_RPATH)
|
||||
|
||||
METASOURCES = AUTO
|
@ -1,5 +0,0 @@
|
||||
This directory contains opensyncdbus, a D-BUS frontend for OpenSync. It's a
|
||||
daemon which provides a D-BUS interface for controlling OpenSync.
|
||||
|
||||
To compile opensyncdbus you need the Qt3 bindings for D-BUS.
|
||||
They are in SVN under branches/work/dbus-qt4-qt3backport/
|
@ -1,273 +0,0 @@
|
||||
/*
|
||||
This file is part of KDE.
|
||||
|
||||
Copyright (c) 2006 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "dbusclient.h"
|
||||
|
||||
#include <libqopensync/environment.h>
|
||||
#include <libqopensync/group.h>
|
||||
|
||||
#include <dbus/qdbuserror.h>
|
||||
#include <dbus/qdbusconnection.h>
|
||||
#include <dbus/qdbusmessage.h>
|
||||
#include <dbus/qdbusproxy.h>
|
||||
|
||||
#include <tqapplication.h>
|
||||
#include <tqtimer.h>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
OpenSyncService::OpenSyncService()
|
||||
: mConnection( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
void OpenSyncService::setConnection( TQDBusConnection *connection )
|
||||
{
|
||||
mConnection = connection;
|
||||
mConnection->registerObject( "/ABC", this );
|
||||
}
|
||||
|
||||
bool OpenSyncService::handleMethodCall( const TQDBusMessage &message )
|
||||
{
|
||||
tqDebug( "OpenSyncService::handleMethodCall()" );
|
||||
|
||||
tqDebug( " Interface: %s", message.interface().latin1() );
|
||||
tqDebug( " Path: %s", message.path().latin1() );
|
||||
tqDebug( " Member: %s", message.member().latin1() );
|
||||
tqDebug( " Sender: %s", message.sender().latin1() );
|
||||
|
||||
if ( message.interface() != "org.opensync.SyncEngine" ) return false;
|
||||
|
||||
TQDBusMessage reply;
|
||||
|
||||
TQString function = message.member();
|
||||
if ( function == "hello" ) {
|
||||
reply = hello( message );
|
||||
} else if ( function == "randomNumber" ) {
|
||||
reply = randomNumber( message );
|
||||
} else if ( function == "listGroups" ) {
|
||||
reply = listGroups( message );
|
||||
} else if ( function == "listPlugins" ) {
|
||||
reply = listPlugins( message );
|
||||
} else if ( function == "showGroup" ) {
|
||||
reply = showGroup( message );
|
||||
} else if ( function == "showMember" ) {
|
||||
reply = showMember( message );
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
mConnection->send( reply );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
TQDBusMessage OpenSyncService::showMember( const TQDBusMessage &message )
|
||||
{
|
||||
if ( message.count() != 2 ) {
|
||||
return error( message, "arg_count",
|
||||
TQString("Wrong number of arguments. Expected 2, got %1.")
|
||||
.arg( message.count() ) );
|
||||
}
|
||||
|
||||
TQString groupName = message[ 0 ].toString();
|
||||
if ( groupName.isEmpty() ) {
|
||||
return error( message, "missing_arg", "Missing argument: group name." );
|
||||
}
|
||||
|
||||
bool ok;
|
||||
int memberId = message[ 1 ].toInt( &ok );
|
||||
if ( !ok ) {
|
||||
return error( message, "missing_arg", "Missing argument: member id." );
|
||||
}
|
||||
|
||||
TQDBusMessage reply;
|
||||
|
||||
QSync::Environment env;
|
||||
QSync::Result result = env.initialize();
|
||||
if ( result.isError() ) {
|
||||
return error( message, result.name(), result.message() );
|
||||
} else {
|
||||
reply = TQDBusMessage::methodReply( message );
|
||||
|
||||
QSync::Group group = env.groupByName( groupName );
|
||||
if ( !group.isValid() ) {
|
||||
return error( message, "group_name", TQString("Unknown group '%1'.")
|
||||
.arg( groupName ) );
|
||||
}
|
||||
|
||||
QSync::Member member = group.memberById( memberId );
|
||||
if ( !member.isValid() ) {
|
||||
return error( message, "member_id",
|
||||
TQString("Unknown member id '%1' in group '%2'.").arg( groupName )
|
||||
.arg( memberId ) );
|
||||
}
|
||||
|
||||
reply.append( memberId );
|
||||
reply.append( member.pluginName() );
|
||||
|
||||
env.finalize();
|
||||
}
|
||||
|
||||
return reply;
|
||||
}
|
||||
|
||||
|
||||
TQDBusMessage OpenSyncService::showGroup( const TQDBusMessage &message )
|
||||
{
|
||||
if ( message.count() != 1 ) {
|
||||
return error( message, "arg_count",
|
||||
TQString("Wrong number of arguments. Expected 1, got %1")
|
||||
.arg( message.count() ) );
|
||||
}
|
||||
|
||||
TQString groupName = message[ 0 ].toString();
|
||||
if ( groupName.isEmpty() ) {
|
||||
return error( message, "missing_arg", "Missing argument group name." );
|
||||
}
|
||||
|
||||
TQDBusMessage reply;
|
||||
|
||||
QSync::Environment env;
|
||||
QSync::Result result = env.initialize();
|
||||
if ( result.isError() ) {
|
||||
return error( message, result.name(), result.message() );
|
||||
} else {
|
||||
reply = TQDBusMessage::methodReply( message );
|
||||
|
||||
QSync::Group group = env.groupByName( groupName );
|
||||
if ( !group.isValid() ) {
|
||||
return error( message, "group_name", TQString("Unknown group '%1'")
|
||||
.arg( groupName ) );
|
||||
}
|
||||
|
||||
QSync::Group::Iterator it( &group );
|
||||
for( it = group.begin(); it != group.end(); ++it ) {
|
||||
QSync::Member member = *it;
|
||||
reply.append( TQVariant( member.id() ) );
|
||||
}
|
||||
|
||||
env.finalize();
|
||||
}
|
||||
|
||||
return reply;
|
||||
}
|
||||
|
||||
TQDBusMessage OpenSyncService::error( const TQDBusMessage &message,
|
||||
const TQString &errorCode,
|
||||
const TQString &errorMessage )
|
||||
{
|
||||
TQDBusError error( "org.opensync." + errorCode, errorMessage );
|
||||
return TQDBusMessage::methodError( message, error );
|
||||
}
|
||||
|
||||
TQDBusMessage OpenSyncService::listPlugins( const TQDBusMessage &message )
|
||||
{
|
||||
TQDBusMessage reply;
|
||||
|
||||
QSync::Environment env;
|
||||
QSync::Result result = env.initialize();
|
||||
if ( result.isError() ) {
|
||||
TQDBusError error( result.name(), result.message() );
|
||||
reply = TQDBusMessage::methodError( message, error );
|
||||
} else {
|
||||
reply = TQDBusMessage::methodReply( message );
|
||||
|
||||
QSync::Environment::PluginIterator it( env.pluginBegin() );
|
||||
for ( ; it != env.pluginEnd(); ++it ) {
|
||||
reply.append( TQVariant( (*it).name() ) );
|
||||
}
|
||||
|
||||
env.finalize();
|
||||
}
|
||||
|
||||
return reply;
|
||||
}
|
||||
|
||||
TQDBusMessage OpenSyncService::listGroups( const TQDBusMessage &message )
|
||||
{
|
||||
TQDBusMessage reply;
|
||||
|
||||
QSync::Environment env;
|
||||
QSync::Result result = env.initialize();
|
||||
if ( result.isError() ) {
|
||||
TQDBusError error( result.name(), result.message() );
|
||||
reply = TQDBusMessage::methodError( message, error );
|
||||
} else {
|
||||
reply = TQDBusMessage::methodReply( message );
|
||||
|
||||
QSync::Environment::GroupIterator it( env.groupBegin() );
|
||||
for ( ; it != env.groupEnd(); ++it ) {
|
||||
reply.append( TQVariant( (*it).name() ) );
|
||||
}
|
||||
|
||||
env.finalize();
|
||||
}
|
||||
|
||||
return reply;
|
||||
}
|
||||
|
||||
TQDBusMessage OpenSyncService::hello( const TQDBusMessage &message )
|
||||
{
|
||||
TQDBusMessage reply = TQDBusMessage::methodReply( message );
|
||||
|
||||
// TQDBusError error;
|
||||
// reply = TQDBusMessage::methodError( message, error );
|
||||
|
||||
reply.append( TQVariant( TQString( "Hello!" ) ) );
|
||||
|
||||
return reply;
|
||||
}
|
||||
|
||||
TQDBusMessage OpenSyncService::randomNumber( const TQDBusMessage &message )
|
||||
{
|
||||
TQDBusMessage reply = TQDBusMessage::methodReply( message );
|
||||
|
||||
int number = rand();
|
||||
|
||||
reply.append( TQVariant( number ) );
|
||||
|
||||
return reply;
|
||||
}
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
TQApplication app(argc, argv);
|
||||
|
||||
std::cout << "Hello" << std::endl;
|
||||
|
||||
TQDBusConnection connection = TQDBusConnection::addConnection(
|
||||
TQDBusConnection::SessionBus );
|
||||
|
||||
if ( !connection.isConnected() ) {
|
||||
tqFatal("Cannot connect to session bus");
|
||||
}
|
||||
|
||||
connection.requestName( "org.opensync.SyncEngine",
|
||||
TQDBusConnection::NoReplace );
|
||||
|
||||
OpenSyncService service;
|
||||
service.setConnection( &connection );
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
|
||||
//#include "dbusclient.moc"
|
@ -1,56 +0,0 @@
|
||||
/*
|
||||
This file is part of KDE.
|
||||
|
||||
Copyright (c) 2006 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
#ifndef DBUSCLIENT_H
|
||||
#define DBUSCLIENT_H
|
||||
|
||||
#include <tqobject.h>
|
||||
|
||||
#include <dbus/qdbusobject.h>
|
||||
|
||||
class TQDBusMessage;
|
||||
class TQDBusConnection;
|
||||
|
||||
class OpenSyncService : public TQDBusObjectBase
|
||||
{
|
||||
public:
|
||||
OpenSyncService();
|
||||
|
||||
void setConnection( TQDBusConnection *connection );
|
||||
|
||||
protected:
|
||||
virtual bool handleMethodCall( const TQDBusMessage &message );
|
||||
|
||||
TQDBusMessage hello( const TQDBusMessage & );
|
||||
TQDBusMessage randomNumber( const TQDBusMessage & );
|
||||
|
||||
TQDBusMessage listGroups( const TQDBusMessage &message );
|
||||
TQDBusMessage listPlugins( const TQDBusMessage &message );
|
||||
TQDBusMessage showGroup( const TQDBusMessage &message );
|
||||
TQDBusMessage showMember( const TQDBusMessage &message );
|
||||
|
||||
TQDBusMessage error( const TQDBusMessage &, const TQString &errorCode,
|
||||
const TQString &errorMessage );
|
||||
|
||||
private:
|
||||
TQDBusConnection *mConnection;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,9 +0,0 @@
|
||||
##### create translation templates ##############
|
||||
|
||||
tde_l10n_create_template( "kitchensync" )
|
||||
|
||||
tde_l10n_create_template(
|
||||
CATALOG "desktop_files/kitchensync.desktop/"
|
||||
SOURCES kitchensync.desktop
|
||||
DESTINATION "${CMAKE_SOURCE_DIR}/translations"
|
||||
)
|
@ -1,77 +0,0 @@
|
||||
#################################################
|
||||
#
|
||||
# (C) 2010-2011 Serghei Amelian
|
||||
# serghei (DOT) amelian (AT) gmail.com
|
||||
#
|
||||
# Improvements and feedback are welcome
|
||||
#
|
||||
# This file is released under GPL >= 2
|
||||
#
|
||||
#################################################
|
||||
|
||||
tde_import( libkmime )
|
||||
tde_import( ktnef )
|
||||
tde_import( libkcal )
|
||||
tde_import( libtdepim )
|
||||
|
||||
add_subdirectory( about )
|
||||
add_subdirectory( pics )
|
||||
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/..
|
||||
${CMAKE_SOURCE_DIR}
|
||||
${CMAKE_SOURCE_DIR}/libtdepim
|
||||
${TDE_INCLUDE_DIR}
|
||||
${TQT_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
link_directories(
|
||||
${TQT_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
|
||||
##### other data ################################
|
||||
|
||||
tde_create_translated_desktop( kitchensync.desktop )
|
||||
install( FILES kitchensyncui.rc kitchensync_part.rc DESTINATION ${DATA_INSTALL_DIR}/kitchensync )
|
||||
|
||||
|
||||
##### libkitchensyncpart (module) ###############
|
||||
|
||||
tde_add_kpart( libkitchensyncpart AUTOMOC
|
||||
SOURCES part.cpp
|
||||
LINK kitchensync-shared
|
||||
DESTINATION ${PLUGIN_INSTALL_DIR}
|
||||
)
|
||||
|
||||
##### kitchensync (executable) ##################
|
||||
|
||||
tde_add_executable( kitchensync AUTOMOC
|
||||
SOURCES main.cpp mainwindow.cpp
|
||||
LINK kitchensync-shared
|
||||
DESTINATION ${BIN_INSTALL_DIR}
|
||||
)
|
||||
|
||||
|
||||
##### kitchensync (shared) ######################
|
||||
|
||||
tde_add_library( kitchensync SHARED AUTOMOC
|
||||
SOURCES
|
||||
aboutpage.cpp mainwidget.cpp groupconfigdialog.cpp 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 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 configguisunbird.cpp
|
||||
VERSION 0.0.0
|
||||
LINK qopensync-shared tdepim-shared tdehtml-shared
|
||||
DESTINATION ${LIB_INSTALL_DIR}
|
||||
)
|
@ -1,53 +0,0 @@
|
||||
SUBDIRS = about pics
|
||||
|
||||
INCLUDES = -I$(top_srcdir)/kitchensync/src \
|
||||
-I$(top_srcdir)/kitchensync \
|
||||
-I$(top_srcdir)/libtdepim \
|
||||
-I$(top_srcdir) \
|
||||
$(all_includes)
|
||||
|
||||
# Application
|
||||
bin_PROGRAMS = kitchensync
|
||||
|
||||
kitchensync_SOURCES = main.cpp mainwindow.cpp
|
||||
kitchensync_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_TQT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_TDEIO) -ltdetexteditor
|
||||
kitchensync_LDADD = libkitchensync.la
|
||||
|
||||
xdg_apps_DATA = kitchensync.desktop
|
||||
|
||||
# Library
|
||||
lib_LTLIBRARIES = libkitchensync.la
|
||||
|
||||
libkitchensync_la_SOURCES = aboutpage.cpp mainwidget.cpp groupconfigdialog.cpp \
|
||||
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 \
|
||||
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 \
|
||||
configguisunbird.cpp
|
||||
libkitchensync_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) -no-undefined
|
||||
libkitchensync_la_LIBADD = $(LIB_TDEIO) $(LIB_TDEHTML) $(top_builddir)/kitchensync/libqopensync/libqopensync.la \
|
||||
$(LIB_TDEABC) $(top_builddir)/libtdepim/libtdepim.la $(top_builddir)/libkcal/libkcal.la \
|
||||
$(LIB_TQT)
|
||||
|
||||
# KPart
|
||||
kde_module_LTLIBRARIES = libkitchensyncpart.la
|
||||
|
||||
libkitchensyncpart_la_SOURCES = part.cpp
|
||||
libkitchensyncpart_la_LDFLAGS = -module $(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) -no-undefined
|
||||
libkitchensyncpart_la_LIBADD = $(LIB_TDEPARTS) libkitchensync.la $(LIB_TQT) $(LIB_TDEIO) $(LIB_TDEHTML) $(LIB_TDEABC) $(LIB_TDECORE) $(LIB_TDEUI)
|
||||
|
||||
# Resources
|
||||
kitchensyncdatadir = $(kde_datadir)/kitchensync
|
||||
kitchensyncdata_DATA = kitchensyncui.rc kitchensync_part.rc
|
||||
|
||||
METASOURCES = AUTO
|
||||
|
||||
messages: rc.cpp
|
||||
$(XGETTEXT) *.cpp *.h -o $(podir)/kitchensync.pot
|
@ -1,14 +0,0 @@
|
||||
#################################################
|
||||
#
|
||||
# (C) 2010-2011 Serghei Amelian
|
||||
# serghei (DOT) amelian (AT) gmail.com
|
||||
#
|
||||
# Improvements and feedback are welcome
|
||||
#
|
||||
# This file is released under GPL >= 2
|
||||
#
|
||||
#################################################
|
||||
|
||||
install( FILES
|
||||
top-right-kitchensync.png main.html kitchensync.css
|
||||
DESTINATION ${DATA_INSTALL_DIR}/kitchensync/about )
|
@ -1,6 +0,0 @@
|
||||
about_DATA = \
|
||||
top-right-kitchensync.png \
|
||||
main.html \
|
||||
kitchensync.css
|
||||
|
||||
aboutdir = $(kde_datadir)/kitchensync/about
|
@ -1,27 +0,0 @@
|
||||
|
||||
#headerR {
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
width: 430px;
|
||||
height: 131px;
|
||||
background-image: url(top-right-kontact.png);
|
||||
}
|
||||
|
||||
#title {
|
||||
right: 125px;
|
||||
}
|
||||
|
||||
#tagline {
|
||||
right: 125px;
|
||||
}
|
||||
|
||||
#boxCenter {
|
||||
background-image: url(box-center-kontact.png);
|
||||
background-repeat: no-repeat;
|
||||
background-color: #dfe7f3;
|
||||
background-position: bottom right;
|
||||
}
|
||||
|
||||
#subtext {
|
||||
font-style: italic;
|
||||
}
|
@ -1,65 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta name="generator" content=
|
||||
"HTML Tidy for Linux/x86 (vers 1st August 2004), see www.w3.org" />
|
||||
|
||||
<style type="text/css">
|
||||
/*<![CDATA[*/
|
||||
@import "%1"; /* kde_infopage.css */
|
||||
%1 /* maybe @import "kde_infopage_rtl.css"; */
|
||||
@import "kitchensync.css";
|
||||
body {font-size: %1px;}
|
||||
/*]]>*/
|
||||
</style>
|
||||
|
||||
<title>KitchenSync</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="header">
|
||||
<div id="headerL"/>
|
||||
<div id="headerR"/>
|
||||
|
||||
<div id="title">
|
||||
%2 <!-- KitchenSync -->
|
||||
</div>
|
||||
|
||||
<div id="tagline">
|
||||
%3 <!-- Catchphrase -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- the bar -->
|
||||
<div id="bar">
|
||||
<div id="barT"><div id="barTL"/><div id="barTR"/><div id="barTC"/></div>
|
||||
<div id="barL">
|
||||
<div id="barR">
|
||||
<div id="barCenter" class="bar_text">
|
||||
%4<!-- KitchenSync is ... -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="barB"><div id="barBL"/><div id="barBR"/><div id="barBC"/></div>
|
||||
</div>
|
||||
|
||||
<!-- the main text box -->
|
||||
<div id="box">
|
||||
<div id="boxT"><div id="boxTL"/><div id="boxTR"/><div id="boxTC"/></div>
|
||||
<div id="boxL">
|
||||
<div id="boxR">
|
||||
<div id="boxCenter">
|
||||
<!--Welcome to KitchenSync-->
|
||||
%5
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="boxB"><div id="boxBL"/><div id="boxBR"/><div id="boxBC"/></div>
|
||||
</div>
|
||||
|
||||
<div id="footer"><div id="footerL"/><div id="footerR"/></div>
|
||||
</body>
|
||||
</html>
|
Before Width: | Height: | Size: 17 KiB |
@ -1,141 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <tqfile.h>
|
||||
#include <tqlayout.h>
|
||||
|
||||
#include <tdeaboutdata.h>
|
||||
#include <tdeapplication.h>
|
||||
#include <kdebug.h>
|
||||
#include <tdehtml_part.h>
|
||||
#include <tdehtmlview.h>
|
||||
#include <kiconloader.h>
|
||||
#include <tdelocale.h>
|
||||
#include <krun.h>
|
||||
#include <kstandarddirs.h>
|
||||
|
||||
#include "aboutpage.h"
|
||||
|
||||
static TQString readFile( const TQString &fileName )
|
||||
{
|
||||
TQFile file( fileName );
|
||||
if ( !file.open( IO_ReadOnly ) ) {
|
||||
kdDebug() << "Unable to open file '" << fileName << "'" << endl;
|
||||
return TQCString();
|
||||
}
|
||||
|
||||
TQString content = TQString::fromUtf8( file.readAll() );
|
||||
|
||||
file.close();
|
||||
|
||||
return content;
|
||||
}
|
||||
|
||||
AboutPage::AboutPage( TQWidget *parent )
|
||||
: TQWidget( parent, "AboutPage" )
|
||||
{
|
||||
TQVBoxLayout *layout = new TQVBoxLayout( this );
|
||||
|
||||
TQString location = locate( "data", "kitchensync/about/main.html" );
|
||||
TQString content = readFile( location );
|
||||
content = content.arg( locate( "data", "libtdepim/about/kde_infopage.css" ) );
|
||||
if ( kapp->reverseLayout() )
|
||||
content = content.arg( "@import \"%1\";" ).arg( locate( "data", "libtdepim/about/kde_infopage_rtl.css" ) );
|
||||
else
|
||||
content = content.arg( "" );
|
||||
|
||||
TDEHTMLPart *part = new TDEHTMLPart( this );
|
||||
layout->addWidget( part->view() );
|
||||
|
||||
part->begin( KURL( location ) );
|
||||
|
||||
TQString appName( i18n( "TDE KitchenSync" ) );
|
||||
TQString catchPhrase( i18n( "Get Synchronized!" ) );
|
||||
TQString quickDescription( i18n( "The TDE Synchronization Tool" ) );
|
||||
|
||||
part->write( content.arg( TQFont().pointSize() + 2 ).arg( appName )
|
||||
.arg( catchPhrase ).arg( quickDescription ).arg( htmlText() ) );
|
||||
part->end();
|
||||
|
||||
connect( part->browserExtension(),
|
||||
TQT_SIGNAL( openURLRequest( const KURL&, const KParts::URLArgs& ) ),
|
||||
TQT_SLOT( handleUrl( const KURL& ) ) );
|
||||
|
||||
connect( part->browserExtension(),
|
||||
TQT_SIGNAL( createNewWindow( const KURL&, const KParts::URLArgs& ) ),
|
||||
TQT_SLOT( handleUrl( const KURL& ) ) );
|
||||
}
|
||||
|
||||
void AboutPage::handleUrl( const KURL &url )
|
||||
{
|
||||
if ( url.protocol() == "exec" ) {
|
||||
if ( url.path() == "/addGroup" )
|
||||
emit addGroup();
|
||||
} else
|
||||
new KRun( url, this );
|
||||
}
|
||||
|
||||
TQString AboutPage::htmlText() const
|
||||
{
|
||||
TDEIconLoader *iconloader = TDEGlobal::iconLoader();
|
||||
int iconSize = iconloader->currentSize( TDEIcon::Desktop );
|
||||
|
||||
TQString handbook_icon_path = iconloader->iconPath( "contents2", TDEIcon::Desktop );
|
||||
TQString html_icon_path = iconloader->iconPath( "text-html", TDEIcon::Desktop );
|
||||
TQString wizard_icon_path = iconloader->iconPath( "wizard", TDEIcon::Desktop );
|
||||
|
||||
TQString info = i18n( "<h2 style='text-align:center; margin-top: 0px;'>Welcome to KitchenSync %1</h2>"
|
||||
"<p>%1</p>"
|
||||
"<table align=\"center\">"
|
||||
"<tr><td><a href=\"%1\"><img width=\"%1\" height=\"%1\" src=\"%1\" /></a></td>"
|
||||
"<td><a href=\"%1\">%1</a><br><span id=\"subtext\"><nobr>%1</td></tr>"
|
||||
"<tr><td><a href=\"%1\"><img width=\"%1\" height=\"%1\" src=\"%1\" /></a></td>"
|
||||
"<td><a href=\"%1\">%1</a><br><span id=\"subtext\"><nobr>%1</td></tr>"
|
||||
"<tr><td><a href=\"%1\"><img width=\"%1\" height=\"%1\" src=\"%1\" /></a></td>"
|
||||
"<td><a href=\"%1\">%1</a><br><span id=\"subtext\"><nobr>%1</td></tr>"
|
||||
"</table>" )
|
||||
.arg( kapp->aboutData()->version() )
|
||||
.arg( i18n( "KitchenSync synchronizes your e-mail, addressbook, calendar, to-do list and more." ) )
|
||||
.arg( "help:/kitchensync" )
|
||||
.arg( iconSize )
|
||||
.arg( iconSize )
|
||||
.arg( handbook_icon_path )
|
||||
.arg( "help:/kitchensync" )
|
||||
.arg( i18n( "Read Manual" ) )
|
||||
.arg( i18n( "Learn more about KitchenSync and its components" ) )
|
||||
.arg( "http://pim.kde.org" )
|
||||
.arg( iconSize )
|
||||
.arg( iconSize )
|
||||
.arg( html_icon_path )
|
||||
.arg( "http://pim.kde.org" )
|
||||
.arg( i18n( "Visit KitchenSync Website" ) )
|
||||
.arg( i18n( "Access online resources and tutorials" ) )
|
||||
.arg( "exec:/addGroup" )
|
||||
.arg( iconSize )
|
||||
.arg( iconSize )
|
||||
.arg( wizard_icon_path )
|
||||
.arg( "exec:/addGroup" )
|
||||
.arg( i18n( "Add Synchronization Group" ) )
|
||||
.arg( i18n( "Create group of devices for synchronization" ) );
|
||||
|
||||
return info;
|
||||
}
|
||||
|
||||
#include "aboutpage.moc"
|
@ -1,46 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef ABOUTPAGE_H
|
||||
#define ABOUTPAGE_H
|
||||
|
||||
#include <kurl.h>
|
||||
|
||||
#include <tqwidget.h>
|
||||
|
||||
class AboutPage : public TQWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
AboutPage( TQWidget *parent );
|
||||
|
||||
signals:
|
||||
void addGroup();
|
||||
|
||||
private slots:
|
||||
void handleUrl( const KURL& );
|
||||
|
||||
private:
|
||||
TQString htmlText() const;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,157 +0,0 @@
|
||||
/*
|
||||
This file is part of libtdepim.
|
||||
|
||||
Copyright (c) 2004 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 <tdeabc/vcardconverter.h>
|
||||
|
||||
#include "addresseediffalgo.h"
|
||||
|
||||
using namespace KSync;
|
||||
|
||||
static bool compareString( const TQString &left, const TQString &right )
|
||||
{
|
||||
if ( left.isEmpty() && right.isEmpty() )
|
||||
return true;
|
||||
else
|
||||
return left == right;
|
||||
}
|
||||
|
||||
AddresseeDiffAlgo::AddresseeDiffAlgo( const TDEABC::Addressee &leftAddressee,
|
||||
const TDEABC::Addressee &rightAddressee )
|
||||
: mLeftAddressee( leftAddressee ), mRightAddressee( rightAddressee )
|
||||
{
|
||||
}
|
||||
|
||||
AddresseeDiffAlgo::AddresseeDiffAlgo( const TQString &leftAddressee,
|
||||
const TQString &rightAddressee )
|
||||
{
|
||||
TDEABC::VCardConverter converter;
|
||||
|
||||
mLeftAddressee = converter.parseVCard( leftAddressee );
|
||||
mRightAddressee = converter.parseVCard( rightAddressee );
|
||||
}
|
||||
|
||||
void AddresseeDiffAlgo::run()
|
||||
{
|
||||
begin();
|
||||
|
||||
if ( !compareString( mLeftAddressee.uid(), mRightAddressee.uid() ) )
|
||||
conflictField( TDEABC::Addressee::uidLabel(), mLeftAddressee.uid(), mRightAddressee.uid() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.name(), mRightAddressee.name() ) )
|
||||
conflictField( TDEABC::Addressee::nameLabel(), mLeftAddressee.name(), mRightAddressee.name() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.formattedName(), mRightAddressee.formattedName() ) )
|
||||
conflictField( TDEABC::Addressee::formattedNameLabel(), mLeftAddressee.formattedName(), mRightAddressee.formattedName() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.familyName(), mRightAddressee.familyName() ) )
|
||||
conflictField( TDEABC::Addressee::familyNameLabel(), mLeftAddressee.familyName(), mRightAddressee.familyName() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.givenName(), mRightAddressee.givenName() ) )
|
||||
conflictField( TDEABC::Addressee::givenNameLabel(), mLeftAddressee.givenName(), mRightAddressee.givenName() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.additionalName(), mRightAddressee.additionalName() ) )
|
||||
conflictField( TDEABC::Addressee::additionalNameLabel(), mLeftAddressee.additionalName(), mRightAddressee.additionalName() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.prefix(), mRightAddressee.prefix() ) )
|
||||
conflictField( TDEABC::Addressee::prefixLabel(), mLeftAddressee.prefix(), mRightAddressee.prefix() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.suffix(), mRightAddressee.suffix() ) )
|
||||
conflictField( TDEABC::Addressee::suffixLabel(), mLeftAddressee.suffix(), mRightAddressee.suffix() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.nickName(), mRightAddressee.nickName() ) )
|
||||
conflictField( TDEABC::Addressee::nickNameLabel(), mLeftAddressee.nickName(), mRightAddressee.nickName() );
|
||||
|
||||
if ( mLeftAddressee.birthday() != mRightAddressee.birthday() )
|
||||
conflictField( TDEABC::Addressee::birthdayLabel(), mLeftAddressee.birthday().toString(),
|
||||
mRightAddressee.birthday().toString() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.mailer(), mRightAddressee.mailer() ) )
|
||||
conflictField( TDEABC::Addressee::mailerLabel(), mLeftAddressee.mailer(), mRightAddressee.mailer() );
|
||||
|
||||
if ( mLeftAddressee.timeZone() != mRightAddressee.timeZone() )
|
||||
conflictField( TDEABC::Addressee::timeZoneLabel(), mLeftAddressee.timeZone().asString(), mRightAddressee.timeZone().asString() );
|
||||
|
||||
if ( mLeftAddressee.geo() != mRightAddressee.geo() )
|
||||
conflictField( TDEABC::Addressee::geoLabel(), mLeftAddressee.geo().asString(), mRightAddressee.geo().asString() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.title(), mRightAddressee.title() ) )
|
||||
conflictField( TDEABC::Addressee::titleLabel(), mLeftAddressee.title(), mRightAddressee.title() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.role(), mRightAddressee.role() ) )
|
||||
conflictField( TDEABC::Addressee::roleLabel(), mLeftAddressee.role(), mRightAddressee.role() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.organization(), mRightAddressee.organization() ) )
|
||||
conflictField( TDEABC::Addressee::organizationLabel(), mLeftAddressee.organization(), mRightAddressee.organization() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.note(), mRightAddressee.note() ) )
|
||||
conflictField( TDEABC::Addressee::noteLabel(), mLeftAddressee.note(), mRightAddressee.note() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.productId(), mRightAddressee.productId() ) )
|
||||
conflictField( TDEABC::Addressee::productIdLabel(), mLeftAddressee.productId(), mRightAddressee.productId() );
|
||||
|
||||
if ( !compareString( mLeftAddressee.sortString(), mRightAddressee.sortString() ) )
|
||||
conflictField( TDEABC::Addressee::sortStringLabel(), mLeftAddressee.sortString(), mRightAddressee.sortString() );
|
||||
|
||||
if ( mLeftAddressee.secrecy() != mRightAddressee.secrecy() ) {
|
||||
conflictField( TDEABC::Addressee::secrecyLabel(), mLeftAddressee.secrecy().asString(), mRightAddressee.secrecy().asString() );
|
||||
}
|
||||
if ( mLeftAddressee.url()!= mRightAddressee.url() )
|
||||
conflictField( TDEABC::Addressee::urlLabel(), mLeftAddressee.url().prettyURL(),
|
||||
mRightAddressee.url().prettyURL() );
|
||||
|
||||
if ( mLeftAddressee.logo() != mRightAddressee.logo() ) {
|
||||
}
|
||||
|
||||
if ( mLeftAddressee.photo() != mRightAddressee.photo() ) {
|
||||
}
|
||||
|
||||
diffList( "emails", mLeftAddressee.emails(), mRightAddressee.emails() );
|
||||
|
||||
diffList( "Phone Numbers", mLeftAddressee.phoneNumbers(), mRightAddressee.phoneNumbers() );
|
||||
diffList( "Addresses", mLeftAddressee.addresses(), mRightAddressee.addresses() );
|
||||
|
||||
end();
|
||||
}
|
||||
|
||||
TQString AddresseeDiffAlgo::toString( const TDEABC::PhoneNumber &number )
|
||||
{
|
||||
return number.number();
|
||||
}
|
||||
|
||||
TQString AddresseeDiffAlgo::toString( const TDEABC::Address &addr )
|
||||
{
|
||||
return addr.formattedAddress();
|
||||
}
|
||||
|
||||
template <class L>
|
||||
void AddresseeDiffAlgo::diffList( const TQString &id,
|
||||
const TQValueList<L> &left, const TQValueList<L> &right )
|
||||
{
|
||||
for ( uint i = 0; i < left.count(); ++i ) {
|
||||
if ( right.find( left[ i ] ) == right.end() )
|
||||
additionalLeftField( id, toString( left[ i ] ) );
|
||||
}
|
||||
|
||||
for ( uint i = 0; i < right.count(); ++i ) {
|
||||
if ( left.find( right[ i ] ) == left.end() )
|
||||
additionalRightField( id, toString( right[ i ] ) );
|
||||
}
|
||||
}
|
@ -1,53 +0,0 @@
|
||||
/*
|
||||
This file is part of libtdepim.
|
||||
|
||||
Copyright (c) 2004 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 KSYNC_ADDRESSEEDIFFALGO_H
|
||||
#define KSYNC_ADDRESSEEDIFFALGO_H
|
||||
|
||||
#include <tdeabc/addressee.h>
|
||||
#include <libtdepim/diffalgo.h>
|
||||
|
||||
using namespace KPIM;
|
||||
|
||||
namespace KSync {
|
||||
|
||||
class AddresseeDiffAlgo : public DiffAlgo
|
||||
{
|
||||
public:
|
||||
AddresseeDiffAlgo( const TDEABC::Addressee &leftAddressee, const TDEABC::Addressee &rightAddressee );
|
||||
AddresseeDiffAlgo( const TQString &leftAddressee, const TQString &rightAddressee );
|
||||
|
||||
void run();
|
||||
|
||||
private:
|
||||
template <class L>
|
||||
void diffList( const TQString &id, const TQValueList<L> &left, const TQValueList<L> &right );
|
||||
|
||||
TQString toString( const TDEABC::PhoneNumber &number );
|
||||
TQString toString( const TDEABC::Address &address );
|
||||
|
||||
TDEABC::Addressee mLeftAddressee;
|
||||
TDEABC::Addressee mRightAddressee;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -1,217 +0,0 @@
|
||||
/*
|
||||
This file is part of libtdepim.
|
||||
|
||||
Copyright (c) 2004 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 <tdelocale.h>
|
||||
|
||||
#include <libkcal/kcalversion.h>
|
||||
|
||||
#include "calendardiffalgo.h"
|
||||
|
||||
using namespace KSync;
|
||||
|
||||
#ifndef KDE_USE_FINAL
|
||||
static bool compareString( const TQString &left, const TQString &right )
|
||||
{
|
||||
if ( left.isEmpty() && right.isEmpty() )
|
||||
return true;
|
||||
else
|
||||
return left == right;
|
||||
}
|
||||
#endif
|
||||
|
||||
static TQString toString( KCal::Attendee *attendee )
|
||||
{
|
||||
return attendee->name() + "<" + attendee->email() + ">";
|
||||
}
|
||||
|
||||
static TQString toString( KCal::Alarm * )
|
||||
{
|
||||
return TQString();
|
||||
}
|
||||
|
||||
static TQString toString( KCal::Incidence * )
|
||||
{
|
||||
return TQString();
|
||||
}
|
||||
|
||||
static TQString toString( KCal::Attachment * )
|
||||
{
|
||||
return TQString();
|
||||
}
|
||||
|
||||
static TQString toString( const TQDate &date )
|
||||
{
|
||||
return date.toString();
|
||||
}
|
||||
|
||||
static TQString toString( const TQDateTime &dateTime )
|
||||
{
|
||||
return dateTime.toString();
|
||||
}
|
||||
|
||||
static TQString toString( const TQString str )
|
||||
{
|
||||
return str;
|
||||
}
|
||||
|
||||
static TQString toString( bool value )
|
||||
{
|
||||
if ( value )
|
||||
return i18n( "Yes" );
|
||||
else
|
||||
return i18n( "No" );
|
||||
}
|
||||
|
||||
CalendarDiffAlgo::CalendarDiffAlgo( KCal::Incidence *leftIncidence,
|
||||
KCal::Incidence *rightIncidence )
|
||||
: mLeftIncidence( leftIncidence ), mRightIncidence( rightIncidence )
|
||||
{
|
||||
}
|
||||
|
||||
void CalendarDiffAlgo::run()
|
||||
{
|
||||
begin();
|
||||
|
||||
diffIncidenceBase( mLeftIncidence, mRightIncidence );
|
||||
diffIncidence( mLeftIncidence, mRightIncidence );
|
||||
|
||||
KCal::Event *leftEvent = dynamic_cast<KCal::Event*>( mLeftIncidence );
|
||||
KCal::Event *rightEvent = dynamic_cast<KCal::Event*>( mRightIncidence );
|
||||
if ( leftEvent && rightEvent ) {
|
||||
diffEvent( leftEvent, rightEvent );
|
||||
} else {
|
||||
KCal::Todo *leftTodo = dynamic_cast<KCal::Todo*>( mLeftIncidence );
|
||||
KCal::Todo *rightTodo = dynamic_cast<KCal::Todo*>( mRightIncidence );
|
||||
if ( leftTodo && rightTodo ) {
|
||||
diffTodo( leftTodo, rightTodo );
|
||||
}
|
||||
}
|
||||
|
||||
end();
|
||||
}
|
||||
|
||||
void CalendarDiffAlgo::diffIncidenceBase( KCal::IncidenceBase *left, KCal::IncidenceBase *right )
|
||||
{
|
||||
diffList( i18n( "Attendees" ), left->attendees(), right->attendees() );
|
||||
|
||||
if ( left->dtStart() != right->dtStart() )
|
||||
conflictField( i18n( "Start time" ), left->dtStartStr(), right->dtStartStr() );
|
||||
|
||||
if ( !compareString( left->organizer().fullName(), right->organizer().fullName() ) )
|
||||
conflictField( i18n( "Organizer" ), left->organizer().fullName(), right->organizer().fullName() );
|
||||
|
||||
if ( !compareString( left->uid(), right->uid() ) )
|
||||
conflictField( i18n( "UID" ), left->uid(), right->uid() );
|
||||
|
||||
if ( left->doesFloat() != right->doesFloat() )
|
||||
conflictField( i18n( "Is floating" ), toString( left->doesFloat() ), toString( right->doesFloat() ) );
|
||||
|
||||
if ( left->hasDuration() != right->hasDuration() )
|
||||
conflictField( i18n( "Has duration" ), toString( left->hasDuration() ), toString( right->hasDuration() ) );
|
||||
|
||||
if ( left->duration() != right->duration() )
|
||||
conflictField( i18n( "Duration" ), TQString::number( left->duration() ), TQString::number( right->duration() ) );
|
||||
}
|
||||
|
||||
void CalendarDiffAlgo::diffIncidence( KCal::Incidence *left, KCal::Incidence *right )
|
||||
{
|
||||
if ( !compareString( left->description(), right->description() ) )
|
||||
conflictField( i18n( "Description" ), left->description(), right->description() );
|
||||
|
||||
if ( !compareString( left->summary(), right->summary() ) )
|
||||
conflictField( i18n( "Summary" ), left->summary(), right->summary() );
|
||||
|
||||
if ( left->status() != right->status() )
|
||||
conflictField( i18n( "Status" ), left->statusStr(), right->statusStr() );
|
||||
|
||||
if ( left->secrecy() != right->secrecy() )
|
||||
conflictField( i18n( "Secrecy" ), toString( left->secrecy() ), toString( right->secrecy() ) );
|
||||
|
||||
if ( left->priority() != right->priority() )
|
||||
conflictField( i18n( "Priority" ), toString( left->priority() ), toString( right->priority() ) );
|
||||
|
||||
if ( !compareString( left->location(), right->location() ) )
|
||||
conflictField( i18n( "Location" ), left->location(), right->location() );
|
||||
|
||||
diffList( i18n( "Categories" ), left->categories(), right->categories() );
|
||||
diffList( i18n( "Alarms" ), left->alarms(), right->alarms() );
|
||||
diffList( i18n( "Resources" ), left->resources(), right->resources() );
|
||||
diffList( i18n( "Relations" ), left->relations(), right->relations() );
|
||||
diffList( i18n( "Attachments" ), left->attachments(), right->attachments() );
|
||||
#if LIBKCAL_IS_VERSION( 1, 3, 1 )
|
||||
diffList( i18n( "Exception Dates" ), left->recurrence()->exDates(), right->recurrence()->exDates() );
|
||||
diffList( i18n( "Exception Times" ), left->recurrence()->exDateTimes(), right->recurrence()->exDateTimes() );
|
||||
#endif
|
||||
// TODO: recurrence dates and date/times, exrules, rrules
|
||||
|
||||
if ( left->created() != right->created() )
|
||||
conflictField( i18n( "Created" ), left->created().toString(), right->created().toString() );
|
||||
|
||||
if ( !compareString( left->relatedToUid(), right->relatedToUid() ) )
|
||||
conflictField( i18n( "Related Uid" ), left->relatedToUid(), right->relatedToUid() );
|
||||
}
|
||||
|
||||
void CalendarDiffAlgo::diffEvent( KCal::Event *left, KCal::Event *right )
|
||||
{
|
||||
if ( left->hasEndDate() != right->hasEndDate() )
|
||||
conflictField( i18n( "Has End Date" ), toString( left->hasEndDate() ), toString( right->hasEndDate() ) );
|
||||
|
||||
if ( left->dtEnd() != right->dtEnd() )
|
||||
conflictField( i18n( "End Date" ), left->dtEndStr(), right->dtEndStr() );
|
||||
|
||||
// TODO: check transparency
|
||||
}
|
||||
|
||||
void CalendarDiffAlgo::diffTodo( KCal::Todo *left, KCal::Todo *right )
|
||||
{
|
||||
if ( left->hasStartDate() != right->hasStartDate() )
|
||||
conflictField( i18n( "Has Start Date" ), toString( left->hasStartDate() ), toString( right->hasStartDate() ) );
|
||||
|
||||
if ( left->hasDueDate() != right->hasDueDate() )
|
||||
conflictField( i18n( "Has Due Date" ), toString( left->hasDueDate() ), toString( right->hasDueDate() ) );
|
||||
|
||||
if ( left->dtDue() != right->dtDue() )
|
||||
conflictField( i18n( "Due Date" ), left->dtDue().toString(), right->dtDue().toString() );
|
||||
|
||||
if ( left->hasCompletedDate() != right->hasCompletedDate() )
|
||||
conflictField( i18n( "Has Complete Date" ), toString( left->hasCompletedDate() ), toString( right->hasCompletedDate() ) );
|
||||
|
||||
if ( left->percentComplete() != right->percentComplete() )
|
||||
conflictField( i18n( "Complete" ), TQString::number( left->percentComplete() ), TQString::number( right->percentComplete() ) );
|
||||
|
||||
if ( left->completed() != right->completed() )
|
||||
conflictField( i18n( "Completed" ), toString( left->completed() ), toString( right->completed() ) );
|
||||
}
|
||||
|
||||
template <class L>
|
||||
void CalendarDiffAlgo::diffList( const TQString &id,
|
||||
const TQValueList<L> &left, const TQValueList<L> &right )
|
||||
{
|
||||
for ( uint i = 0; i < left.count(); ++i ) {
|
||||
if ( right.find( left[ i ] ) == right.end() )
|
||||
additionalLeftField( id, toString( left[ i ] ) );
|
||||
}
|
||||
|
||||
for ( uint i = 0; i < right.count(); ++i ) {
|
||||
if ( left.find( right[ i ] ) == left.end() )
|
||||
additionalRightField( id, toString( right[ i ] ) );
|
||||
}
|
||||
}
|
@ -1,55 +0,0 @@
|
||||
/*
|
||||
This file is part of libtdepim.
|
||||
|
||||
Copyright (c) 2004 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 KSYNC_CALENDARDIFFALGO_H
|
||||
#define KSYNC_CALENDARDIFFALGO_H
|
||||
|
||||
#include <libkcal/event.h>
|
||||
#include <libkcal/todo.h>
|
||||
#include <libtdepim/diffalgo.h>
|
||||
|
||||
using namespace KPIM;
|
||||
|
||||
namespace KSync {
|
||||
|
||||
class CalendarDiffAlgo : public DiffAlgo
|
||||
{
|
||||
public:
|
||||
CalendarDiffAlgo( KCal::Incidence *leftIncidence, KCal::Incidence *rightIncidence );
|
||||
|
||||
void run();
|
||||
|
||||
private:
|
||||
template <class L>
|
||||
void diffList( const TQString &id, const TQValueList<L> &left, const TQValueList<L> &right );
|
||||
|
||||
void diffIncidenceBase( KCal::IncidenceBase*, KCal::IncidenceBase* );
|
||||
void diffIncidence( KCal::Incidence*, KCal::Incidence* );
|
||||
void diffEvent( KCal::Event*, KCal::Event* );
|
||||
void diffTodo( KCal::Todo*, KCal::Todo* );
|
||||
|
||||
KCal::Incidence *mLeftIncidence;
|
||||
KCal::Incidence *mRightIncidence;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -1,135 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configgui.h"
|
||||
|
||||
|
||||
#include "configguiblank.h"
|
||||
#include "configguifile.h"
|
||||
#include "configguignokii.h"
|
||||
#include "configguigpe.h"
|
||||
#include "configguiirmc.h"
|
||||
#include "configguildap.h"
|
||||
#include "configguiopie.h"
|
||||
#include "configguipalm.h"
|
||||
#include "configguisyncmlhttp.h"
|
||||
#include "configguisyncmlobex.h"
|
||||
#include "configguigcalendar.h"
|
||||
#include "configguijescs.h"
|
||||
#include "configguievo2.h"
|
||||
#include "configguimoto.h"
|
||||
#include "configguisynce.h"
|
||||
#include "configguisunbird.h"
|
||||
|
||||
#include "memberinfo.h"
|
||||
|
||||
#include <kdialog.h>
|
||||
#include <tdelocale.h>
|
||||
#include <klineedit.h>
|
||||
|
||||
#include <tqlayout.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqtextedit.h>
|
||||
|
||||
ConfigGui::ConfigGui( const QSync::Member &member, TQWidget *parent )
|
||||
: TQWidget( parent ), mMember( member )
|
||||
{
|
||||
mTopLayout = new TQVBoxLayout( this );
|
||||
mTopLayout->setSpacing( KDialog::spacingHint() );
|
||||
mTopLayout->setMargin( KDialog::marginHint() );
|
||||
|
||||
TQBoxLayout *nameLayout = new TQHBoxLayout( mTopLayout );
|
||||
|
||||
TQLabel *label = new TQLabel( i18n("Name:"), this );
|
||||
nameLayout->addWidget( label );
|
||||
|
||||
mNameEdit = new KLineEdit( this );
|
||||
nameLayout->addWidget( mNameEdit );
|
||||
}
|
||||
|
||||
void ConfigGui::setInstanceName( const TQString &t )
|
||||
{
|
||||
mNameEdit->setText( t );
|
||||
}
|
||||
|
||||
TQString ConfigGui::instanceName() const
|
||||
{
|
||||
return mNameEdit->text();
|
||||
}
|
||||
|
||||
ConfigGui *ConfigGui::Factory::create( const QSync::Member &member,
|
||||
TQWidget *parent )
|
||||
{
|
||||
TQString name = member.pluginName();
|
||||
if ( name == "file-sync" ) {
|
||||
return new ConfigGuiFile( member, parent );
|
||||
} else if ( name == "palm-sync" ) {
|
||||
return new ConfigGuiPalm( member, parent );
|
||||
} else if ( name == "irmc-sync" ) {
|
||||
return new ConfigGuiIRMC( member, parent );
|
||||
} else if ( name == "syncml-obex-client" ) {
|
||||
return new ConfigGuiSyncmlObex( member, parent );
|
||||
} else if ( name == "syncml-http-server" ) {
|
||||
return new ConfigGuiSyncmlHttp( member, parent );
|
||||
} else if ( name == "opie-sync" ) {
|
||||
return new ConfigGuiOpie( member, parent );
|
||||
} else if ( name == "gnokii-sync" ) {
|
||||
return new ConfigGuiGnokii( member, parent );
|
||||
} else if ( name == "gpe-sync" ) {
|
||||
return new ConfigGuiGpe( member, parent );
|
||||
} else if ( name == "google-calendar" ) {
|
||||
return new ConfigGuiGoogleCalendar( member, parent );
|
||||
} else if ( name == "ldap-sync" ) {
|
||||
return new ConfigGuiLdap( member, parent );
|
||||
} else if ( name == "tdepim-sync" ) {
|
||||
return new ConfigGuiBlank( member, parent );
|
||||
} else if ( name == "jescs-sync" ) {
|
||||
return new ConfigGuiJescs( member, parent );
|
||||
} else if ( name == "evo2-sync" ) {
|
||||
return new ConfigGuiEvo2( member, parent );
|
||||
} else if ( name == "moto-sync" ) {
|
||||
return new ConfigGuiMoto( member, parent );
|
||||
} else if ( name == "synce-plugin" ) {
|
||||
return new ConfigGuiSynce( member, parent );
|
||||
} else if ( name == "sunbird-sync" ) {
|
||||
return new ConfigGuiSunbird( member, parent );
|
||||
} else {
|
||||
return new ConfigGuiXml( member, parent );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ConfigGuiXml::ConfigGuiXml( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
mTextEdit = new TQTextEdit( this );
|
||||
topLayout()->addWidget( mTextEdit );
|
||||
}
|
||||
|
||||
void ConfigGuiXml::load( const TQString &xml )
|
||||
{
|
||||
mTextEdit->setText( xml );
|
||||
}
|
||||
|
||||
TQString ConfigGuiXml::save() const
|
||||
{
|
||||
return mTextEdit->text();
|
||||
}
|
@ -1,72 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
#ifndef CONFIGGUI_H
|
||||
#define CONFIGGUI_H
|
||||
|
||||
#include <libqopensync/member.h>
|
||||
|
||||
#include <tqwidget.h>
|
||||
|
||||
class TQBoxLayout;
|
||||
class KLineEdit;
|
||||
class TQTextEdit;
|
||||
|
||||
class ConfigGui : public TQWidget
|
||||
{
|
||||
public:
|
||||
ConfigGui( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
class Factory
|
||||
{
|
||||
public:
|
||||
static ConfigGui *create( const QSync::Member &, TQWidget *parent );
|
||||
};
|
||||
|
||||
void setInstanceName( const TQString & );
|
||||
TQString instanceName() const;
|
||||
|
||||
virtual void load( const TQString &xml ) = 0;
|
||||
virtual TQString save() const = 0;
|
||||
|
||||
QSync::Member member() const { return mMember; }
|
||||
|
||||
TQBoxLayout *topLayout() const { return mTopLayout; }
|
||||
|
||||
private:
|
||||
QSync::Member mMember;
|
||||
|
||||
TQBoxLayout *mTopLayout;
|
||||
KLineEdit *mNameEdit;
|
||||
};
|
||||
|
||||
class ConfigGuiXml : public ConfigGui
|
||||
{
|
||||
public:
|
||||
ConfigGuiXml( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString & );
|
||||
TQString save() const;
|
||||
|
||||
private:
|
||||
TQTextEdit *mTextEdit;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,44 +0,0 @@
|
||||
/*
|
||||
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 General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configguiblank.h"
|
||||
|
||||
#include <tdelocale.h>
|
||||
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
|
||||
ConfigGuiBlank::ConfigGuiBlank( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
TQLabel *label = new TQLabel( i18n( "This member/plugin needs no configuration." ), this );
|
||||
topLayout()->addWidget( label );
|
||||
}
|
||||
|
||||
void ConfigGuiBlank::load( const TQString& )
|
||||
{
|
||||
}
|
||||
|
||||
TQString ConfigGuiBlank::save() const
|
||||
{
|
||||
TQString xml = "<config></config>";
|
||||
return xml;
|
||||
}
|
@ -1,35 +0,0 @@
|
||||
/*
|
||||
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 General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
#ifndef CONFIGGUIBLANK_H
|
||||
#define CONFIGGUIBLANK_H
|
||||
|
||||
#include "configgui.h"
|
||||
|
||||
class ConfigGuiBlank : public ConfigGui
|
||||
{
|
||||
public:
|
||||
ConfigGuiBlank( const QSync::Member &member, TQWidget *parent = 0 );
|
||||
|
||||
void load( const TQString &xml );
|
||||
TQString save() const;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,91 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configguievo2.h"
|
||||
|
||||
#include <tqdom.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqstring.h>
|
||||
|
||||
#include <kurlrequester.h>
|
||||
#include <kurl.h>
|
||||
#include <tdefile.h>
|
||||
#include <kdialog.h>
|
||||
#include <tdelocale.h>
|
||||
|
||||
ConfigGuiEvo2::ConfigGuiEvo2( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
initGUI();
|
||||
}
|
||||
|
||||
void ConfigGuiEvo2::load( const TQString &xml )
|
||||
{
|
||||
TQDomDocument doc;
|
||||
doc.setContent( xml );
|
||||
TQDomElement docElement = doc.documentElement();
|
||||
TQDomNode node;
|
||||
for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
||||
TQDomElement element = node.toElement();
|
||||
if ( element.tagName() == "address_path" ) {
|
||||
mAddressPath->setURL( element.text() );
|
||||
} else if ( element.tagName() == "calendar_path" ) {
|
||||
mCalendarPath->setURL( element.text() ) ;
|
||||
} else if ( element.tagName() == "tasks_path" ) {
|
||||
mTasksPath->setURL( element.text() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString ConfigGuiEvo2::save() const
|
||||
{
|
||||
TQString config = "<config>\n";
|
||||
|
||||
config += TQString( "<address_path>%1</address_path>\n" ).arg( mAddressPath->url() );
|
||||
config += TQString( "<calendar_path>%1</calendar_path>\n" ).arg( mCalendarPath->url() );
|
||||
config += TQString( "<tasks_path>%1</tasks_path>\n" ).arg( mTasksPath->url() );
|
||||
|
||||
config += "</config>";
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
void ConfigGuiEvo2::initGUI()
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( topLayout(), 12, 3, KDialog::spacingHint() );
|
||||
layout->setMargin( KDialog::marginHint() );
|
||||
|
||||
layout->addWidget( new TQLabel( i18n( "Address Book location:" ), this ), 0, 0 );
|
||||
mAddressPath = new KURLRequester( this );
|
||||
mAddressPath->setMode( KFile::Directory );
|
||||
layout->addMultiCellWidget( mAddressPath, 0, 0, 1, 2 );
|
||||
|
||||
layout->addWidget( new TQLabel( i18n( "Calendar location:" ), this ), 1, 0 );
|
||||
mCalendarPath = new KURLRequester( this );
|
||||
mCalendarPath->setMode( KFile::Directory );
|
||||
layout->addMultiCellWidget( mCalendarPath, 1, 1, 1, 2 );
|
||||
|
||||
layout->addWidget( new TQLabel( i18n( "Task list location:" ), this ), 2, 0 );
|
||||
mTasksPath = new KURLRequester( this );
|
||||
mTasksPath->setMode( KFile::Directory );
|
||||
layout->addMultiCellWidget( mTasksPath, 2, 2, 1, 2 );
|
||||
}
|
@ -1,46 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#ifndef CONFIGGUIEVO2_H
|
||||
#define CONFIGGUIEVO2_H
|
||||
|
||||
#include "configgui.h"
|
||||
|
||||
class KURLRequester;
|
||||
|
||||
class ConfigGuiEvo2 : public ConfigGui
|
||||
{
|
||||
public:
|
||||
ConfigGuiEvo2( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString &xml );
|
||||
|
||||
TQString save() const;
|
||||
|
||||
private:
|
||||
void initGUI();
|
||||
|
||||
KURLRequester *mAddressPath;
|
||||
KURLRequester *mCalendarPath;
|
||||
KURLRequester *mTasksPath;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,81 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configguifile.h"
|
||||
|
||||
#include <kurlrequester.h>
|
||||
#include <tdelocale.h>
|
||||
#include <kdialog.h>
|
||||
|
||||
#include <tqlayout.h>
|
||||
#include <tqcheckbox.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqdom.h>
|
||||
|
||||
ConfigGuiFile::ConfigGuiFile( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
TQBoxLayout *filenameLayout = new TQHBoxLayout( topLayout() );
|
||||
|
||||
TQLabel *label = new TQLabel( i18n("Directory name:"), this );
|
||||
filenameLayout->addWidget( label );
|
||||
|
||||
mFilename = new KURLRequester( this );
|
||||
mFilename->setMode( KFile::Directory | KFile::LocalOnly );
|
||||
filenameLayout->addWidget( mFilename );
|
||||
|
||||
TQBoxLayout *recursiveLayout = new TQHBoxLayout( topLayout() );
|
||||
|
||||
mRecursive = new TQCheckBox( i18n("Sync all subdirectories"), this );
|
||||
recursiveLayout->addWidget( mRecursive );
|
||||
|
||||
topLayout()->addStretch( 1 );
|
||||
}
|
||||
|
||||
void ConfigGuiFile::load( const TQString &xml )
|
||||
{
|
||||
TQDomDocument doc;
|
||||
doc.setContent( xml );
|
||||
TQDomElement docElement = doc.documentElement();
|
||||
TQDomNode n;
|
||||
for( n = docElement.firstChild(); !n.isNull(); n = n.nextSibling() ) {
|
||||
TQDomElement e = n.toElement();
|
||||
if ( e.tagName() == "path" ) {
|
||||
mFilename->setURL( e.text() );
|
||||
} else if ( e.tagName() == "recursive" ) {
|
||||
mRecursive->setChecked( e.text() == "TRUE" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString ConfigGuiFile::save() const
|
||||
{
|
||||
TQString xml;
|
||||
xml = "<config>";
|
||||
xml += "<path>" + mFilename->url() + "</path>";
|
||||
xml += "<recursive>";
|
||||
if ( mRecursive->isChecked() ) xml += "TRUE";
|
||||
else xml += "FALSE";
|
||||
xml += "</recursive>";
|
||||
xml += "</config>";
|
||||
|
||||
return xml;
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
#ifndef CONFIGGUIFILE_H
|
||||
#define CONFIGGUIFILE_H
|
||||
|
||||
#include "configgui.h"
|
||||
|
||||
class KURLRequester;
|
||||
class TQCheckBox;
|
||||
|
||||
class ConfigGuiFile : public ConfigGui
|
||||
{
|
||||
public:
|
||||
ConfigGuiFile( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString &xml );
|
||||
TQString save() const;
|
||||
|
||||
private:
|
||||
KURLRequester *mFilename;
|
||||
TQCheckBox *mRecursive;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,103 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
Copyright (c) 2006 Eduardo Habkost <ehabkost@raisama.net>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configguigcalendar.h"
|
||||
|
||||
#include <tdelocale.h>
|
||||
|
||||
#include <tqlayout.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqdom.h>
|
||||
#include <tqlineedit.h>
|
||||
|
||||
ConfigGuiGoogleCalendar::ConfigGuiGoogleCalendar( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
TQBoxLayout *userLayout = new TQHBoxLayout( topLayout() );
|
||||
|
||||
TQLabel *userLbl= new TQLabel( i18n("Username:"), this );
|
||||
userLayout->addWidget(userLbl);
|
||||
|
||||
mUsername = new TQLineEdit(this);
|
||||
userLayout->addWidget(mUsername);
|
||||
|
||||
|
||||
TQBoxLayout *passLayout = new TQHBoxLayout( topLayout() );
|
||||
|
||||
TQLabel *passLbl = new TQLabel( i18n("Password:"), this );
|
||||
passLayout->addWidget(passLbl);
|
||||
|
||||
mPassword = new TQLineEdit(this);
|
||||
mPassword->setEchoMode(TQLineEdit::Password);
|
||||
passLayout->addWidget(mPassword);
|
||||
|
||||
topLayout()->addWidget(new TQLabel( i18n("Please notice that currently the password is stored as plain text in the plugin configuration file"), this ));
|
||||
|
||||
TQBoxLayout *urlLayout = new TQHBoxLayout( topLayout() );
|
||||
TQLabel *urlLbl = new TQLabel( i18n("Calendar URL:"), this );
|
||||
urlLayout->addWidget(urlLbl);
|
||||
|
||||
mUrl = new TQLineEdit(this);
|
||||
urlLayout->addWidget(mUrl);
|
||||
|
||||
topLayout()->addStretch( 1 );
|
||||
}
|
||||
|
||||
void ConfigGuiGoogleCalendar::load( const TQString &xml )
|
||||
{
|
||||
TQDomDocument doc;
|
||||
doc.setContent( xml );
|
||||
TQDomElement docElement = doc.documentElement();
|
||||
TQDomNode n;
|
||||
for( n = docElement.firstChild(); !n.isNull(); n = n.nextSibling() ) {
|
||||
TQDomElement e = n.toElement();
|
||||
if ( e.tagName() == "username" ) {
|
||||
mUsername->setText(e.text());
|
||||
} else if ( e.tagName() == "password" ) {
|
||||
mPassword->setText(e.text());
|
||||
} else if ( e.tagName() == "url" ) {
|
||||
mUrl->setText(e.text());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString ConfigGuiGoogleCalendar::save() const
|
||||
{
|
||||
TQDomDocument doc;
|
||||
TQDomElement root = doc.createElement("config");
|
||||
doc.appendChild(root);
|
||||
|
||||
TQDomElement un = doc.createElement("username");
|
||||
root.appendChild(un);
|
||||
un.appendChild(doc.createTextNode(mUsername->text()));
|
||||
|
||||
TQDomElement pass = doc.createElement("password");
|
||||
root.appendChild(pass);
|
||||
pass.appendChild(doc.createTextNode(mPassword->text()));
|
||||
|
||||
TQDomElement url = doc.createElement("url");
|
||||
root.appendChild(url);
|
||||
url.appendChild(doc.createTextNode(mUrl->text()));
|
||||
|
||||
//TODO: Implement me!
|
||||
return doc.toString();
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
Copyright (c) 2006 Eduardo Habkost <ehabkost@raisama.net>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
#ifndef CONFIGGUIGCALENDAR_H
|
||||
#define CONFIGGUIGCALENDAR_H
|
||||
|
||||
#include "configgui.h"
|
||||
|
||||
class TQLineEdit;
|
||||
|
||||
class ConfigGuiGoogleCalendar : public ConfigGui
|
||||
{
|
||||
public:
|
||||
ConfigGuiGoogleCalendar( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString &xml );
|
||||
TQString save() const;
|
||||
|
||||
private:
|
||||
TQLineEdit *mUsername;
|
||||
TQLineEdit *mPassword;
|
||||
TQLineEdit *mUrl;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,223 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2006 David Förster <david@dfoerster.de>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configguignokii.h"
|
||||
|
||||
#include <tdelocale.h>
|
||||
#include <kdialog.h>
|
||||
#include <kcombobox.h>
|
||||
|
||||
#include <kdebug.h>
|
||||
|
||||
#include <tqlayout.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqlineedit.h>
|
||||
#include <tqcombobox.h>
|
||||
#include <tqdom.h>
|
||||
#include <tqvbox.h>
|
||||
|
||||
ConfigGuiGnokii::ConfigGuiGnokii( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( topLayout() );
|
||||
|
||||
// Model
|
||||
TQLabel *label = new TQLabel( i18n("Model:"), this );
|
||||
layout->addWidget( label, 0, 0 );
|
||||
|
||||
mModel = new KComboBox( true, this );
|
||||
layout->addWidget( mModel, 0, 1 );
|
||||
mModel->insertItem( "2110" );
|
||||
mModel->insertItem( "3110" );
|
||||
mModel->insertItem( "6110" );
|
||||
mModel->insertItem( "6110" );
|
||||
mModel->insertItem( "6160" );
|
||||
mModel->insertItem( "6230" );
|
||||
mModel->insertItem( "6230i" );
|
||||
mModel->insertItem( "6510" );
|
||||
mModel->insertItem( "7110" );
|
||||
mModel->insertItem( "AT" );
|
||||
// This one requires the gnapplet and rfcomm_channel
|
||||
mModel->insertItem( "3650" );
|
||||
mModel->insertItem( "6600" );
|
||||
mModel->insertItem( "gnapplet" );
|
||||
mModel->insertItem( "symbian" );
|
||||
mModel->insertItem( "sx1" );
|
||||
|
||||
connect( mModel, TQT_SIGNAL (activated( int ) ),
|
||||
this, TQT_SLOT( slotModelChanged () ) );
|
||||
|
||||
// Connection
|
||||
label = new TQLabel( i18n("Connection:"), this );
|
||||
layout->addWidget( label, 1, 0 );
|
||||
|
||||
mConnection = new TQComboBox( this );
|
||||
layout->addWidget( mConnection, 1, 1 );
|
||||
|
||||
connect( mConnection, TQT_SIGNAL (activated( int ) ),
|
||||
this, TQT_SLOT( slotConnectionChanged ( int ) ) );
|
||||
|
||||
// this is a list of all connection types accepted by the gnokii-sync plugin
|
||||
mConnectionTypes.append( ConnectionType( "bluetooth", i18n( "Bluetooth" ) ) );
|
||||
mConnectionTypes.append( ConnectionType( "irda", i18n( "IrDA" ) ) );
|
||||
mConnectionTypes.append( ConnectionType( "serial", i18n( "Serial" ) ) );
|
||||
mConnectionTypes.append( ConnectionType( "infrared", i18n( "Infrared" ) ) );
|
||||
mConnectionTypes.append( ConnectionType( "tcp", i18n( "TCP" ) ) );
|
||||
mConnectionTypes.append( ConnectionType( "dku2", i18n( "USB (nokia_dku2)" ) ) );
|
||||
mConnectionTypes.append( ConnectionType( "dku2libusb", i18n( "USB (libusb)" ) ) );
|
||||
mConnectionTypes.append( ConnectionType( "dau9p", i18n( "Serial (DAU9P cable)" ) ) );
|
||||
mConnectionTypes.append( ConnectionType( "dlr3p", i18n( "Serial (DLR3P cable)" ) ) );
|
||||
mConnectionTypes.append( ConnectionType( "tekram", i18n( "Tekram Ir-Dongle" ) ) );
|
||||
mConnectionTypes.append( ConnectionType( "m2bus", i18n( "Serial (M2BUS protocol)" ) ) );
|
||||
|
||||
ConnectionTypeList::ConstIterator it;
|
||||
for ( it = mConnectionTypes.begin(); it != mConnectionTypes.end(); it++ ) {
|
||||
mConnection->insertItem( (*it).second );
|
||||
}
|
||||
|
||||
TQVBox *connectionWidget = new TQVBox( this );
|
||||
connectionWidget->setMargin( KDialog::marginHint() );
|
||||
connectionWidget->setSpacing( 5 );
|
||||
|
||||
mBluetooth = new BluetoothWidget( connectionWidget );
|
||||
mBluetooth->hide();
|
||||
|
||||
layout->addMultiCellWidget( connectionWidget, 2, 2, 0, 1 );
|
||||
|
||||
// Port
|
||||
mPortLabel = new TQLabel( i18n("Port:"), this );
|
||||
layout->addWidget( mPortLabel, 2, 0 );
|
||||
mPortLabel->hide();
|
||||
|
||||
mPort = new KComboBox( true, this );
|
||||
layout->addWidget( mPort, 2, 1 );
|
||||
mPort->hide();
|
||||
|
||||
mPort->insertItem( "/dev/ircomm0" );
|
||||
mPort->insertItem( "/dev/ircomm1" );
|
||||
mPort->insertItem( "/dev/ttyS0" );
|
||||
mPort->insertItem( "/dev/ttyS1" );
|
||||
mPort->insertItem( "/dev/ttyUSB0" );
|
||||
mPort->insertItem( "/dev/ttyUSB1" );
|
||||
|
||||
layout->setColStretch( 1, 1 );
|
||||
|
||||
topLayout()->addStretch( 1 );
|
||||
}
|
||||
|
||||
void ConfigGuiGnokii::slotConnectionChanged( int nth )
|
||||
{
|
||||
mPort->hide();
|
||||
mPortLabel->hide();
|
||||
mBluetooth->hide();
|
||||
|
||||
// Bluetooth
|
||||
if ( nth == 0 ) {
|
||||
mBluetooth->show();
|
||||
slotModelChanged();
|
||||
|
||||
if ( !mPort->currentText().isEmpty() )
|
||||
mBluetooth->setAddress( mPort->currentText() );
|
||||
|
||||
// dku2libusb
|
||||
} else if ( nth == 6 ) {
|
||||
// No widget needed.
|
||||
} else {
|
||||
mPort->show();
|
||||
mPortLabel->show();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void ConfigGuiGnokii::slotModelChanged()
|
||||
{
|
||||
mBluetooth->hideChannel();
|
||||
|
||||
if ( mModel->currentText() == "gnapplet"
|
||||
|| mModel->currentText() == "symbian"
|
||||
|| mModel->currentText() == "3650"
|
||||
|| mModel->currentText() == "6600"
|
||||
|| mModel->currentText() == "sx1")
|
||||
mBluetooth->showChannel();
|
||||
else
|
||||
mBluetooth->setChannel("");
|
||||
}
|
||||
|
||||
void ConfigGuiGnokii::load( const TQString &xml )
|
||||
{
|
||||
TQDomDocument doc;
|
||||
doc.setContent( xml );
|
||||
TQDomElement docElement = doc.documentElement();
|
||||
TQDomNode n;
|
||||
for( n = docElement.firstChild(); !n.isNull(); n = n.nextSibling() ) {
|
||||
TQDomElement e = n.toElement();
|
||||
if ( e.tagName() == "connection" ) {
|
||||
for ( uint i = 0; i < mConnectionTypes.count(); i++ ) {
|
||||
if ( mConnectionTypes[i].first == e.text()) {
|
||||
mConnection->setCurrentItem( i );
|
||||
slotConnectionChanged( i );
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if ( e.tagName() == "port" ) {
|
||||
mPort->setCurrentText( e.text() );
|
||||
} else if ( e.tagName() == "model" ) {
|
||||
mModel->setCurrentText( e.text() );
|
||||
} else if ( e.tagName() == "rfcomm_channel" ) {
|
||||
mBluetooth->setChannel( e.text() );
|
||||
mBluetooth->showChannel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString ConfigGuiGnokii::save() const
|
||||
{
|
||||
TQString xml;
|
||||
xml = "<config>";
|
||||
|
||||
ConnectionTypeList::ConstIterator it;
|
||||
for ( it = mConnectionTypes.begin(); it != mConnectionTypes.end(); it++ ) {
|
||||
if ( mConnection->currentText() == (*it).second ) {
|
||||
xml += "<connection>" + (*it).first + "</connection>";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( (*it).first == "bluetooth" )
|
||||
xml += "<port>" + mBluetooth->address() + "</port>";
|
||||
else if ( (*it).first == "dku2libusb" )
|
||||
xml += "<port>" + TQString("FF:FF:FF:FF:FF:FF") + "</port>"; // Only place holder for libgnokii
|
||||
else
|
||||
xml += "<port>" + mPort->currentText() + "</port>";
|
||||
|
||||
// model
|
||||
xml += "<model>" + mModel->currentText() + "</model>";
|
||||
|
||||
// rfcomm_channel
|
||||
if ( !mBluetooth->channel().isNull() )
|
||||
xml += "<rfcomm_channel>" + mBluetooth->channel() + "</rfcomm_channel>";
|
||||
|
||||
xml += "</config>";
|
||||
|
||||
return xml;
|
||||
}
|
||||
|
||||
#include "configguignokii.moc"
|
@ -1,63 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2006 David Förster <david@dfoerster.de>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
#ifndef CONFIGGUIGNOKII_H
|
||||
#define CONFIGGUIGNOKII_H
|
||||
|
||||
#include "configgui.h"
|
||||
#include "connectionwidgets.h"
|
||||
|
||||
#include <tqvaluelist.h>
|
||||
#include <tqpair.h>
|
||||
|
||||
class TQLabel;
|
||||
class TQLineEdit;
|
||||
class TQComboBox;
|
||||
|
||||
class ConfigGuiGnokii : public ConfigGui
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
ConfigGuiGnokii( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString &xml );
|
||||
TQString save() const;
|
||||
|
||||
private:
|
||||
TQComboBox *mConnection;
|
||||
KComboBox *mPort;
|
||||
TQLabel *mPortLabel;
|
||||
KComboBox *mModel;
|
||||
|
||||
BluetoothWidget *mBluetooth;
|
||||
|
||||
typedef TQPair<TQString, TQString> ConnectionType;
|
||||
typedef TQValueList<ConnectionType> ConnectionTypeList;
|
||||
ConnectionTypeList mConnectionTypes;
|
||||
|
||||
protected slots:
|
||||
void slotConnectionChanged( int nth );
|
||||
void slotModelChanged();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
@ -1,103 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2007 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configguigpe.h"
|
||||
|
||||
#include <tqcheckbox.h>
|
||||
#include <tqdom.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqspinbox.h>
|
||||
|
||||
#include <kcombobox.h>
|
||||
#include <kdialog.h>
|
||||
#include <klineedit.h>
|
||||
#include <tdelocale.h>
|
||||
|
||||
ConfigGuiGpe::ConfigGuiGpe( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
initGUI();
|
||||
|
||||
mConnectionMode->insertItem( i18n( "Local" ) );
|
||||
mConnectionMode->insertItem( i18n( "Ssh" ) );
|
||||
}
|
||||
|
||||
void ConfigGuiGpe::load( const TQString &xml )
|
||||
{
|
||||
TQDomDocument doc;
|
||||
doc.setContent( xml );
|
||||
TQDomElement docElement = doc.documentElement();
|
||||
TQDomNode node;
|
||||
for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
||||
TQDomElement element = node.toElement();
|
||||
if ( element.tagName() == "use_local" ) {
|
||||
if ( element.text().toInt() == 1 )
|
||||
mConnectionMode->setCurrentItem( 0 );
|
||||
else
|
||||
mConnectionMode->setCurrentItem( 1 );
|
||||
} else if ( element.tagName() == "handheld_ip" ) {
|
||||
mIP->setText( element.text() );
|
||||
} else if ( element.tagName() == "handheld_port" ) {
|
||||
mPort->setValue( element.text().toInt() );
|
||||
} else if ( element.tagName() == "handheld_user" ) {
|
||||
mUser->setText( element.text() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString ConfigGuiGpe::save() const
|
||||
{
|
||||
TQString config = "<config>";
|
||||
|
||||
config += TQString( "<use_local>%1</use_local>" ).arg( mConnectionMode->currentItem() == 0 );
|
||||
config += TQString( "<use_ssh>%1</use_ssh>" ).arg( mConnectionMode->currentItem() == 1 );
|
||||
config += TQString( "<handheld_ip>%1</handheld_ip>" ).arg( mIP->text() );
|
||||
config += TQString( "<handheld_port>%1</handheld_port>" ).arg( mPort->value() );
|
||||
config += TQString( "<handheld_user>%1</handheld_user>" ).arg( mUser->text() );
|
||||
|
||||
config += "</config>";
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
void ConfigGuiGpe::initGUI()
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( topLayout(), 12, 4, KDialog::spacingHint() );
|
||||
layout->setMargin( KDialog::marginHint() );
|
||||
|
||||
layout->addWidget( new TQLabel( i18n( "Connection Mode:" ), this ), 0, 0 );
|
||||
mConnectionMode = new KComboBox( this );
|
||||
layout->addMultiCellWidget( mConnectionMode, 0, 0, 0, 3 );
|
||||
|
||||
layout->addWidget( new TQLabel( i18n( "IP Address:" ), this ), 1, 0 );
|
||||
mIP = new KLineEdit( this );
|
||||
mIP->setInputMask( "000.000.000.000" );
|
||||
layout->addWidget( mIP, 1, 1 );
|
||||
|
||||
layout->addWidget( new TQLabel( i18n( "Port:" ), this ), 1, 2, TQt::AlignRight );
|
||||
mPort = new TQSpinBox( 1, 65536, 1, this );
|
||||
layout->addWidget( mPort, 1, 3 );
|
||||
|
||||
layout->addWidget( new TQLabel( i18n( "User:" ), this ), 2, 0 );
|
||||
mUser = new KLineEdit( this );
|
||||
layout->addMultiCellWidget( mUser, 2, 2, 1, 3 );
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2007 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#ifndef CONFIGGUIGPE_H
|
||||
#define CONFIGGUIGPE_H
|
||||
|
||||
#include "configgui.h"
|
||||
|
||||
class TQSpinBox;
|
||||
|
||||
class KComboBox;
|
||||
class KLineEdit;
|
||||
|
||||
class ConfigGuiGpe : public ConfigGui
|
||||
{
|
||||
public:
|
||||
ConfigGuiGpe( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString &xml );
|
||||
TQString save() const;
|
||||
|
||||
private:
|
||||
void initGUI();
|
||||
|
||||
KComboBox *mConnectionMode;
|
||||
|
||||
KLineEdit *mIP;
|
||||
TQSpinBox *mPort;
|
||||
KLineEdit *mUser;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,192 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include <kcombobox.h>
|
||||
#include <kdialog.h>
|
||||
#include <tdeglobal.h>
|
||||
#include <kiconloader.h>
|
||||
#include <kinputdialog.h>
|
||||
#include <klineedit.h>
|
||||
#include <tdelocale.h>
|
||||
#include <tdemessagebox.h>
|
||||
|
||||
#include <kdebug.h>
|
||||
|
||||
#include <tqapplication.h>
|
||||
#include <tqeventloop.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqpushbutton.h>
|
||||
#include <tqspinbox.h>
|
||||
#include <tqtabwidget.h>
|
||||
#include <tqtooltip.h>
|
||||
#include <tqvbox.h>
|
||||
|
||||
#include "configguiirmc.h"
|
||||
|
||||
ConfigGuiIRMC::ConfigGuiIRMC( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
initGUI();
|
||||
|
||||
mConnectionType->insertItem( i18n( "Bluetooth" ) );
|
||||
mConnectionType->insertItem( i18n( "InfraRed (IR)" ) );
|
||||
mConnectionType->insertItem( i18n( "Cable" ) );
|
||||
|
||||
connect( mConnectionType, TQT_SIGNAL( activated( int ) ),
|
||||
this, TQT_SLOT( connectionTypeChanged( int ) ) );
|
||||
|
||||
connectionTypeChanged( 0 );
|
||||
}
|
||||
|
||||
void ConfigGuiIRMC::load( const TQString &xml )
|
||||
{
|
||||
TQDomDocument doc;
|
||||
doc.setContent( xml );
|
||||
TQDomElement docElement = doc.documentElement();
|
||||
TQDomNode node;
|
||||
for ( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
||||
TQDomElement element = node.toElement();
|
||||
if ( element.tagName() == "connectmedium" ) {
|
||||
if ( element.text() == "bluetooth" ) {
|
||||
mConnectionType->setCurrentItem( 0 );
|
||||
connectionTypeChanged( 0 );
|
||||
} else if ( element.text() == "ir" ) {
|
||||
mConnectionType->setCurrentItem( 1 );
|
||||
connectionTypeChanged( 1 );
|
||||
} else if ( element.text() == "cable" ) {
|
||||
mConnectionType->setCurrentItem( 2 );
|
||||
connectionTypeChanged( 2 );
|
||||
}
|
||||
} else if (element.tagName() == "btunit" ) {
|
||||
mBluetoothWidget->setAddress( element.text() );
|
||||
} else if (element.tagName() == "btchannel" ) {
|
||||
mBluetoothWidget->setChannel( element.text() );
|
||||
} else if (element.tagName() == "donttellsync" ) {
|
||||
mDontTellSync->setChecked( element.text() == "true" );
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
mIRWidget->load( docElement );
|
||||
mCableWidget->load( docElement );
|
||||
}
|
||||
|
||||
TQString ConfigGuiIRMC::save() const
|
||||
{
|
||||
TQDomDocument doc;
|
||||
TQDomElement config = doc.createElement( "config" );
|
||||
doc.appendChild( config );
|
||||
|
||||
TQDomElement element = doc.createElement( "connectmedium" );
|
||||
if ( mConnectionType->currentItem() == 0 )
|
||||
element.appendChild( doc.createTextNode( "bluetooth" ) );
|
||||
if ( mConnectionType->currentItem() == 1 )
|
||||
element.appendChild( doc.createTextNode( "ir" ) );
|
||||
if ( mConnectionType->currentItem() == 2 )
|
||||
element.appendChild( doc.createTextNode( "cable" ) );
|
||||
|
||||
config.appendChild( element );
|
||||
|
||||
if ( mConnectionType->currentItem() == 0 ) {
|
||||
TQDomElement btunit = doc.createElement( "btunit" );
|
||||
if ( !mBluetoothWidget->address().isEmpty() )
|
||||
btunit.appendChild( doc.createTextNode( mBluetoothWidget->address() ) );
|
||||
|
||||
TQDomElement btchannel = doc.createElement( "btchannel" );
|
||||
if ( !mBluetoothWidget->channel().isEmpty() )
|
||||
btchannel.appendChild( doc.createTextNode( mBluetoothWidget->channel() ) );
|
||||
|
||||
config.appendChild( btunit );
|
||||
config.appendChild( btchannel );
|
||||
}
|
||||
|
||||
if ( mDontTellSync->isChecked() ) {
|
||||
TQDomElement dontellsync = doc.createElement( "donttellsync" );
|
||||
dontellsync.appendChild( doc.createTextNode( "true" ) );
|
||||
config.appendChild( dontellsync );
|
||||
}
|
||||
|
||||
mIRWidget->save( doc, config );
|
||||
mCableWidget->save( doc, config );
|
||||
|
||||
return doc.toString();
|
||||
}
|
||||
|
||||
void ConfigGuiIRMC::connectionTypeChanged( int type )
|
||||
{
|
||||
mBluetoothWidget->hide();
|
||||
mIRWidget->hide();
|
||||
mCableWidget->hide();
|
||||
|
||||
if ( type == 0 )
|
||||
mBluetoothWidget->show();
|
||||
else if ( type == 1 )
|
||||
mIRWidget->show();
|
||||
else
|
||||
mCableWidget->show();
|
||||
}
|
||||
|
||||
void ConfigGuiIRMC::initGUI()
|
||||
{
|
||||
TQTabWidget *tabWidget = new TQTabWidget( this );
|
||||
topLayout()->addWidget( tabWidget );
|
||||
|
||||
TQVBox *connectionWidget = new TQVBox( tabWidget );
|
||||
connectionWidget->setMargin( KDialog::marginHint() );
|
||||
connectionWidget->setSpacing( 5 );
|
||||
|
||||
tabWidget->addTab( connectionWidget, i18n( "Connection" ) );
|
||||
|
||||
mConnectionType = new KComboBox( connectionWidget );
|
||||
TQToolTip::add( mConnectionType, i18n( "Select your connection type." ) );
|
||||
|
||||
mBluetoothWidget = new BluetoothWidget( connectionWidget );
|
||||
mBluetoothWidget->hide();
|
||||
|
||||
mIRWidget = new IRWidget( connectionWidget );
|
||||
mIRWidget->hide();
|
||||
|
||||
mCableWidget = new CableWidget( connectionWidget );
|
||||
mCableWidget->hide();
|
||||
|
||||
connectionWidget->setStretchFactor( mBluetoothWidget, 1 );
|
||||
connectionWidget->setStretchFactor( mIRWidget, 1 );
|
||||
connectionWidget->setStretchFactor( mCableWidget, 1 );
|
||||
|
||||
TQVBox *optionsWidget = new TQVBox( tabWidget );
|
||||
optionsWidget->setMargin( KDialog::marginHint() );
|
||||
optionsWidget->setSpacing( 5 );
|
||||
|
||||
tabWidget->addTab( optionsWidget, i18n( "Options" ) );
|
||||
|
||||
TQHBox *optionBox = new TQHBox( optionsWidget );
|
||||
optionBox->setSpacing( KDialog::spacingHint() );
|
||||
|
||||
TQLabel *label = new TQLabel( i18n( "Don't send OBEX UUID (IRMC-SYNC)" ), optionBox );
|
||||
mDontTellSync = new TQCheckBox( optionBox );
|
||||
TQToolTip::add( mDontTellSync, i18n( "Don't send OBEX UUID while connecting. Needed for older IrMC based mobile phones." ) );
|
||||
label->setBuddy( mDontTellSync );
|
||||
|
||||
}
|
||||
|
||||
#include "configguiirmc.moc"
|
@ -1,62 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#ifndef CONFIGGUIIRMC_H
|
||||
#define CONFIGGUIIRMC_H
|
||||
|
||||
#include <tqcheckbox.h>
|
||||
#include <tqdom.h>
|
||||
|
||||
#include "configgui.h"
|
||||
#include "connectionwidgets.h"
|
||||
|
||||
class KComboBox;
|
||||
class KLineEdit;
|
||||
class TQCheckBox;
|
||||
class TQPushButton;
|
||||
class TQSpinBox;
|
||||
|
||||
class ConfigGuiIRMC : public ConfigGui
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
ConfigGuiIRMC( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString &xml );
|
||||
TQString save() const;
|
||||
|
||||
protected slots:
|
||||
void connectionTypeChanged( int type );
|
||||
|
||||
private:
|
||||
void initGUI();
|
||||
|
||||
KComboBox *mConnectionType;
|
||||
TQCheckBox *mDontTellSync;
|
||||
|
||||
BluetoothWidget *mBluetoothWidget;
|
||||
IRWidget *mIRWidget;
|
||||
CableWidget *mCableWidget;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,98 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configguijescs.h"
|
||||
|
||||
#include <tqcheckbox.h>
|
||||
#include <tqdom.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
|
||||
#include <klineedit.h>
|
||||
#include <kdialog.h>
|
||||
#include <tdelocale.h>
|
||||
|
||||
ConfigGuiJescs::ConfigGuiJescs( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
initGUI();
|
||||
}
|
||||
|
||||
void ConfigGuiJescs::load( const TQString &xml )
|
||||
{
|
||||
TQDomDocument doc;
|
||||
doc.setContent( xml );
|
||||
TQDomElement docElement = doc.documentElement();
|
||||
TQDomNode node;
|
||||
for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
||||
TQDomElement element = node.toElement();
|
||||
if ( element.tagName() == "url" ) {
|
||||
mUrl->setText( element.text() );
|
||||
} else if ( element.tagName() == "username" ) {
|
||||
mUsername->setText( element.text() );
|
||||
} else if ( element.tagName() == "password" ) {
|
||||
mPassword->setText( element.text() );
|
||||
} else if ( element.tagName() == "del_notify" ) {
|
||||
mDelNotify->setChecked( element.text() == "1" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString ConfigGuiJescs::save() const
|
||||
{
|
||||
int delNotifyState;
|
||||
TQString config = "<config>\n";
|
||||
|
||||
config += TQString( "<url>%1</url>\n" ).arg( mUrl->text() );
|
||||
config += TQString( "<username>%1</username>\n" ).arg( mUsername->text() );
|
||||
config += TQString( "<password>%1</password>\n" ).arg( mPassword->text() );
|
||||
if ( mDelNotify->isChecked() ) { delNotifyState = 1;
|
||||
} else { delNotifyState = 0;
|
||||
}
|
||||
config += TQString( "<del_notify>%1</del_notify>\n" ).arg( delNotifyState );
|
||||
|
||||
config += "</config>";
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
void ConfigGuiJescs::initGUI()
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( topLayout(), 12, 3, KDialog::spacingHint() );
|
||||
layout->setMargin( KDialog::marginHint() );
|
||||
|
||||
layout->addWidget( new TQLabel( i18n( "URL:" ), this ), 0, 0 );
|
||||
mUrl = new KLineEdit( this );
|
||||
layout->addMultiCellWidget( mUrl, 0, 0, 1, 2 );
|
||||
|
||||
layout->addWidget( new TQLabel( i18n( "Username:" ), this ), 1, 0 );
|
||||
mUsername = new KLineEdit( this );
|
||||
layout->addMultiCellWidget( mUsername, 1, 1, 1, 2 );
|
||||
|
||||
layout->addWidget( new TQLabel( i18n( "Password:" ), this ), 2, 0 );
|
||||
mPassword = new KLineEdit( this );
|
||||
mPassword->setEchoMode( KLineEdit::Password );
|
||||
layout->addMultiCellWidget( mPassword, 2, 2, 1, 2 );
|
||||
|
||||
mDelNotify = new TQCheckBox( this );
|
||||
mDelNotify->setText( "Notify attendees about event/task deletion" );
|
||||
layout->addMultiCellWidget( mDelNotify, 3, 3, 0, 2 );
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#ifndef CONFIGGUIJESCS_H
|
||||
#define CONFIGGUIJESCS_H
|
||||
|
||||
#include "configgui.h"
|
||||
|
||||
class KLineEdit;
|
||||
class TQCheckBox;
|
||||
|
||||
class ConfigGuiJescs : public ConfigGui
|
||||
{
|
||||
public:
|
||||
ConfigGuiJescs( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString &xml );
|
||||
|
||||
TQString save() const;
|
||||
|
||||
private:
|
||||
void initGUI();
|
||||
|
||||
KLineEdit *mUrl;
|
||||
KLineEdit *mUsername;
|
||||
KLineEdit *mPassword;
|
||||
TQCheckBox *mDelNotify;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,153 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2007 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configguildap.h"
|
||||
|
||||
#include <tqcheckbox.h>
|
||||
#include <tqdom.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqspinbox.h>
|
||||
|
||||
#include <kcombobox.h>
|
||||
#include <kdialog.h>
|
||||
#include <klineedit.h>
|
||||
#include <tdelocale.h>
|
||||
|
||||
ConfigGuiLdap::ConfigGuiLdap( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
initGUI();
|
||||
|
||||
mSearchScope->insertItem( i18n( "Base" ) );
|
||||
mSearchScope->insertItem( i18n( "One" ) );
|
||||
mSearchScope->insertItem( i18n( "Sub" ) );
|
||||
}
|
||||
|
||||
void ConfigGuiLdap::load( const TQString &xml )
|
||||
{
|
||||
TQDomDocument doc;
|
||||
doc.setContent( xml );
|
||||
TQDomElement docElement = doc.documentElement();
|
||||
TQDomNode node;
|
||||
for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
||||
TQDomElement element = node.toElement();
|
||||
if ( element.tagName() == "servername" ) {
|
||||
mLdapWidget->setHost( element.text() );
|
||||
} else if ( element.tagName() == "serverport" ) {
|
||||
mLdapWidget->setPort( element.text().toInt() );
|
||||
} else if ( element.tagName() == "binddn" ) {
|
||||
mLdapWidget->setBindDN( element.text() );
|
||||
} else if ( element.tagName() == "password" ) {
|
||||
mLdapWidget->setPassword( element.text() );
|
||||
} else if ( element.tagName() == "anonymous" ) {
|
||||
mLdapWidget->setAuthAnon( element.text().toInt() == 1 );
|
||||
} else if ( element.tagName() == "searchbase" ) {
|
||||
mLdapWidget->setDn( element.text() );
|
||||
} else if ( element.tagName() == "searchfilter" ) {
|
||||
mLdapWidget->setFilter( element.text() );
|
||||
} else if ( element.tagName() == "storebase" ) {
|
||||
mLdapWidget->setDn( element.text() );
|
||||
} else if ( element.tagName() == "keyattr" ) {
|
||||
mKeyAttribute->setText( element.text() );
|
||||
} else if ( element.tagName() == "scope" ) {
|
||||
TQStringList list;
|
||||
list << "base" << "one" << "sub";
|
||||
for ( uint i = 0; i < list.count(); ++i )
|
||||
if ( list[ i ] == element.text() )
|
||||
mSearchScope->setCurrentItem( i );
|
||||
|
||||
} else if ( element.tagName() == "authmech" ) {
|
||||
if ( element.text() == "SIMPLE" ) {
|
||||
mLdapWidget->setAuthSimple( true );
|
||||
}
|
||||
} else if ( element.tagName() == "encryption" ) {
|
||||
mEncryption->setChecked( element.text().toInt() == 1 );
|
||||
} else if ( element.tagName() == "ldap_read" ) {
|
||||
mReadLdap->setChecked( element.text().toInt() == 1 );
|
||||
} else if ( element.tagName() == "ldap_write" ) {
|
||||
mWriteLdap->setChecked( element.text().toInt() == 1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString ConfigGuiLdap::save() const
|
||||
{
|
||||
TQString config = "<config>\n";
|
||||
|
||||
config += TQString( "<servername>%1</servername>\n" ).arg( mLdapWidget->host() );
|
||||
config += TQString( "<serverport>%1</serverport>\n" ).arg( mLdapWidget->port() );
|
||||
config += TQString( "<binddn>%1</binddn>\n" ).arg( mLdapWidget->bindDN() );
|
||||
config += TQString( "<password>%1</password>\n" ).arg( mLdapWidget->password() );
|
||||
config += TQString( "<anonymous>%1</anonymous>\n" ).arg( mLdapWidget->isAuthAnon() ? "1" : "0" );
|
||||
config += TQString( "<searchbase>%1</searchbase>\n" ).arg( mLdapWidget->dn() );
|
||||
config += TQString( "<searchfilter>%1</searchfilter>\n" ).arg( mLdapWidget->filter() );
|
||||
config += TQString( "<storebase>%1</storebase>\n" ).arg( mLdapWidget->dn() );
|
||||
config += TQString( "<keyattr>%1</keyattr>\n" ).arg( mKeyAttribute->text() );
|
||||
|
||||
TQStringList scopes;
|
||||
scopes << "base" << "one" << "sub";
|
||||
|
||||
config += TQString( "<scope>%1</scope>\n" ).arg( scopes[ mSearchScope->currentItem() ] );
|
||||
|
||||
config += TQString( "<authmech>SIMPLE</authmech>\n" );
|
||||
config += TQString( "<encryption>%1</encryption>\n" ).arg( mEncryption->isChecked() ? "1" : "0" );
|
||||
|
||||
config += TQString( "<ldap_read>%1</ldap_read>\n" ).arg( mReadLdap->isChecked() ? "1" : "0" );
|
||||
config += TQString( "<ldap_write>%1</ldap_write>\n" ).arg( mWriteLdap->isChecked() ? "1" : "0" );
|
||||
|
||||
config += "</config>";
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
void ConfigGuiLdap::initGUI()
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( topLayout(), 12, 4, KDialog::spacingHint() );
|
||||
layout->setMargin( KDialog::marginHint() );
|
||||
|
||||
mLdapWidget = new TDEABC::LdapConfigWidget( TDEABC::LdapConfigWidget::W_HOST |
|
||||
TDEABC::LdapConfigWidget::W_PORT |
|
||||
TDEABC::LdapConfigWidget::W_USER |
|
||||
TDEABC::LdapConfigWidget::W_PASS |
|
||||
TDEABC::LdapConfigWidget::W_BINDDN |
|
||||
TDEABC::LdapConfigWidget::W_DN |
|
||||
TDEABC::LdapConfigWidget::W_FILTER |
|
||||
TDEABC::LdapConfigWidget::W_AUTHBOX, this );
|
||||
|
||||
mKeyAttribute = new KLineEdit( this );
|
||||
mSearchScope = new KComboBox( this );
|
||||
mEncryption = new TQCheckBox( i18n( "Use encryption" ), this );
|
||||
mReadLdap = new TQCheckBox( i18n( "Load data from LDAP" ), this );
|
||||
mWriteLdap = new TQCheckBox( i18n( "Save data to LDAP" ), this );
|
||||
|
||||
layout->addMultiCellWidget( mLdapWidget, 0, 9, 0, 3 );
|
||||
layout->addWidget( new TQLabel( i18n( "Key Attribute:" ), this ), 10, 0 );
|
||||
layout->addMultiCellWidget( mKeyAttribute, 10, 10, 1, 2 );
|
||||
layout->addWidget( new TQLabel( i18n( "Search Scope:" ), this ), 11, 0 );
|
||||
layout->addMultiCellWidget( mSearchScope, 11, 11, 1, 2 );
|
||||
layout->addWidget( mEncryption, 12, 0 );
|
||||
layout->addWidget( mReadLdap, 13, 0 );
|
||||
layout->addWidget( mWriteLdap, 13, 3 );
|
||||
|
||||
}
|
||||
|
||||
#include "configguildap.moc"
|
@ -1,61 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2007 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#ifndef CONFIGGUILDAP_H
|
||||
#define CONFIGGUILDAP_H
|
||||
|
||||
#include "configgui.h"
|
||||
#include "tdeabc/ldapconfigwidget.h"
|
||||
|
||||
class TQCheckBox;
|
||||
class TQLabel;
|
||||
class TQSpinBox;
|
||||
|
||||
namespace TDEABC {
|
||||
class LdapConfigWidget;
|
||||
}
|
||||
class KComboBox;
|
||||
class KLineEdit;
|
||||
|
||||
class ConfigGuiLdap : public ConfigGui
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
ConfigGuiLdap( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString &xml );
|
||||
TQString save() const;
|
||||
|
||||
private:
|
||||
void initGUI();
|
||||
|
||||
TDEABC::LdapConfigWidget *mLdapWidget;
|
||||
KLineEdit *mKeyAttribute;
|
||||
KComboBox *mSearchScope;
|
||||
TQCheckBox *mEncryption;
|
||||
TQCheckBox *mReadLdap;
|
||||
TQCheckBox *mWriteLdap;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
@ -1,71 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configguimoto.h"
|
||||
|
||||
#include <tqdom.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
|
||||
#include <klineedit.h>
|
||||
#include <kdialog.h>
|
||||
#include <tdelocale.h>
|
||||
|
||||
ConfigGuiMoto::ConfigGuiMoto( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
initGUI();
|
||||
}
|
||||
|
||||
void ConfigGuiMoto::load( const TQString &xml )
|
||||
{
|
||||
TQDomDocument doc;
|
||||
doc.setContent( xml );
|
||||
TQDomElement docElement = doc.documentElement();
|
||||
TQDomNode node;
|
||||
for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
||||
TQDomElement element = node.toElement();
|
||||
if ( element.tagName() == "device" ) {
|
||||
mDeviceString->setText( element.text() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString ConfigGuiMoto::save() const
|
||||
{
|
||||
TQString config = "<config>\n";
|
||||
|
||||
config += TQString( "<device>%1</device>\n" ).arg( mDeviceString->text() );
|
||||
|
||||
config += "</config>";
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
void ConfigGuiMoto::initGUI()
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( topLayout(), 12, 3, KDialog::spacingHint() );
|
||||
layout->setMargin( KDialog::marginHint() );
|
||||
|
||||
layout->addWidget( new TQLabel( i18n( "Device String:" ), this ), 0, 0 );
|
||||
mDeviceString = new KLineEdit( this );
|
||||
layout->addMultiCellWidget( mDeviceString, 0, 0, 1, 2 );
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#ifndef CONFIGGUIMOTO_H
|
||||
#define CONFIGGUIMOTO_H
|
||||
|
||||
#include "configgui.h"
|
||||
|
||||
class KLineEdit;
|
||||
|
||||
class ConfigGuiMoto : public ConfigGui
|
||||
{
|
||||
public:
|
||||
ConfigGuiMoto( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString &xml );
|
||||
TQString save() const;
|
||||
|
||||
private:
|
||||
void initGUI();
|
||||
|
||||
KLineEdit *mDeviceString;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,135 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2006 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configguiopie.h"
|
||||
|
||||
#include <tdelocale.h>
|
||||
|
||||
#include <tqcombobox.h>
|
||||
#include <tqdom.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqlineedit.h>
|
||||
#include <tqspinbox.h>
|
||||
|
||||
ConfigGuiOpie::ConfigGuiOpie( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( topLayout() );
|
||||
|
||||
TQLabel *label = new TQLabel( i18n("Device IP:"), this );
|
||||
layout->addWidget( label, 0, 0 );
|
||||
|
||||
mDeviceIP = new TQLineEdit( this );
|
||||
mDeviceIP->setInputMask( "000.000.000.000" );
|
||||
label->setBuddy( mDeviceIP );
|
||||
layout->addWidget( mDeviceIP, 0, 1 );
|
||||
|
||||
label = new TQLabel( i18n("Device Type:"), this );
|
||||
layout->addWidget( label, 1, 0 );
|
||||
|
||||
mDeviceType = new TQComboBox( this );
|
||||
label->setBuddy( mDeviceType );
|
||||
layout->addWidget( mDeviceType, 1, 1 );
|
||||
|
||||
label = new TQLabel( i18n("Username:"), this );
|
||||
layout->addWidget( label, 2, 0 );
|
||||
|
||||
mUserName = new TQLineEdit( this );
|
||||
label->setBuddy( mUserName );
|
||||
layout->addWidget( mUserName, 2, 1 );
|
||||
|
||||
label = new TQLabel( i18n("Password:"), this );
|
||||
layout->addWidget( label, 3, 0 );
|
||||
|
||||
mPassword = new TQLineEdit( this );
|
||||
mPassword->setEchoMode( TQLineEdit::Password );
|
||||
label->setBuddy( mPassword );
|
||||
layout->addWidget( mPassword, 3, 1 );
|
||||
|
||||
label = new TQLabel( i18n("Protocol:"), this );
|
||||
layout->addWidget( label, 4, 0 );
|
||||
|
||||
mConnectionType = new TQComboBox( this );
|
||||
label->setBuddy( mConnectionType );
|
||||
layout->addWidget( mConnectionType, 4, 1 );
|
||||
|
||||
label = new TQLabel( i18n("Port:"), this );
|
||||
layout->addWidget( label, 5, 0 );
|
||||
|
||||
mPort = new TQSpinBox( this );
|
||||
mPort->setRange( 0, 65335 );
|
||||
label->setBuddy( mPort );
|
||||
layout->addWidget( mPort, 5, 1 );
|
||||
|
||||
mDeviceType->insertItem( i18n("Opie/OpenZaurus") );
|
||||
mDeviceType->insertItem( i18n("TQtopia2") );
|
||||
|
||||
mConnectionType->insertItem( i18n("SCP") );
|
||||
mConnectionType->insertItem( i18n("FTP") );
|
||||
|
||||
topLayout()->addStretch( 1 );
|
||||
}
|
||||
|
||||
void ConfigGuiOpie::load( const TQString &xml )
|
||||
{
|
||||
TQDomDocument doc;
|
||||
doc.setContent( xml );
|
||||
TQDomElement docElement = doc.documentElement();
|
||||
TQDomNode n;
|
||||
for( n = docElement.firstChild(); !n.isNull(); n = n.nextSibling() ) {
|
||||
TQDomElement e = n.toElement();
|
||||
if ( e.tagName() == "username" ) {
|
||||
mUserName->setText( e.text() );
|
||||
} else if ( e.tagName() == "password" ) {
|
||||
mPassword->setText( e.text() );
|
||||
} else if ( e.tagName() == "url" ) {
|
||||
mDeviceIP->setText( e.text() );
|
||||
} else if ( e.tagName() == "port" ) {
|
||||
mPort->setValue( e.text().toInt() );
|
||||
} else if ( e.tagName() == "device" ) {
|
||||
if ( e.text() == "opie" )
|
||||
mDeviceType->setCurrentItem( 0 );
|
||||
else
|
||||
mDeviceType->setCurrentItem( 1 );
|
||||
} else if ( e.tagName() == "conntype" ) {
|
||||
if ( e.text() == "scp" )
|
||||
mConnectionType->setCurrentItem( 0 );
|
||||
else
|
||||
mConnectionType->setCurrentItem( 1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString ConfigGuiOpie::save() const
|
||||
{
|
||||
TQString xml;
|
||||
xml = "<config>";
|
||||
xml += "<username>" + mUserName->text() + "</username>";
|
||||
xml += "<password>" + mPassword->text() + "</password>";
|
||||
xml += "<url>" + mDeviceIP->text() + "</url>";
|
||||
xml += "<device>" + TQString( mDeviceType->currentItem() == 0 ? "opie" : "qtopia2" ) + "</device>";
|
||||
xml += "<port>" + TQString::number( mPort->value() ) + "</port>";
|
||||
xml += "<conntype>" + TQString( mConnectionType->currentItem() == 0 ? "scp" : "ftp" ) + "</conntype>";
|
||||
xml += "</config>";
|
||||
|
||||
return xml;
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2006 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
#ifndef CONFIGGUIOPIE_H
|
||||
#define CONFIGGUIOPIE_H
|
||||
|
||||
#include "configgui.h"
|
||||
|
||||
class TQComboBox;
|
||||
class TQLineEdit;
|
||||
class TQSpinBox;
|
||||
|
||||
class ConfigGuiOpie : public ConfigGui
|
||||
{
|
||||
public:
|
||||
ConfigGuiOpie( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString &xml );
|
||||
TQString save() const;
|
||||
|
||||
private:
|
||||
TQLineEdit *mDeviceIP;
|
||||
TQComboBox *mDeviceType;
|
||||
TQLineEdit *mUserName;
|
||||
TQLineEdit *mPassword;
|
||||
TQComboBox *mConnectionType;
|
||||
TQSpinBox *mPort;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,200 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include <kcombobox.h>
|
||||
#include <kdialog.h>
|
||||
#include <klineedit.h>
|
||||
#include <tdelocale.h>
|
||||
|
||||
#include <tqbuttongroup.h>
|
||||
#include <tqcheckbox.h>
|
||||
#include <tqdom.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqradiobutton.h>
|
||||
#include <tqspinbox.h>
|
||||
#include <tqtabwidget.h>
|
||||
|
||||
#include "configguipalm.h"
|
||||
|
||||
ConfigGuiPalm::ConfigGuiPalm( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
initGUI();
|
||||
|
||||
mDevice->insertItem( "/dev/pilot" );
|
||||
mDevice->insertItem( "/dev/ttyUSB0" );
|
||||
mDevice->insertItem( "/dev/ttyUSB1" );
|
||||
mDevice->insertItem( "/dev/ttyUSB2" );
|
||||
mDevice->insertItem( "/dev/ttyUSB3" );
|
||||
|
||||
mSpeed->insertItem( "9600" );
|
||||
mSpeed->insertItem( "19200" );
|
||||
mSpeed->insertItem( "38400" );
|
||||
mSpeed->insertItem( "57600" );
|
||||
mSpeed->insertItem( "115200" );
|
||||
}
|
||||
|
||||
void ConfigGuiPalm::load( const TQString &xml )
|
||||
{
|
||||
TQDomDocument doc;
|
||||
doc.setContent( xml );
|
||||
TQDomElement docElement = doc.documentElement();
|
||||
TQDomNode node;
|
||||
for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
||||
TQDomElement element = node.toElement();
|
||||
if ( element.tagName() == "sockaddr" ) {
|
||||
mDevice->setCurrentText( element.text() );
|
||||
} else if ( element.tagName() == "speed" ) {
|
||||
mSpeed->setCurrentText( element.text() );
|
||||
} else if ( element.tagName() == "timeout" ) {
|
||||
mTimeout->setValue( element.text().toInt() );
|
||||
} else if ( element.tagName() == "username" ) {
|
||||
mUserName->setText( element.text() );
|
||||
} else if ( element.tagName() == "mismatch" ) {
|
||||
switch ( element.text().toInt() ) {
|
||||
case 0:
|
||||
mSyncAlways->setChecked( true );
|
||||
break;
|
||||
case 2:
|
||||
mSyncAbort->setChecked( true );
|
||||
break;
|
||||
case 1:
|
||||
default:
|
||||
mSyncAsk->setChecked( true );
|
||||
break;
|
||||
}
|
||||
} else if ( element.tagName() == "popup" ) {
|
||||
mPopup->setChecked( element.text() == "1" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString ConfigGuiPalm::save() const
|
||||
{
|
||||
TQString config = "<config>";
|
||||
|
||||
config += "<sockaddr>" + mDevice->currentText() + "</sockaddr>";
|
||||
config += "<username>" + mUserName->text() + "</username>";
|
||||
config += "<timeout>" + TQString::number( mTimeout->value() ) + "</timeout>";
|
||||
config += "<type>0</type>";
|
||||
config += "<speed>" + mSpeed->currentText() + "</speed>";
|
||||
config += "<id>0</id>";
|
||||
config += "<codepage>cp1252</codepage>";
|
||||
config += "<popup>" + TQString( mPopup->isChecked() ? "1" : "0" ) + "</popup>";
|
||||
|
||||
TQString popup;
|
||||
if ( mSyncAlways->isChecked() )
|
||||
popup = "0";
|
||||
else if ( mSyncAsk->isChecked() )
|
||||
popup = "1";
|
||||
else if ( mSyncAbort->isChecked() )
|
||||
popup = "2";
|
||||
|
||||
config += "<mismatch>" + popup + "</mismatch>";
|
||||
|
||||
config += "</config>";
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
void ConfigGuiPalm::initGUI()
|
||||
{
|
||||
TQFont boldFont = font();
|
||||
boldFont.setBold( true );
|
||||
|
||||
TQTabWidget *tabWidget = new TQTabWidget( this );
|
||||
|
||||
TQWidget *connectionWidget = new TQWidget( tabWidget );
|
||||
TQVBoxLayout *connectionLayout = new TQVBoxLayout( connectionWidget,
|
||||
KDialog::marginHint(), KDialog::spacingHint() );
|
||||
|
||||
TQLabel *label = new TQLabel( i18n( "Connection" ), connectionWidget );
|
||||
label->setFont( boldFont );
|
||||
connectionLayout->addWidget( label );
|
||||
|
||||
TQGridLayout *gridLayout = new TQGridLayout( connectionLayout, 3, 2, KDialog::spacingHint() );
|
||||
gridLayout->setMargin( KDialog::marginHint() );
|
||||
|
||||
gridLayout->addWidget( new TQLabel( i18n( "Port:" ), connectionWidget ), 0, 0 );
|
||||
gridLayout->addWidget( new TQLabel( i18n( "Speed:" ), connectionWidget ), 1, 0 );
|
||||
gridLayout->addWidget( new TQLabel( i18n( "Timeout:" ), connectionWidget ), 2, 0 );
|
||||
|
||||
mDevice = new KComboBox( true, connectionWidget );
|
||||
mSpeed = new KComboBox( connectionWidget );
|
||||
mTimeout = new TQSpinBox( 1, 60, 1, connectionWidget );
|
||||
mTimeout->setSuffix( i18n( " sec" ) );
|
||||
|
||||
gridLayout->addWidget( mDevice, 0, 1 );
|
||||
gridLayout->addWidget( mSpeed, 1, 1 );
|
||||
gridLayout->addWidget( mTimeout, 2, 1 );
|
||||
gridLayout->setColStretch( 1, 1 );
|
||||
|
||||
label = new TQLabel( i18n( "User" ), connectionWidget );
|
||||
label->setFont( boldFont );
|
||||
connectionLayout->addWidget( label );
|
||||
|
||||
gridLayout = new TQGridLayout( connectionLayout, 1, 2, KDialog::spacingHint() );
|
||||
gridLayout->setMargin( KDialog::marginHint() );
|
||||
|
||||
gridLayout->addWidget( new TQLabel( i18n( "Username:" ), connectionWidget ), 0, 0 );
|
||||
|
||||
mUserName = new KLineEdit( connectionWidget );
|
||||
gridLayout->addWidget( mUserName, 0, 1 );
|
||||
|
||||
label = new TQLabel( i18n( "What to do if Username does not match" ), connectionWidget );
|
||||
label->setFont( boldFont );
|
||||
connectionLayout->addWidget( label );
|
||||
|
||||
gridLayout = new TQGridLayout( connectionLayout, 1, 2, KDialog::spacingHint() );
|
||||
gridLayout->setMargin( KDialog::marginHint() );
|
||||
|
||||
TQButtonGroup *buttonGroup = new TQButtonGroup( 1, Qt::Horizontal, connectionWidget );
|
||||
buttonGroup->setExclusive( true );
|
||||
buttonGroup->setFrameStyle( TQFrame::NoFrame );
|
||||
mSyncAlways = new TQRadioButton( i18n( "Sync Anyway" ), buttonGroup );
|
||||
mSyncAsk = new TQRadioButton( i18n( "Ask What To Do" ), buttonGroup );
|
||||
mSyncAbort = new TQRadioButton( i18n( "Abort Sync" ), buttonGroup );
|
||||
|
||||
gridLayout->addMultiCellWidget( buttonGroup, 0, 0, 0, 1 );
|
||||
|
||||
connectionLayout->addStretch( 1 );
|
||||
tabWidget->addTab( connectionWidget, i18n( "Connection" ) );
|
||||
|
||||
TQWidget *optionWidget = new TQWidget( tabWidget );
|
||||
TQVBoxLayout *optionLayout = new TQVBoxLayout( optionWidget,
|
||||
KDialog::marginHint(), KDialog::spacingHint() );
|
||||
|
||||
label = new TQLabel( i18n( "Hotsync Notification" ), optionWidget );
|
||||
label->setFont( boldFont );
|
||||
optionLayout->addWidget( label );
|
||||
|
||||
gridLayout = new TQGridLayout( optionLayout, 1, 2, KDialog::spacingHint() );
|
||||
gridLayout->setMargin( KDialog::marginHint() );
|
||||
|
||||
mPopup = new TQCheckBox( i18n( "Popup when interaction is required" ), optionWidget );
|
||||
gridLayout->addMultiCellWidget( mPopup, 0, 0, 0, 1 );
|
||||
|
||||
optionLayout->addStretch( 1 );
|
||||
tabWidget->addTab( optionWidget, i18n( "Options" ) );
|
||||
|
||||
topLayout()->addWidget( tabWidget );
|
||||
}
|
@ -1,59 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#ifndef CONFIGGUIPALM_H
|
||||
#define CONFIGGUIPALM_H
|
||||
|
||||
#include "configgui.h"
|
||||
|
||||
class KComboBox;
|
||||
class KLineEdit;
|
||||
class TQCheckBox;
|
||||
class TQRadioButton;
|
||||
class TQSpinBox;
|
||||
|
||||
class ConfigGuiPalm : public ConfigGui
|
||||
{
|
||||
public:
|
||||
ConfigGuiPalm( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString &xml );
|
||||
TQString save() const;
|
||||
|
||||
private:
|
||||
void initGUI();
|
||||
|
||||
KComboBox *mDevice;
|
||||
KComboBox *mSpeed;
|
||||
TQSpinBox *mTimeout;
|
||||
|
||||
KLineEdit *mUserName;
|
||||
|
||||
TQRadioButton *mSyncAlways;
|
||||
TQRadioButton *mSyncAsk;
|
||||
TQRadioButton *mSyncAbort;
|
||||
|
||||
TQCheckBox *mPopup;
|
||||
KComboBox *mVerbosity;
|
||||
KComboBox *mCodePage;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,367 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2007 Tobias Koenig <tokoe@kde.org>
|
||||
Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configguisunbird.h"
|
||||
|
||||
#include <tqdom.h>
|
||||
#include <tqtabwidget.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqbuttongroup.h>
|
||||
#include <tqcheckbox.h>
|
||||
#include <tqsizepolicy.h>
|
||||
#include <tqptrlist.h>
|
||||
#include <tqspinbox.h>
|
||||
#include <tqwidget.h>
|
||||
|
||||
#include <kurlrequester.h>
|
||||
#include <klineedit.h>
|
||||
#include <kpushbutton.h>
|
||||
#include <kdialog.h>
|
||||
#include <tdelocale.h>
|
||||
#include <tdefile.h>
|
||||
|
||||
ConfigGuiSunbird::ConfigGuiSunbird( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
TQTabWidget *tabWidget = new TQTabWidget( this );
|
||||
topLayout()->addWidget( tabWidget );
|
||||
|
||||
mLocalWidget = new TQWidget( tabWidget );
|
||||
mLocalLayout = new TQVBoxLayout( mLocalWidget, KDialog::spacingHint() );
|
||||
|
||||
mWebdavWidget = new TQWidget( tabWidget );
|
||||
mWebdavLayout = new TQVBoxLayout( mWebdavWidget, KDialog::spacingHint() );
|
||||
|
||||
tabWidget->addTab( mLocalWidget, i18n( "Local Calendars" ) );
|
||||
tabWidget->addTab( mWebdavWidget, i18n( "WebDAV Calendars" ) );
|
||||
|
||||
KPushButton *mLocalAddButton = new KPushButton( mLocalWidget );
|
||||
mLocalAddButton->setText( i18n( "Add new calendar" ) );
|
||||
mLocalAddButton->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
|
||||
mLocalLayout->addWidget( mLocalAddButton );
|
||||
connect( mLocalAddButton, TQT_SIGNAL( clicked() ),
|
||||
this, TQT_SLOT( addLocalCalendar() ) );
|
||||
|
||||
KPushButton *mWebdavAddButton = new KPushButton( mWebdavWidget );
|
||||
mWebdavAddButton->setText( i18n( "Add new calendar" ) );
|
||||
mWebdavAddButton->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
|
||||
mWebdavLayout->addWidget( mWebdavAddButton );
|
||||
connect( mWebdavAddButton, TQT_SIGNAL( clicked() ),
|
||||
this, TQT_SLOT( addWebdavCalendar() ) );
|
||||
|
||||
mLocalSpacer = new TQSpacerItem( 20, 40, TQSizePolicy::Expanding );
|
||||
mLocalLayout->addItem( mLocalSpacer );
|
||||
mWebdavSpacer = new TQSpacerItem( 20, 40, TQSizePolicy::Expanding );
|
||||
mWebdavLayout->addItem( mWebdavSpacer );
|
||||
}
|
||||
|
||||
void ConfigGuiSunbird::load( const TQString &xml )
|
||||
{
|
||||
TQString path;
|
||||
TQString url;
|
||||
TQString username;
|
||||
TQString password;
|
||||
TQString defaultcal;
|
||||
TQString days;
|
||||
|
||||
TQDomDocument doc;
|
||||
doc.setContent( xml );
|
||||
TQDomElement docElement = doc.documentElement();
|
||||
TQDomNode node;
|
||||
for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
||||
TQDomElement element = node.toElement();
|
||||
if ( element.tagName() == "file" ) {
|
||||
TQDomAttr pathAttr = element.attributeNode( "path" );
|
||||
path = pathAttr.value();
|
||||
TQDomAttr defaultAttr = element.attributeNode( "default" );
|
||||
defaultcal = defaultAttr.value();
|
||||
TQDomAttr daysAttr = element.attributeNode( "deletedaysold" );
|
||||
days = daysAttr.value();
|
||||
|
||||
LocalCalendar *cal = new LocalCalendar( path, defaultcal, days, mLocalWidget );
|
||||
mLocalLayout->removeItem( mLocalSpacer );
|
||||
cal->setSizePolicy( TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Fixed ) );
|
||||
mLocalLayout->addWidget( cal );
|
||||
mLocalLayout->addItem( mLocalSpacer );
|
||||
mLocalList.append( cal );
|
||||
|
||||
connect( cal, TQT_SIGNAL( deleteRequest( LocalCalendar* ) ), TQT_SLOT( delLocalCalendar( LocalCalendar* ) ) );
|
||||
cal->show();
|
||||
} else if ( element.tagName() == "webdav" ) {
|
||||
TQDomAttr urlAttr = element.attributeNode( "url" );
|
||||
url = urlAttr.value();
|
||||
TQDomAttr unameAttr = element.attributeNode( "username" );
|
||||
username = unameAttr.value();
|
||||
TQDomAttr pwordAttr = element.attributeNode( "password" );
|
||||
password = pwordAttr.value();
|
||||
TQDomAttr defaultAttr = element.attributeNode( "default" );
|
||||
defaultcal = defaultAttr.value();
|
||||
TQDomAttr daysAttr = element.attributeNode( "deletedaysold" );
|
||||
days = daysAttr.value();
|
||||
|
||||
WebdavCalendar *cal = new WebdavCalendar( username, password,
|
||||
url, defaultcal, days, mWebdavWidget );
|
||||
mWebdavLayout->removeItem( mWebdavSpacer );
|
||||
cal->setSizePolicy( TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Fixed ) );
|
||||
mWebdavLayout->addWidget( cal );
|
||||
mWebdavLayout->addItem( mWebdavSpacer );
|
||||
mWebdavList.append( cal );
|
||||
|
||||
connect( cal, TQT_SIGNAL( deleteRequest( WebdavCalendar* ) ), TQT_SLOT( delWebdavCalendar( WebdavCalendar* ) ) );
|
||||
cal->show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString ConfigGuiSunbird::save() const
|
||||
{
|
||||
TQString config = "<config>\n";
|
||||
|
||||
for ( uint i = 0; i < mLocalList.count(); ++i ) {
|
||||
LocalCalendar *lcal = mLocalList[ i ];
|
||||
config += TQString( "<file " );
|
||||
config += TQString( "path=\"%1\" " ).arg( lcal->mPathRequester->url() );
|
||||
|
||||
if ( lcal->mDaysCheckBox->isChecked() ) {
|
||||
config += TQString( "deletedaysold=\"%1\" " ).arg( lcal->mDaysSpinBox->value() );
|
||||
}
|
||||
if ( lcal->mDefaultCheckBox->isChecked() ) {
|
||||
config += TQString( "default=\"1\" " );
|
||||
}
|
||||
config += TQString( "/>\n" );
|
||||
}
|
||||
|
||||
for ( uint i = 0; i < mWebdavList.count(); ++i ) {
|
||||
WebdavCalendar *wcal = mWebdavList[ i ];
|
||||
config += TQString( "<webdav " );
|
||||
config += TQString( "username=\"%1\" " ).arg( wcal->mUsername->text() );
|
||||
config += TQString( "password=\"%1\" " ).arg( wcal->mPassword->text() );
|
||||
config += TQString( "url=\"%1\" " ).arg( wcal->mUrl->text() );
|
||||
|
||||
if ( wcal->mDaysCheckBox->isChecked() ) {
|
||||
config += TQString( "deletedaysold=\"%1\" " ).arg( wcal->mDaysSpinBox->value() );
|
||||
}
|
||||
if ( wcal->mDefaultCheckBox->isChecked() ) {
|
||||
config += TQString( "default=\"1\" " );
|
||||
}
|
||||
config += TQString( "/>\n" );
|
||||
}
|
||||
config += "</config>";
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
void ConfigGuiSunbird::addLocalCalendar()
|
||||
{
|
||||
LocalCalendar *cal = new LocalCalendar( mLocalWidget );
|
||||
mLocalLayout->removeItem( mLocalSpacer );
|
||||
cal->setSizePolicy( TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Fixed ) );
|
||||
mLocalLayout->addWidget( cal );
|
||||
mLocalLayout->addItem( mLocalSpacer );
|
||||
mLocalList.append( cal );
|
||||
|
||||
connect( cal, TQT_SIGNAL( deleteRequest( LocalCalendar* ) ), TQT_SLOT( delLocalCalendar( LocalCalendar* ) ) );
|
||||
cal->show();
|
||||
}
|
||||
|
||||
void ConfigGuiSunbird::delLocalCalendar( LocalCalendar *calendar )
|
||||
{
|
||||
mLocalList.remove( calendar );
|
||||
calendar->deleteLater();
|
||||
}
|
||||
|
||||
void ConfigGuiSunbird::addWebdavCalendar()
|
||||
{
|
||||
WebdavCalendar *cal = new WebdavCalendar( mWebdavWidget );
|
||||
mWebdavLayout->removeItem( mWebdavSpacer );
|
||||
cal->setSizePolicy( TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Fixed ) );
|
||||
mWebdavLayout->addWidget( cal );
|
||||
mWebdavLayout->addItem( mWebdavSpacer );
|
||||
mWebdavList.append( cal );
|
||||
|
||||
connect( cal, TQT_SIGNAL( deleteRequest( WebdavCalendar* ) ), TQT_SLOT( delWebdavCalendar( WebdavCalendar* ) ) );
|
||||
cal->show();
|
||||
}
|
||||
|
||||
void ConfigGuiSunbird::delWebdavCalendar( WebdavCalendar *calendar )
|
||||
{
|
||||
mWebdavList.remove( calendar );
|
||||
calendar->deleteLater();
|
||||
}
|
||||
|
||||
LocalCalendar::LocalCalendar( TQWidget *parent )
|
||||
: TQWidget( parent )
|
||||
{
|
||||
initGui();
|
||||
}
|
||||
|
||||
LocalCalendar::LocalCalendar( const TQString &path, const TQString &defaultcal, const TQString &days, TQWidget *parent )
|
||||
: TQWidget( parent )
|
||||
{
|
||||
initGui();
|
||||
|
||||
mPathRequester->setURL( path );
|
||||
mDefaultCheckBox->setChecked( defaultcal.toInt() == 1 );
|
||||
|
||||
if ( !days.isEmpty() ) {
|
||||
mDaysCheckBox->setChecked( true );
|
||||
mDaysSpinBox->setEnabled( true );
|
||||
mDaysSpinBox->setValue( days.toInt() );
|
||||
}
|
||||
}
|
||||
|
||||
void LocalCalendar::initGui()
|
||||
{
|
||||
TQBoxLayout *bottomLayout = new TQHBoxLayout();
|
||||
|
||||
mDaysCheckBox = new TQCheckBox( this );
|
||||
mDaysCheckBox->setText( i18n( "Sync only events newer than" ) );
|
||||
|
||||
mDaysSpinBox = new TQSpinBox( this );
|
||||
mDaysSpinBox->setDisabled( true );
|
||||
mDaysSpinBox->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
|
||||
|
||||
connect( mDaysCheckBox, TQT_SIGNAL( toggled( bool ) ),
|
||||
this, TQT_SLOT( toggleDays( bool ) ) );
|
||||
|
||||
bottomLayout->addWidget( mDaysCheckBox );
|
||||
bottomLayout->addWidget( mDaysSpinBox );
|
||||
bottomLayout->addWidget( new TQLabel( i18n( "day(s)" ), this ) );
|
||||
|
||||
TQGridLayout *localLayout = new TQGridLayout( this );
|
||||
|
||||
mPathRequester = new KURLRequester( this );
|
||||
|
||||
KPushButton *removeButton = new KPushButton( this );
|
||||
removeButton->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
|
||||
removeButton->setText( i18n( "Remove" ) );
|
||||
connect( removeButton, TQT_SIGNAL( clicked() ),
|
||||
this, TQT_SLOT( deleteWidget() ) );
|
||||
|
||||
mDefaultCheckBox = new TQCheckBox( this );
|
||||
mDefaultCheckBox->setText( i18n( "Set as Default" ) );
|
||||
|
||||
localLayout->addItem( new TQSpacerItem( 40, 20, TQSizePolicy::Expanding ), 0, 0 );
|
||||
localLayout->addWidget( new TQLabel( i18n( "Location:" ), this ), 1, 0 );
|
||||
localLayout->addWidget( mPathRequester, 1, 1 );
|
||||
localLayout->addItem( new TQSpacerItem( 40, 20, TQSizePolicy::Fixed ), 1, 2 );
|
||||
localLayout->addWidget( removeButton, 1, 3 );
|
||||
localLayout->addMultiCellLayout( bottomLayout, 2, 2, 0, 2 );
|
||||
localLayout->addWidget( mDefaultCheckBox, 2, 3 );
|
||||
}
|
||||
|
||||
void LocalCalendar::deleteWidget()
|
||||
{
|
||||
emit deleteRequest( this );
|
||||
}
|
||||
|
||||
WebdavCalendar::WebdavCalendar( TQWidget *parent )
|
||||
: TQWidget( parent )
|
||||
{
|
||||
initGui();
|
||||
};
|
||||
|
||||
WebdavCalendar::WebdavCalendar( const TQString &username, const TQString &password, const TQString &url,
|
||||
const TQString &defaultcal, const TQString &days, TQWidget *parent )
|
||||
: TQWidget( parent )
|
||||
{
|
||||
initGui();
|
||||
|
||||
mUsername->setText( username );
|
||||
mPassword->setText( password );
|
||||
mUrl->setText( url );
|
||||
mDefaultCheckBox->setChecked( defaultcal.toInt() == 1 );
|
||||
|
||||
if ( !days.isEmpty() ) {
|
||||
mDaysCheckBox->setChecked( true );
|
||||
mDaysSpinBox->setEnabled( true );
|
||||
mDaysSpinBox->setValue( days.toInt() );
|
||||
}
|
||||
}
|
||||
|
||||
void WebdavCalendar::initGui()
|
||||
{
|
||||
TQBoxLayout *bottomLayout = new TQHBoxLayout();
|
||||
|
||||
mDaysCheckBox = new TQCheckBox( this );
|
||||
mDaysCheckBox->setText( i18n( "Sync only events newer than" ) );
|
||||
|
||||
mDaysSpinBox = new TQSpinBox( this );
|
||||
mDaysSpinBox->setDisabled( true );
|
||||
mDaysSpinBox->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
|
||||
|
||||
connect( mDaysCheckBox, TQT_SIGNAL( toggled( bool ) ),
|
||||
this, TQT_SLOT( toggleDays( bool ) ) );
|
||||
|
||||
bottomLayout->addWidget( mDaysCheckBox );
|
||||
bottomLayout->addWidget( mDaysSpinBox );
|
||||
bottomLayout->addWidget( new TQLabel( i18n( "day(s)" ), this ) );
|
||||
|
||||
TQGridLayout *webdavLayout = new TQGridLayout();
|
||||
|
||||
mUrl = new KLineEdit( this );
|
||||
mUsername = new KLineEdit( this );
|
||||
mPassword = new KLineEdit( this );
|
||||
mPassword->setEchoMode( KLineEdit::Password );
|
||||
|
||||
KPushButton *removeButton = new KPushButton( this );
|
||||
removeButton->setText( i18n( "Remove" ) );
|
||||
connect( removeButton, TQT_SIGNAL( clicked() ),
|
||||
this, TQT_SLOT( deleteWidget() ) );
|
||||
|
||||
mDefaultCheckBox = new TQCheckBox( this );
|
||||
mDefaultCheckBox->setText( i18n( "Set as Default" ) );
|
||||
|
||||
webdavLayout->addWidget( new TQLabel( i18n( "Location:" ), this ), 0, 0 );
|
||||
webdavLayout->addWidget( mUrl, 0, 1 );
|
||||
webdavLayout->addItem( new TQSpacerItem( 40, 20, TQSizePolicy::Fixed ), 0, 2 );
|
||||
webdavLayout->addWidget( removeButton, 0, 3 );
|
||||
webdavLayout->addMultiCellLayout( bottomLayout, 1, 1, 0, 1 );
|
||||
webdavLayout->addWidget( mDefaultCheckBox, 1, 3 );
|
||||
|
||||
TQGridLayout *mainLayout = new TQGridLayout( this );
|
||||
mainLayout->addItem( new TQSpacerItem( 40, 20, TQSizePolicy::Fixed ), 0, 0 );
|
||||
mainLayout->addMultiCellLayout( webdavLayout, 1, 1, 0, 4 );
|
||||
mainLayout->addWidget( new TQLabel( i18n( "Username:" ), this ), 2, 0 );
|
||||
mainLayout->addWidget( mUsername, 2, 1 );
|
||||
mainLayout->addItem( new TQSpacerItem( 40, 20, TQSizePolicy::Fixed ), 2, 2 );
|
||||
mainLayout->addWidget( new TQLabel( i18n( "Password:" ), this ), 2, 3 );
|
||||
mainLayout->addWidget( mPassword, 2, 4 );
|
||||
}
|
||||
|
||||
void WebdavCalendar::deleteWidget()
|
||||
{
|
||||
emit deleteRequest( this );
|
||||
}
|
||||
|
||||
void LocalCalendar::toggleDays( bool state )
|
||||
{
|
||||
mDaysSpinBox->setEnabled( state );
|
||||
}
|
||||
|
||||
void WebdavCalendar::toggleDays( bool state )
|
||||
{
|
||||
mDaysSpinBox->setEnabled( state );
|
||||
}
|
||||
|
||||
#include "configguisunbird.moc"
|
@ -1,133 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2007 Tobias Koenig <tokoe@kde.org>
|
||||
Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#ifndef CONFIGGUISUNBIRD_H
|
||||
#define CONFIGGUISUNBIRD_H
|
||||
|
||||
#include "configgui.h"
|
||||
|
||||
class TQWidget;
|
||||
class TQSpinBox;
|
||||
class TQCheckBox;
|
||||
class TQVBoxLayout;
|
||||
class TQSpacerItem;
|
||||
class TQSignalMapper;
|
||||
|
||||
class KURLRequester;
|
||||
class KPushButton;
|
||||
class KLineEdit;
|
||||
|
||||
class LocalCalendar : public TQWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
LocalCalendar( TQWidget *parent = 0 );
|
||||
LocalCalendar( const TQString &path,
|
||||
const TQString &defaultcal,
|
||||
const TQString &days, TQWidget *parent = 0 );
|
||||
|
||||
KURLRequester *mPathRequester;
|
||||
TQCheckBox *mDaysCheckBox;
|
||||
TQSpinBox *mDaysSpinBox;
|
||||
TQCheckBox *mDefaultCheckBox;
|
||||
|
||||
signals:
|
||||
void deleteRequest( LocalCalendar* );
|
||||
|
||||
private slots:
|
||||
void deleteWidget();
|
||||
void toggleDays( bool days );
|
||||
|
||||
private:
|
||||
void initGui();
|
||||
};
|
||||
|
||||
class WebdavCalendar : public TQWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
WebdavCalendar( TQWidget *parent = 0 );
|
||||
WebdavCalendar( const TQString &username,
|
||||
const TQString &password,
|
||||
const TQString &url,
|
||||
const TQString &defaultcal,
|
||||
const TQString &days, TQWidget *parent = 0 );
|
||||
|
||||
KLineEdit *mUrl;
|
||||
TQCheckBox *mDaysCheckBox;
|
||||
TQSpinBox *mDaysSpinBox;
|
||||
TQCheckBox *mDefaultCheckBox;
|
||||
KLineEdit *mUsername;
|
||||
KLineEdit *mPassword;
|
||||
|
||||
signals:
|
||||
void deleteRequest( WebdavCalendar* );
|
||||
|
||||
private slots:
|
||||
void deleteWidget();
|
||||
void toggleDays( bool state );
|
||||
|
||||
private:
|
||||
void initGui();
|
||||
};
|
||||
|
||||
class ConfigGuiSunbird : public ConfigGui
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
ConfigGuiSunbird( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString &xml );
|
||||
|
||||
TQString save() const;
|
||||
|
||||
public slots:
|
||||
void addLocalCalendar();
|
||||
void addWebdavCalendar();
|
||||
|
||||
void delLocalCalendar( LocalCalendar* );
|
||||
void delWebdavCalendar( WebdavCalendar* );
|
||||
|
||||
private:
|
||||
TQValueList<LocalCalendar*> mLocalList;
|
||||
TQValueList<WebdavCalendar*> mWebdavList;
|
||||
|
||||
TQWidget *mLocalWidget;
|
||||
TQWidget *mWebdavWidget;
|
||||
|
||||
TQVBoxLayout *mLocalLayout;
|
||||
TQVBoxLayout *mWebdavLayout;
|
||||
|
||||
KPushButton *mLocalAddButton;
|
||||
KPushButton *mWebdavAddButton;
|
||||
|
||||
TQSpacerItem *mLocalSpacer;
|
||||
TQSpacerItem *mWebdavSpacer;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,93 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configguisynce.h"
|
||||
|
||||
#include <tqdom.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqcheckbox.h>
|
||||
|
||||
#include <klineedit.h>
|
||||
#include <kdialog.h>
|
||||
#include <tdelocale.h>
|
||||
|
||||
ConfigGuiSynce::ConfigGuiSynce( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
initGUI();
|
||||
}
|
||||
|
||||
void ConfigGuiSynce::load( const TQString &xml )
|
||||
{
|
||||
TQDomDocument doc;
|
||||
doc.setContent( xml );
|
||||
TQDomElement docElement = doc.documentElement();
|
||||
TQDomNode node;
|
||||
for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
||||
TQDomElement element = node.toElement();
|
||||
if ( element.tagName() == "contact" ) {
|
||||
mContacts->setChecked( element.text().toInt() == 1 );
|
||||
} else if ( element.tagName() == "todos" ) {
|
||||
mTodos->setChecked( element.text().toInt() == 1 );
|
||||
} else if ( element.tagName() == "calendar" ) {
|
||||
mCalendar->setChecked( element.text().toInt() == 1 );
|
||||
} else if ( element.tagName() == "file" ) {
|
||||
mFile->setText( element.text() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString ConfigGuiSynce::save() const
|
||||
{
|
||||
TQString config = "<config>\n";
|
||||
|
||||
config += TQString( "<contact>%1</contact>\n" ).arg( mContacts->isChecked() ? "1" : "0" );
|
||||
config += TQString( "<todos>%1</todos>\n" ).arg( mTodos->isChecked() ? "1" : "0" );
|
||||
config += TQString( "<calendar>%1</calendar>\n" ).arg( mCalendar->isChecked() ? "1" : "0" );
|
||||
config += TQString( "<file>%1</file>\n" ).arg( mFile->text() );
|
||||
|
||||
config += "</config>";
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
void ConfigGuiSynce::initGUI()
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( topLayout(), 12, 2, KDialog::spacingHint() );
|
||||
layout->setMargin( KDialog::marginHint() );
|
||||
|
||||
mContacts = new TQCheckBox( this );
|
||||
mContacts->setText( "Sync Contacts" );
|
||||
layout->addMultiCellWidget( mContacts, 0, 0, 0, 1 );
|
||||
|
||||
mTodos = new TQCheckBox( this );
|
||||
mTodos->setText( "Sync \'Todo\' items" );
|
||||
layout->addMultiCellWidget( mTodos, 1, 1, 0, 1 );
|
||||
|
||||
mCalendar = new TQCheckBox( this );
|
||||
mCalendar->setText( "Sync Calendar" );
|
||||
layout->addMultiCellWidget( mCalendar, 2, 2, 0, 1 );
|
||||
|
||||
layout->addWidget( new TQLabel( i18n( "File:" ), this ), 3, 0 );
|
||||
mFile = new KLineEdit( this );
|
||||
layout->addWidget( mFile, 3, 1 );
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#ifndef CONFIGGUISYNCE_H
|
||||
#define CONFIGGUISYNCE_H
|
||||
|
||||
#include "configgui.h"
|
||||
|
||||
class TQCheckBox;
|
||||
|
||||
class KLineEdit;
|
||||
|
||||
class ConfigGuiSynce : public ConfigGui
|
||||
{
|
||||
public:
|
||||
ConfigGuiSynce( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString &xml );
|
||||
|
||||
TQString save() const;
|
||||
|
||||
private:
|
||||
void initGUI();
|
||||
|
||||
TQCheckBox *mContacts;
|
||||
TQCheckBox *mTodos;
|
||||
TQCheckBox *mCalendar;
|
||||
KLineEdit *mFile;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,227 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configguisyncmlhttp.h"
|
||||
|
||||
#include <kcombobox.h>
|
||||
#include <kdialog.h>
|
||||
#include <klineedit.h>
|
||||
#include <tdelocale.h>
|
||||
#include <kurlrequester.h>
|
||||
|
||||
#include <tqcheckbox.h>
|
||||
#include <tqdom.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqspinbox.h>
|
||||
#include <tqtabwidget.h>
|
||||
#include <tqvbox.h>
|
||||
|
||||
ConfigGuiSyncmlHttp::ConfigGuiSyncmlHttp( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent ), mUrl( 0 ), mPort( 0 )
|
||||
{
|
||||
|
||||
TQTabWidget *tabWidget = new TQTabWidget( this );
|
||||
topLayout()->addWidget( tabWidget );
|
||||
|
||||
// Connection
|
||||
TQWidget *connectionWidget = new TQWidget( tabWidget );
|
||||
TQVBoxLayout *connectionLayout = new TQVBoxLayout( connectionWidget,
|
||||
KDialog::marginHint(), KDialog::spacingHint() );
|
||||
|
||||
tabWidget->addTab( connectionWidget, i18n( "Connection" ) );
|
||||
|
||||
mGridLayout = new TQGridLayout( connectionLayout );
|
||||
|
||||
TQLabel *label = new TQLabel( i18n("Port:"), connectionWidget );
|
||||
mGridLayout->addWidget( label, 0, 0 );
|
||||
|
||||
mPort = new TQSpinBox( connectionWidget );
|
||||
mPort->setMinValue( 1 );
|
||||
mPort->setMaxValue( 65536 );
|
||||
mGridLayout->addWidget( mPort, 0, 1 );
|
||||
|
||||
// Database
|
||||
TQWidget *databaseWidget = new TQWidget( tabWidget );
|
||||
TQVBoxLayout *databaseLayout = new TQVBoxLayout( databaseWidget,
|
||||
KDialog::marginHint(), KDialog::spacingHint() );
|
||||
|
||||
tabWidget->addTab( databaseWidget, i18n( "Databases" ) );
|
||||
|
||||
mGridLayout = new TQGridLayout( databaseLayout );
|
||||
addLineEdit( databaseWidget, i18n("Contact Database:"), &mContactDb, 0 );
|
||||
addLineEdit( databaseWidget, i18n("Calendar Database:"), &mCalendarDb, 1 );
|
||||
addLineEdit( databaseWidget, i18n("Note Database:"), &mNoteDb, 2 );
|
||||
|
||||
mContactDb->insertItem( "addressbook" );
|
||||
mContactDb->insertItem( "contacts" );
|
||||
|
||||
mCalendarDb->insertItem( "agenda" );
|
||||
mCalendarDb->insertItem( "calendar" );
|
||||
|
||||
mNoteDb->insertItem( "notes" );
|
||||
|
||||
|
||||
// Options
|
||||
TQWidget *optionWidget = new TQWidget( tabWidget );
|
||||
TQVBoxLayout *optionLayout = new TQVBoxLayout( optionWidget,
|
||||
KDialog::marginHint(), KDialog::spacingHint() );
|
||||
|
||||
tabWidget->addTab( optionWidget, i18n( "Options" ) );
|
||||
|
||||
mGridLayout = new TQGridLayout( optionLayout );
|
||||
|
||||
label = new TQLabel( i18n("User name:"), optionWidget );
|
||||
mGridLayout->addWidget( label, 0, 0 );
|
||||
|
||||
mUsername = new KLineEdit( optionWidget );
|
||||
mGridLayout->addWidget( mUsername, 0, 1 );
|
||||
|
||||
label = new TQLabel( i18n("Password:"), optionWidget );
|
||||
mGridLayout->addWidget( label, 1, 0 );
|
||||
|
||||
mPassword = new KLineEdit( optionWidget );
|
||||
mPassword->setEchoMode( TQLineEdit::Password );
|
||||
mGridLayout->addWidget( mPassword, 1, 1 );
|
||||
|
||||
|
||||
mUseStringTable = new TQCheckBox( i18n("Use String Table"), optionWidget );
|
||||
mGridLayout->addMultiCellWidget( mUseStringTable, 2, 2, 0, 1 );
|
||||
|
||||
mOnlyReplace = new TQCheckBox( i18n("Only Replace Entries"), optionWidget );
|
||||
mGridLayout->addMultiCellWidget( mOnlyReplace, 3, 3, 0, 1 );
|
||||
|
||||
// Url
|
||||
label = new TQLabel( i18n("URL:"), optionWidget );
|
||||
mGridLayout->addWidget( label, 4, 0 );
|
||||
|
||||
mUrl = new KLineEdit( optionWidget );
|
||||
mGridLayout->addWidget( mUrl, 4, 1 );
|
||||
|
||||
// recvLimit
|
||||
label = new TQLabel( i18n("Receive Limit:"), optionWidget );
|
||||
mGridLayout->addWidget( label, 5, 0 );
|
||||
|
||||
mRecvLimit = new TQSpinBox( optionWidget );
|
||||
mRecvLimit->setMinValue( 1 );
|
||||
mRecvLimit->setMaxValue( 65536 );
|
||||
mGridLayout->addWidget( mRecvLimit, 5, 1 );
|
||||
|
||||
// maxObjSize
|
||||
label = new TQLabel( i18n("Maximum Object Size"), optionWidget );
|
||||
mGridLayout->addWidget( label, 6, 0 );
|
||||
|
||||
mMaxObjSize = new TQSpinBox( optionWidget );
|
||||
mMaxObjSize->setMinValue( 1 );
|
||||
mMaxObjSize->setMaxValue( 65536 );
|
||||
mGridLayout->addWidget( mMaxObjSize, 6, 1 );
|
||||
|
||||
topLayout()->addStretch( 1 );
|
||||
}
|
||||
|
||||
void ConfigGuiSyncmlHttp::addLineEdit( TQWidget *parent, const TQString &text, KComboBox **edit, int row )
|
||||
{
|
||||
TQLabel *label = new TQLabel( text, parent);
|
||||
mGridLayout->addWidget( label, row, 0 );
|
||||
|
||||
*edit = new KComboBox( true, parent );
|
||||
mGridLayout->addWidget( *edit, row, 1 );
|
||||
}
|
||||
|
||||
void ConfigGuiSyncmlHttp::load( const TQString &xml )
|
||||
{
|
||||
TQDomDocument document;
|
||||
document.setContent( xml );
|
||||
|
||||
TQDomElement docElement = document.documentElement();
|
||||
TQDomNode node;
|
||||
|
||||
for ( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
||||
TQDomElement element = node.toElement();
|
||||
if ( element.tagName() == "username" ) {
|
||||
mUsername->setText( element.text() );
|
||||
} else if ( element.tagName() == "password" ) {
|
||||
mPassword->setText( element.text() );
|
||||
} else if ( element.tagName() == "url" ) {
|
||||
if ( mUrl )
|
||||
mUrl->setText( element.text() );
|
||||
} else if ( element.tagName() == "port" ) {
|
||||
if ( mPort )
|
||||
mPort->setValue( element.text().toInt() );
|
||||
} else if ( element.tagName() == "recvLimit" ) {
|
||||
if ( mRecvLimit )
|
||||
mRecvLimit->setValue( element.text().toInt() );
|
||||
} else if ( element.tagName() == "maxObjSize" ) {
|
||||
if ( mMaxObjSize )
|
||||
mMaxObjSize->setValue( element.text().toInt() );
|
||||
} else if ( element.tagName() == "usestringtable" ) {
|
||||
mUseStringTable->setChecked( element.text() == "1" );
|
||||
} else if ( element.tagName() == "onlyreplace" ) {
|
||||
mOnlyReplace->setChecked( element.text() == "1" );
|
||||
} else if ( element.tagName() == "contact_db" ) {
|
||||
mContactDb->setCurrentText( element.text() );
|
||||
} else if ( element.tagName() == "calendar_db" ) {
|
||||
mCalendarDb->setCurrentText( element.text() );
|
||||
} else if ( element.tagName() == "note_db" ) {
|
||||
mNoteDb->setCurrentText( element.text() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString ConfigGuiSyncmlHttp::save() const
|
||||
{
|
||||
TQString xml;
|
||||
xml = "<config>\n";
|
||||
xml += "<username>" + mUsername->text() + "</username>\n";
|
||||
xml += "<password>" + mPassword->text() + "</password>\n";
|
||||
|
||||
xml += "<url>" + mUrl->text() + "</url>\n";
|
||||
xml += "<port>" + TQString::number( mPort->value() ) + "</port>\n";
|
||||
// Receive Limit
|
||||
xml += "<recvLimit>" + TQString::number( mRecvLimit->value() ) + "</recvLimit>\n";
|
||||
|
||||
// Maximal Object Size
|
||||
xml += "<maxObjSize>" + TQString::number( mMaxObjSize->value() ) + "</maxObjSize>\n";
|
||||
|
||||
xml += "<usestringtable>";
|
||||
if ( mUseStringTable->isChecked() )
|
||||
xml += "1";
|
||||
else
|
||||
xml += "0";
|
||||
xml += "</usestringtable>\n";
|
||||
|
||||
xml += "<onlyreplace>";
|
||||
if ( mOnlyReplace->isChecked() )
|
||||
xml += "1";
|
||||
else
|
||||
xml += "0";
|
||||
xml += "</onlyreplace>\n";
|
||||
|
||||
xml += "<contact_db>" + mContactDb->currentText() + "</contact_db>\n";
|
||||
xml += "<calendar_db>" + mCalendarDb->currentText() + "</calendar_db>\n";
|
||||
xml += "<note_db>" + mNoteDb->currentText() + "</note_db>\n";
|
||||
xml += "</config>";
|
||||
|
||||
return xml;
|
||||
}
|
||||
|
||||
#include "configguisyncmlhttp.moc"
|
||||
|
@ -1,68 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
#ifndef CONFIGGUISYNCML_H
|
||||
#define CONFIGGUISYNCML_H
|
||||
|
||||
#include <tqdom.h>
|
||||
|
||||
#include "configgui.h"
|
||||
|
||||
class TQCheckBox;
|
||||
class TQComboBox;
|
||||
class TQGridLayout;
|
||||
class TQSpinBox;
|
||||
class KComboBox;
|
||||
class KLineEdit;
|
||||
|
||||
class ConfigGuiSyncmlHttp : public ConfigGui
|
||||
{
|
||||
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
ConfigGuiSyncmlHttp( const QSync::Member &, TQWidget *parent );
|
||||
|
||||
void load( const TQString &xml );
|
||||
TQString save() const;
|
||||
|
||||
private:
|
||||
TQGridLayout *mGridLayout;
|
||||
|
||||
KLineEdit *mUsername;
|
||||
KLineEdit *mPassword;
|
||||
KLineEdit *mUrl;
|
||||
TQSpinBox *mPort;
|
||||
TQCheckBox *mUseStringTable;
|
||||
TQCheckBox *mOnlyReplace;
|
||||
|
||||
TQSpinBox *mRecvLimit;
|
||||
TQSpinBox *mMaxObjSize;
|
||||
|
||||
KComboBox *mContactDb;
|
||||
KComboBox *mCalendarDb;
|
||||
KComboBox *mNoteDb;
|
||||
|
||||
protected slots:
|
||||
void addLineEdit( TQWidget *parent, const TQString &text, KComboBox **edit, int row );
|
||||
};
|
||||
|
||||
#endif
|
@ -1,320 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
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 General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "configguisyncmlobex.h"
|
||||
|
||||
#include <kcombobox.h>
|
||||
#include <kdialog.h>
|
||||
#include <klineedit.h>
|
||||
#include <tdelocale.h>
|
||||
#include <kurlrequester.h>
|
||||
|
||||
#include <tqlayout.h>
|
||||
#include <tqcheckbox.h>
|
||||
#include <tqcombobox.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqdom.h>
|
||||
#include <tqspinbox.h>
|
||||
#include <tqtabwidget.h>
|
||||
#include <tqvbox.h>
|
||||
|
||||
ConfigGuiSyncmlObex::ConfigGuiSyncmlObex( const QSync::Member &member, TQWidget *parent )
|
||||
: ConfigGui( member, parent )
|
||||
{
|
||||
TQTabWidget *tabWidget = new TQTabWidget( this );
|
||||
topLayout()->addWidget( tabWidget );
|
||||
|
||||
// Connection
|
||||
TQVBox *connectionWidget = new TQVBox( this );
|
||||
connectionWidget->setMargin( KDialog::marginHint() );
|
||||
connectionWidget->setSpacing( 5 );
|
||||
|
||||
tabWidget->addTab( connectionWidget, i18n( "Connection" ) );
|
||||
|
||||
mConnection = new KComboBox( connectionWidget );
|
||||
|
||||
connect( mConnection, TQT_SIGNAL (activated( int ) ),
|
||||
this, TQT_SLOT( slotConnectionChanged ( int ) ) );
|
||||
|
||||
mConnectionTypes.append( ConnectionType( 2, i18n( "Bluetooth" ) ) );
|
||||
mConnectionTypes.append( ConnectionType( 5, i18n( "USB" ) ) );
|
||||
|
||||
ConnectionTypeList::ConstIterator it;
|
||||
for ( it = mConnectionTypes.begin(); it != mConnectionTypes.end(); it++ )
|
||||
mConnection->insertItem( (*it).second );
|
||||
|
||||
mBluetooth = new BluetoothWidget( connectionWidget );
|
||||
mBluetooth->hide();
|
||||
|
||||
mUsb = new UsbWidget( connectionWidget );
|
||||
mUsb->hide();
|
||||
|
||||
connectionWidget->setStretchFactor( mBluetooth, 1 );
|
||||
connectionWidget->setStretchFactor( mUsb, 1 );
|
||||
|
||||
// Databases
|
||||
TQWidget *databaseWidget = new TQWidget( tabWidget );
|
||||
TQVBoxLayout *databaseLayout = new TQVBoxLayout( databaseWidget,
|
||||
KDialog::marginHint(), KDialog::spacingHint() );
|
||||
|
||||
tabWidget->addTab( databaseWidget, i18n( "Databases" ) );
|
||||
|
||||
mGridLayout = new TQGridLayout( databaseLayout );
|
||||
addLineEdit( databaseWidget, i18n("Contact Database:"), &mContactDb, 0 );
|
||||
addLineEdit( databaseWidget, i18n("Calendar Database:"), &mCalendarDb, 1 );
|
||||
addLineEdit( databaseWidget, i18n("Note Database:"), &mNoteDb, 2 );
|
||||
|
||||
mContactDb->insertItem( "addressbook" );
|
||||
mContactDb->insertItem( "contacts" );
|
||||
|
||||
mCalendarDb->insertItem( "agenda" );
|
||||
mCalendarDb->insertItem( "calendar" );
|
||||
|
||||
mNoteDb->insertItem( "notes" );
|
||||
|
||||
// Options
|
||||
TQWidget *optionsWidget = new TQWidget( tabWidget );
|
||||
TQVBoxLayout *optionsLayout = new TQVBoxLayout( optionsWidget,
|
||||
KDialog::marginHint(), KDialog::spacingHint() );
|
||||
|
||||
tabWidget->addTab( optionsWidget, i18n( "Options" ) );
|
||||
|
||||
mGridLayout = new TQGridLayout( optionsLayout );
|
||||
|
||||
TQLabel *label = new TQLabel( i18n("User name:"), optionsWidget );
|
||||
mGridLayout->addWidget( label, 0, 0 );
|
||||
|
||||
mUsername = new KLineEdit( optionsWidget );
|
||||
mGridLayout->addWidget( mUsername, 0, 1 );
|
||||
|
||||
label = new TQLabel( i18n("Password:"), optionsWidget );
|
||||
mGridLayout->addWidget( label, 1, 0 );
|
||||
|
||||
mPassword = new KLineEdit( optionsWidget );
|
||||
mPassword->setEchoMode( TQLineEdit::Password );
|
||||
mGridLayout->addWidget( mPassword, 1, 1 );
|
||||
|
||||
mUseStringTable = new TQCheckBox( i18n("Use String Table"), optionsWidget );
|
||||
mGridLayout->addMultiCellWidget( mUseStringTable, 2, 2, 0, 1 );
|
||||
|
||||
mOnlyReplace = new TQCheckBox( i18n("Only Replace Entries"), optionsWidget );
|
||||
mGridLayout->addMultiCellWidget( mOnlyReplace, 3, 3, 0, 1 );
|
||||
|
||||
// SynML Version
|
||||
label = new TQLabel( i18n("SyncML Version:"), optionsWidget );
|
||||
mGridLayout->addWidget( label, 4, 0 );
|
||||
|
||||
mSyncmlVersion = new TQComboBox( optionsWidget );
|
||||
mGridLayout->addWidget( mSyncmlVersion, 4, 1 );
|
||||
|
||||
mSyncmlVersions.append( SyncmlVersion( 0, i18n( "1.0" ) ) );
|
||||
mSyncmlVersions.append( SyncmlVersion( 1, i18n( "1.1" ) ) );
|
||||
mSyncmlVersions.append( SyncmlVersion( 2, i18n( "1.2" ) ) );
|
||||
|
||||
SyncmlVersionList::ConstIterator itVersion;
|
||||
for ( itVersion = mSyncmlVersions.begin(); itVersion != mSyncmlVersions.end(); itVersion++ )
|
||||
mSyncmlVersion->insertItem( (*itVersion).second );
|
||||
|
||||
// WBXML
|
||||
mWbxml = new TQCheckBox( i18n("WAP Binary XML"), optionsWidget );
|
||||
mGridLayout->addMultiCellWidget( mWbxml, 12, 12, 0, 1 );
|
||||
|
||||
// Identifier
|
||||
label = new TQLabel( i18n("Software Identifier:"), optionsWidget );
|
||||
mGridLayout->addWidget( label, 13, 0 );
|
||||
|
||||
mIdentifier = new KComboBox( true, optionsWidget );
|
||||
mGridLayout->addWidget( mIdentifier, 13, 1 );
|
||||
|
||||
mIdentifier->insertItem( "" );
|
||||
mIdentifier->insertItem( "PC Suite" );
|
||||
|
||||
// recvLimit
|
||||
label = new TQLabel( i18n("Receive Limit:"), optionsWidget );
|
||||
mGridLayout->addWidget( label, 14, 0 );
|
||||
|
||||
mRecvLimit = new TQSpinBox( optionsWidget );
|
||||
mRecvLimit->setMinValue( 1 );
|
||||
mRecvLimit->setMaxValue( 65536 );
|
||||
mGridLayout->addWidget( mRecvLimit, 14, 1 );
|
||||
|
||||
// maxObjSize
|
||||
label = new TQLabel( i18n("Maximum Object Size"), optionsWidget );
|
||||
mGridLayout->addWidget( label, 15, 0 );
|
||||
|
||||
mMaxObjSize = new TQSpinBox( optionsWidget );
|
||||
mMaxObjSize->setMinValue( 1 );
|
||||
mMaxObjSize->setMaxValue( 65536 );
|
||||
mGridLayout->addWidget( mMaxObjSize, 15, 1 );
|
||||
|
||||
topLayout()->addStretch( 1 );
|
||||
}
|
||||
|
||||
void ConfigGuiSyncmlObex::slotConnectionChanged( int pos )
|
||||
{
|
||||
mUsb->hide();
|
||||
mBluetooth->hide();
|
||||
|
||||
if ( pos == 0 )
|
||||
mBluetooth->show();
|
||||
else if ( pos == 1 )
|
||||
mUsb->show();
|
||||
}
|
||||
|
||||
void ConfigGuiSyncmlObex::load( const TQString &xml )
|
||||
{
|
||||
TQDomDocument document;
|
||||
document.setContent( xml );
|
||||
|
||||
TQDomElement docElement = document.documentElement();
|
||||
|
||||
TQDomNode node;
|
||||
for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
||||
TQDomElement element = node.toElement();
|
||||
if ( element.tagName() == "username" ) {
|
||||
mUsername->setText( element.text() );
|
||||
} else if ( element.tagName() == "password" ) {
|
||||
mPassword->setText( element.text() );
|
||||
} else if ( element.tagName() == "type" ) {
|
||||
for ( uint i = 0; i < mConnectionTypes.count(); i++ ) {
|
||||
if ( mConnectionTypes[i].first == element.text().toInt() ) {
|
||||
mConnection->setCurrentItem( i );
|
||||
slotConnectionChanged( i );
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if ( element.tagName() == "version" ) {
|
||||
for ( uint i = 0; i < mSyncmlVersions.count(); i++ ) {
|
||||
if ( mSyncmlVersions[i].first == element.text().toInt() ) {
|
||||
mSyncmlVersion->setCurrentItem( i );
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if ( element.tagName() == "bluetooth_address" ) {
|
||||
if ( mBluetooth ) mBluetooth->setAddress( element.text() );
|
||||
} else if ( element.tagName() == "bluetooth_channel" ) {
|
||||
if ( mBluetooth ) mBluetooth->setChannel( element.text() );
|
||||
} else if ( element.tagName() == "identifier" ) {
|
||||
if ( mIdentifier ) mIdentifier->setCurrentText( element.text() );
|
||||
} else if ( element.tagName() == "interface" ) {
|
||||
if ( mUsb ) mUsb->setInterface( element.text().toInt() );
|
||||
} else if ( element.tagName() == "wbxml" ) {
|
||||
if ( mWbxml) mWbxml->setChecked( element.text() == "1" );
|
||||
} else if ( element.tagName() == "recvLimit" ) {
|
||||
if ( mRecvLimit ) mRecvLimit->setValue( element.text().toInt() );
|
||||
} else if ( element.tagName() == "maxObjSize" ) {
|
||||
if ( mMaxObjSize ) mMaxObjSize->setValue( element.text().toInt() );
|
||||
} else if ( element.tagName() == "usestringtable" ) {
|
||||
mUseStringTable->setChecked( element.text() == "1" );
|
||||
} else if ( element.tagName() == "onlyreplace" ) {
|
||||
mOnlyReplace->setChecked( element.text() == "1" );
|
||||
} else if ( element.tagName() == "contact_db" ) {
|
||||
mContactDb->setCurrentText( element.text() );
|
||||
} else if ( element.tagName() == "calendar_db" ) {
|
||||
mCalendarDb->setCurrentText( element.text() );
|
||||
} else if ( element.tagName() == "note_db" ) {
|
||||
mNoteDb->setCurrentText( element.text() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TQString ConfigGuiSyncmlObex::save() const
|
||||
{
|
||||
TQString xml;
|
||||
xml = "<config>\n";
|
||||
xml += "<username>" + mUsername->text() + "</username>\n";
|
||||
xml += "<password>" + mPassword->text() + "</password>\n";
|
||||
ConnectionTypeList::ConstIterator it;
|
||||
for ( it = mConnectionTypes.begin(); it != mConnectionTypes.end(); it++ ) {
|
||||
if ( mConnection->currentText() == (*it).second ) {
|
||||
xml += "<type>" + TQString("%1").arg((*it).first) + "</type>\n";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Bluetooth Address
|
||||
xml += "<bluetooth_address>" + mBluetooth->address() + "</bluetooth_address>\n";
|
||||
|
||||
// Bluetooth Channel
|
||||
xml += "<bluetooth_channel>" + mBluetooth->channel() + "</bluetooth_channel>\n";
|
||||
|
||||
// USB Interface
|
||||
xml += "<interface>" + TQString::number( mUsb->interface() ) +"</interface>\n";
|
||||
|
||||
// SyncML Version
|
||||
SyncmlVersionList::ConstIterator itVersion;
|
||||
for ( itVersion = mSyncmlVersions.begin(); itVersion != mSyncmlVersions.end(); itVersion++ ) {
|
||||
if ( mSyncmlVersion->currentText() == (*itVersion).second ) {
|
||||
xml += "<version>" + TQString("%1").arg((*itVersion).first) + "</version>\n";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// (Software) Identifier
|
||||
xml += "<identifier>" + mIdentifier->currentText() + "</identifier>\n";
|
||||
|
||||
// WBXML
|
||||
xml += "<wbxml>";
|
||||
if ( mWbxml->isChecked() )
|
||||
xml += "1";
|
||||
else
|
||||
xml += "0";
|
||||
xml += "</wbxml>\n";
|
||||
|
||||
// Receive Limit
|
||||
xml += "<recvLimit>" + TQString::number( mRecvLimit->value() ) + "</recvLimit>\n";
|
||||
|
||||
// Maximal Object Size
|
||||
xml += "<maxObjSize>" + TQString::number( mMaxObjSize->value() ) + "</maxObjSize>\n";
|
||||
|
||||
xml += "<usestringtable>";
|
||||
if ( mUseStringTable->isChecked() )
|
||||
xml += "1";
|
||||
else
|
||||
xml += "0";
|
||||
xml += "</usestringtable>\n";
|
||||
|
||||
xml += "<onlyreplace>";
|
||||
if ( mOnlyReplace->isChecked() )
|
||||
xml += "1";
|
||||
else
|
||||
xml += "0";
|
||||
xml += "</onlyreplace>\n";
|
||||
|
||||
xml += "<contact_db>" + mContactDb->currentText() + "</contact_db>\n";
|
||||
xml += "<calendar_db>" + mCalendarDb->currentText() + "</calendar_db>\n";
|
||||
xml += "<note_db>" + mNoteDb->currentText() + "</note_db>\n";
|
||||
xml += "</config>";
|
||||
|
||||
return xml;
|
||||
}
|
||||
|
||||
void ConfigGuiSyncmlObex::addLineEdit( TQWidget *parent, const TQString &text, KComboBox **edit, int row )
|
||||
{
|
||||
TQLabel *label = new TQLabel( text, parent );
|
||||
mGridLayout->addWidget( label, row, 0 );
|
||||
|
||||
*edit = new KComboBox( true, parent );
|
||||
mGridLayout->addWidget( *edit, row, 1 );
|
||||
}
|
||||
|
||||
#include "configguisyncmlobex.moc"
|
@ -1,88 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
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 General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
#ifndef CONFIGGUISYNCMLOBEX_H
|
||||
#define CONFIGGUISYNCMLOBEX_H
|
||||
|
||||
#include <tqdom.h>
|
||||
|
||||
#include "configgui.h"
|
||||
#include "connectionwidgets.h"
|
||||
|
||||
class TQCheckBox;
|
||||
class TQComboBox;
|
||||
class TQGridLayout;
|
||||
class TQSpinBox;
|
||||
class KComboBox;
|
||||
class KLineEdit;
|
||||
class KURLRequester;
|
||||
|
||||
class ConfigGuiSyncmlObex : public ConfigGui
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
ConfigGuiSyncmlObex( const QSync::Member &, TQWidget *parent = 0 );
|
||||
|
||||
void load( const TQString &xml );
|
||||
TQString save() const;
|
||||
|
||||
public slots:
|
||||
void slotConnectionChanged( int pos );
|
||||
|
||||
private:
|
||||
// Connection
|
||||
typedef TQPair<int, TQString> ConnectionType;
|
||||
typedef TQValueList<ConnectionType> ConnectionTypeList;
|
||||
ConnectionTypeList mConnectionTypes;
|
||||
|
||||
TQComboBox *mConnection;
|
||||
BluetoothWidget *mBluetooth;
|
||||
UsbWidget *mUsb;
|
||||
|
||||
// Options
|
||||
typedef TQPair<int, TQString> SyncmlVersion;
|
||||
typedef TQValueList<SyncmlVersion> SyncmlVersionList;
|
||||
SyncmlVersionList mSyncmlVersions;
|
||||
|
||||
TQStringList mIdentiferList;
|
||||
KLineEdit *mUsername;
|
||||
KLineEdit *mPassword;
|
||||
TQCheckBox *mUseStringTable;
|
||||
TQCheckBox *mOnlyReplace;
|
||||
TQSpinBox *mRecvLimit;
|
||||
TQSpinBox *mMaxObjSize;
|
||||
TQComboBox *mSyncmlVersion;
|
||||
KComboBox *mIdentifier;
|
||||
TQCheckBox *mWbxml;
|
||||
|
||||
TQGridLayout *mGridLayout;
|
||||
|
||||
KComboBox *mContactDb;
|
||||
KComboBox *mCalendarDb;
|
||||
KComboBox *mNoteDb;
|
||||
|
||||
protected slots:
|
||||
void addLineEdit( TQWidget *parent, const TQString &text, KComboBox **edit, int row );
|
||||
};
|
||||
|
||||
#endif
|
@ -1,26 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "conflictdialog.h"
|
||||
|
||||
ConflictDialog::ConflictDialog( QSync::SyncMapping &mapping, TQWidget *parent )
|
||||
: TQDialog( parent ), mMapping( mapping )
|
||||
{
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef CONFLICTDIALOG_H
|
||||
#define CONFLICTDIALOG_H
|
||||
|
||||
#include <tqdialog.h>
|
||||
|
||||
#include <libqopensync/syncmapping.h>
|
||||
|
||||
/**
|
||||
Base class for SingleConflictDialog and MultiConflictDialog.
|
||||
*/
|
||||
class ConflictDialog : public TQDialog
|
||||
{
|
||||
public:
|
||||
ConflictDialog( QSync::SyncMapping &mapping, TQWidget *parent );
|
||||
|
||||
protected:
|
||||
QSync::SyncMapping mMapping;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,227 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
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 General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <kcombobox.h>
|
||||
#include <kdialog.h>
|
||||
#include <tdeglobal.h>
|
||||
#include <kiconloader.h>
|
||||
#include <kinputdialog.h>
|
||||
#include <klineedit.h>
|
||||
#include <tdelocale.h>
|
||||
#include <tdemessagebox.h>
|
||||
|
||||
#include <tqapplication.h>
|
||||
#include <tqeventloop.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqpushbutton.h>
|
||||
#include <tqspinbox.h>
|
||||
#include <tqtabwidget.h>
|
||||
#include <tqtooltip.h>
|
||||
#include <tqvbox.h>
|
||||
|
||||
#include "connectionwidgets.h"
|
||||
|
||||
BluetoothWidget::BluetoothWidget( TQWidget *parent )
|
||||
: TQWidget( parent )
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( this );
|
||||
|
||||
mAddress = new KLineEdit( this );
|
||||
mAddress->setInputMask( ">NN:NN:NN:NN:NN:NN;" );
|
||||
layout->addWidget( mAddress, 1, 0 );
|
||||
|
||||
TQLabel *label = new TQLabel( i18n( "Bluetooth address:" ), this );
|
||||
label->setBuddy( mAddress );
|
||||
layout->addWidget( label, 0, 0 );
|
||||
|
||||
mChannel = new KLineEdit( this );
|
||||
layout->addWidget( mChannel, 1, 1 );
|
||||
|
||||
mChannelLabel = new TQLabel( i18n( "Channel:" ), this );
|
||||
mChannelLabel->setBuddy( mChannel );
|
||||
layout->addWidget( mChannelLabel, 0, 1 );
|
||||
|
||||
layout->setRowStretch( 2, 1 );
|
||||
}
|
||||
|
||||
void BluetoothWidget::hideChannel()
|
||||
{
|
||||
mChannelLabel->hide();
|
||||
mChannel->hide();
|
||||
}
|
||||
|
||||
void BluetoothWidget::showChannel()
|
||||
{
|
||||
mChannelLabel->show();
|
||||
mChannel->show();
|
||||
}
|
||||
|
||||
void BluetoothWidget::setAddress( const TQString address )
|
||||
{
|
||||
mAddress->setText( address );
|
||||
}
|
||||
|
||||
void BluetoothWidget::setChannel( const TQString channel )
|
||||
{
|
||||
if ( mChannel )
|
||||
mChannel->setText( channel );
|
||||
}
|
||||
|
||||
TQString BluetoothWidget::address() const
|
||||
{
|
||||
return mAddress->text();
|
||||
}
|
||||
|
||||
TQString BluetoothWidget::channel() const
|
||||
{
|
||||
if ( mChannel->text().isEmpty() )
|
||||
return TQString();
|
||||
|
||||
return mChannel->text();
|
||||
}
|
||||
|
||||
// FIXME - Only IrMC specific
|
||||
IRWidget::IRWidget( TQWidget *parent )
|
||||
: TQWidget( parent )
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( this, 3, 3, 11, 3 );
|
||||
|
||||
mDevice = new KLineEdit( this );
|
||||
mSerialNumber = new KLineEdit( this );
|
||||
|
||||
layout->addWidget( mDevice, 1, 0 );
|
||||
layout->addWidget( mSerialNumber, 1, 1 );
|
||||
|
||||
TQLabel *label = new TQLabel( i18n( "Device Name:" ), this );
|
||||
label->setBuddy( mDevice );
|
||||
layout->addWidget( label, 0, 0 );
|
||||
|
||||
label = new TQLabel( i18n( "Serial Number:" ), this );
|
||||
label->setBuddy( mSerialNumber );
|
||||
layout->addWidget( label, 0, 1 );
|
||||
|
||||
layout->setRowStretch( 2, 1 );
|
||||
}
|
||||
|
||||
void IRWidget::load( const TQDomElement &parent )
|
||||
{
|
||||
TQDomNode node;
|
||||
for ( node = parent.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
||||
TQDomElement element = node.toElement();
|
||||
if ( element.tagName() == "irname" )
|
||||
mDevice->setText( element.text() );
|
||||
else if ( element.tagName() == "irserial" )
|
||||
mSerialNumber->setText( element.text() );
|
||||
}
|
||||
}
|
||||
|
||||
void IRWidget::save( TQDomDocument &doc, TQDomElement &parent )
|
||||
{
|
||||
TQDomElement element = doc.createElement( "irname" );
|
||||
element.appendChild( doc.createTextNode( mDevice->text() ) );
|
||||
parent.appendChild( element );
|
||||
|
||||
element = doc.createElement( "irserial" );
|
||||
element.appendChild( doc.createTextNode( mSerialNumber->text() ) );
|
||||
parent.appendChild( element );
|
||||
}
|
||||
|
||||
// FIXME - Only IrMC specific
|
||||
CableWidget::CableWidget( TQWidget *parent )
|
||||
: TQWidget( parent )
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( this, 3, 2, 11, 3 );
|
||||
|
||||
mManufacturer = new KComboBox( this );
|
||||
mDevice = new KComboBox( true, this );
|
||||
|
||||
layout->addWidget( mManufacturer, 0, 1 );
|
||||
layout->addWidget( mDevice, 1, 1 );
|
||||
|
||||
TQLabel *label = new TQLabel( i18n( "Device Manufacturer:" ), this );
|
||||
label->setBuddy( mManufacturer );
|
||||
layout->addWidget( label, 0, 0 );
|
||||
|
||||
label = new TQLabel( i18n( "Device:" ), this );
|
||||
label->setBuddy( mDevice );
|
||||
layout->addWidget( label, 1, 0 );
|
||||
|
||||
layout->setRowStretch( 2, 1 );
|
||||
|
||||
mManufacturer->insertItem( i18n( "SonyEricsson/Ericsson" ) );
|
||||
mManufacturer->insertItem( i18n( "Siemens" ) );
|
||||
|
||||
mDevice->insertItem( "/dev/ttyS0" );
|
||||
mDevice->insertItem( "/dev/ttyS1" );
|
||||
mDevice->insertItem( "/dev/ttyUSB0" );
|
||||
mDevice->insertItem( "/dev/ttyUSB1" );
|
||||
}
|
||||
|
||||
void CableWidget::load( const TQDomElement &parent )
|
||||
{
|
||||
TQDomNode node;
|
||||
for ( node = parent.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
||||
TQDomElement element = node.toElement();
|
||||
if ( element.tagName() == "cabletype" )
|
||||
mManufacturer->setCurrentItem( element.text().toInt() );
|
||||
else if ( element.tagName() == "cabledev" )
|
||||
mDevice->setCurrentText( element.text() );
|
||||
}
|
||||
}
|
||||
|
||||
void CableWidget::save( TQDomDocument &doc, TQDomElement &parent )
|
||||
{
|
||||
TQDomElement element = doc.createElement( "cabletype" );
|
||||
element.appendChild( doc.createTextNode( TQString::number( mManufacturer->currentItem() ) ) );
|
||||
parent.appendChild( element );
|
||||
|
||||
element = doc.createElement( "cabledev" );
|
||||
element.appendChild( doc.createTextNode( mDevice->currentText() ) );
|
||||
parent.appendChild( element );
|
||||
}
|
||||
|
||||
UsbWidget::UsbWidget( TQWidget *parent )
|
||||
: TQWidget( parent )
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( this, 3, 2, 11, 3);
|
||||
|
||||
mInterface = new TQSpinBox( this );
|
||||
layout->addWidget( mInterface, 0, 1 );
|
||||
|
||||
TQLabel *label = new TQLabel( i18n( "USB Interface:" ), this );
|
||||
label->setBuddy( mInterface );
|
||||
layout->addWidget( label, 0, 0 );
|
||||
|
||||
layout->setRowStretch( 2, 1 );
|
||||
}
|
||||
|
||||
void UsbWidget::setInterface( int interface )
|
||||
{
|
||||
mInterface->setValue( interface );
|
||||
}
|
||||
|
||||
int UsbWidget::interface() const
|
||||
{
|
||||
return mInterface->value();
|
||||
}
|
||||
|
||||
#include "connectionwidgets.moc"
|
@ -1,101 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
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 General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#ifndef CONNECTIONWIDGETS_H
|
||||
#define CONNECTIONWIDGETS_H
|
||||
|
||||
#include <tqdom.h>
|
||||
|
||||
#include "configgui.h"
|
||||
|
||||
class TQCheckBox;
|
||||
class TQLabel;
|
||||
class TQPushButton;
|
||||
class TQSpinBox;
|
||||
|
||||
class KComboBox;
|
||||
class KLineEdit;
|
||||
|
||||
class BluetoothWidget : public TQWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
BluetoothWidget( TQWidget *parent );
|
||||
|
||||
void hideChannel();
|
||||
void showChannel();
|
||||
|
||||
void setAddress( const TQString address );
|
||||
void setChannel( const TQString channel );
|
||||
TQString address() const;
|
||||
TQString channel() const;
|
||||
|
||||
private:
|
||||
KLineEdit *mAddress;
|
||||
KLineEdit *mChannel;
|
||||
TQLabel *mChannelLabel;
|
||||
};
|
||||
|
||||
class IRWidget : public TQWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
IRWidget( TQWidget *parent );
|
||||
|
||||
void load( const TQDomElement& );
|
||||
void save( TQDomDocument&, TQDomElement& );
|
||||
|
||||
private:
|
||||
KLineEdit *mDevice;
|
||||
KLineEdit *mSerialNumber;
|
||||
};
|
||||
|
||||
class CableWidget : public TQWidget
|
||||
{
|
||||
public:
|
||||
CableWidget( TQWidget *parent );
|
||||
|
||||
void load( const TQDomElement& );
|
||||
void save( TQDomDocument&, TQDomElement& );
|
||||
|
||||
private:
|
||||
KComboBox *mManufacturer;
|
||||
KComboBox *mDevice;
|
||||
};
|
||||
|
||||
class UsbWidget : public TQWidget
|
||||
{
|
||||
public:
|
||||
UsbWidget( TQWidget *parent );
|
||||
|
||||
int interface() const;
|
||||
void setInterface( int interface );
|
||||
|
||||
private:
|
||||
TQSpinBox *mInterface;
|
||||
};
|
||||
|
||||
#endif // CONNECTIONWIDGETS_H
|
@ -1,70 +0,0 @@
|
||||
/*
|
||||
This file is part of libtdepim.
|
||||
|
||||
Copyright (c) 2004 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 <tqstringlist.h>
|
||||
|
||||
#include <tdelocale.h>
|
||||
|
||||
#include "genericdiffalgo.h"
|
||||
|
||||
using namespace KSync;
|
||||
|
||||
#define MAX( a, b ) ( a > b ? a : b )
|
||||
|
||||
#ifndef KDE_USE_FINAL
|
||||
// With --enable-final, we get the (identical) compareString from
|
||||
// addresseediffalgo.cpp
|
||||
static bool compareString( const TQString &left, const TQString &right )
|
||||
{
|
||||
if ( left.isEmpty() && right.isEmpty() )
|
||||
return true;
|
||||
else
|
||||
return left == right;
|
||||
}
|
||||
#endif
|
||||
|
||||
GenericDiffAlgo::GenericDiffAlgo( const TQString &leftData, const TQString &rightData )
|
||||
: mLeftData( leftData ), mRightData( rightData )
|
||||
{
|
||||
}
|
||||
|
||||
void GenericDiffAlgo::run()
|
||||
{
|
||||
begin();
|
||||
|
||||
TQStringList leftList = TQStringList::split( '\n', mLeftData, true );
|
||||
TQStringList rightList = TQStringList::split( '\n', mRightData, true );
|
||||
|
||||
uint lines = MAX( leftList.count(), rightList.count() );
|
||||
for ( uint i = 0; i < lines; ++i ) {
|
||||
if ( i < leftList.count() && i < rightList.count() ) {
|
||||
if ( !compareString( leftList[ i ], rightList[ i ] ) )
|
||||
conflictField( i18n( "Line %1" ).arg( i ), leftList[ i ], rightList[ i ] );
|
||||
} else if ( i < leftList.count() && i >= rightList.count() ) {
|
||||
additionalLeftField( i18n( "Line %1" ).arg( i ), leftList[ i ] );
|
||||
} else if ( i >= leftList.count() && i < rightList.count() ) {
|
||||
additionalRightField( i18n( "Line %1" ).arg( i ), rightList[ i ] );
|
||||
}
|
||||
}
|
||||
|
||||
end();
|
||||
}
|
||||
|
@ -1,45 +0,0 @@
|
||||
/*
|
||||
This file is part of libtdepim.
|
||||
|
||||
Copyright (c) 2004 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 KSYNC_GENERICDIFFALGO_H
|
||||
#define KSYNC_GENERICDIFFALGO_H
|
||||
|
||||
#include <libtdepim/diffalgo.h>
|
||||
|
||||
using namespace KPIM;
|
||||
|
||||
namespace KSync {
|
||||
|
||||
class GenericDiffAlgo : public DiffAlgo
|
||||
{
|
||||
public:
|
||||
GenericDiffAlgo( const TQString &left, const TQString &right );
|
||||
|
||||
void run();
|
||||
|
||||
private:
|
||||
TQString mLeftData;
|
||||
TQString mRightData;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -1,179 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "groupconfig.h"
|
||||
|
||||
#include "groupconfigcommon.h"
|
||||
#include "memberconfig.h"
|
||||
#include "memberinfo.h"
|
||||
#include "pluginpicker.h"
|
||||
#include "syncprocess.h"
|
||||
#include "syncprocessmanager.h"
|
||||
|
||||
#include <libqopensync/group.h>
|
||||
#include <libqopensync/plugin.h>
|
||||
|
||||
#include <kdialog.h>
|
||||
#include <kiconloader.h>
|
||||
#include <kjanuswidget.h>
|
||||
#include <tdelocale.h>
|
||||
#include <tdemessagebox.h>
|
||||
|
||||
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqpushbutton.h>
|
||||
|
||||
GroupConfig::GroupConfig( TQWidget *parent )
|
||||
: TQWidget( parent )
|
||||
{
|
||||
TQBoxLayout *topLayout = new TQVBoxLayout( this );
|
||||
topLayout->setSpacing( KDialog::spacingHint() );
|
||||
|
||||
TQFrame *titleFrame = new TQFrame( this );
|
||||
topLayout->addWidget( titleFrame );
|
||||
|
||||
titleFrame->setPaletteForegroundColor( colorGroup().light() );
|
||||
titleFrame->setPaletteBackgroundColor( colorGroup().mid() );
|
||||
|
||||
TQBoxLayout *nameLayout = new TQHBoxLayout( titleFrame );
|
||||
nameLayout->setMargin( 4 );
|
||||
|
||||
TQPixmap icon = TDEGlobal::iconLoader()->loadIcon( "kontact_summary",
|
||||
TDEIcon::Desktop );
|
||||
|
||||
TQLabel *iconLabel = new TQLabel( titleFrame );
|
||||
iconLabel->setPixmap( icon );
|
||||
nameLayout->addWidget( iconLabel );
|
||||
|
||||
nameLayout->addSpacing( 8 );
|
||||
|
||||
TQLabel *label = new TQLabel( i18n("Group:"), titleFrame );
|
||||
TQFont font = label->font();
|
||||
font.setBold( true );
|
||||
font.setPointSize( font.pointSize() + 2 );
|
||||
label->setFont( font );
|
||||
nameLayout->addWidget( label );
|
||||
|
||||
mNameLabel = new TQLabel( titleFrame );
|
||||
font = mNameLabel->font();
|
||||
font.setBold( true );
|
||||
font.setPointSize( font.pointSize() + 2 );
|
||||
mNameLabel->setFont( font );
|
||||
nameLayout->addWidget( mNameLabel );
|
||||
|
||||
nameLayout->addStretch( 1 );
|
||||
|
||||
mMemberView = new KJanusWidget( this, 0, KJanusWidget::IconList );
|
||||
topLayout->addWidget( mMemberView );
|
||||
|
||||
TQBoxLayout *buttonLayout = new TQHBoxLayout( topLayout );
|
||||
|
||||
TQPushButton *addButton = new TQPushButton( i18n("Add Member..."), this );
|
||||
connect( addButton, TQT_SIGNAL( clicked() ), TQT_SLOT( addMember() ) );
|
||||
buttonLayout->addWidget( addButton );
|
||||
|
||||
buttonLayout->addStretch( 1 );
|
||||
|
||||
icon = TDEGlobal::iconLoader()->loadIcon( "bookmark", TDEIcon::Desktop );
|
||||
TQFrame *page = mMemberView->addPage( i18n("Group"),
|
||||
i18n("General Group Settings"), icon );
|
||||
TQBoxLayout *pageLayout = new TQVBoxLayout( page );
|
||||
|
||||
mCommonConfig = new GroupConfigCommon( page );
|
||||
pageLayout->addWidget( mCommonConfig );
|
||||
}
|
||||
|
||||
void GroupConfig::setSyncProcess( SyncProcess *process )
|
||||
{
|
||||
mProcess = process;
|
||||
|
||||
mNameLabel->setText( mProcess->group().name() );
|
||||
mCommonConfig->setSyncProcess( mProcess );
|
||||
|
||||
updateMembers();
|
||||
}
|
||||
|
||||
void GroupConfig::updateMembers()
|
||||
{
|
||||
TQValueList<MemberConfig *>::ConstIterator memberIt;
|
||||
for ( memberIt = mMemberConfigs.begin(); memberIt != mMemberConfigs.end(); ++memberIt )
|
||||
(*memberIt)->saveData();
|
||||
|
||||
TQValueList<TQFrame *>::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;
|
||||
MemberInfo mi( member );
|
||||
TQFrame *page = mMemberView->addPage( mi.name(),
|
||||
TQString( "%1 (%2)" ).arg( mi.name() ).arg(member.pluginName()), mi.desktopIcon() );
|
||||
|
||||
TQBoxLayout *pageLayout = new TQVBoxLayout( page );
|
||||
mConfigPages.append( page );
|
||||
|
||||
MemberConfig *memberConfig = new MemberConfig( page, member );
|
||||
mMemberConfigs.append( memberConfig );
|
||||
pageLayout->addWidget( memberConfig );
|
||||
|
||||
memberConfig->loadData();
|
||||
}
|
||||
}
|
||||
|
||||
void GroupConfig::saveConfig()
|
||||
{
|
||||
mProcess->group().save();
|
||||
|
||||
TQValueList<MemberConfig *>::ConstIterator it;
|
||||
for ( it = mMemberConfigs.begin(); it != mMemberConfigs.end(); ++it )
|
||||
(*it)->saveData();
|
||||
|
||||
mCommonConfig->save();
|
||||
|
||||
mProcess->reinitEngine();
|
||||
}
|
||||
|
||||
void GroupConfig::addMember()
|
||||
{
|
||||
QSync::Plugin plugin = PluginPickerDialog::getPlugin( this );
|
||||
|
||||
if ( plugin.isValid() ) {
|
||||
QSync::Result result = SyncProcessManager::self()->addMember( mProcess, plugin );
|
||||
if ( result.isError() ) {
|
||||
KMessageBox::error( this, i18n("Error adding member %1\n%2\nType: %3")
|
||||
.arg( plugin.name() ).arg( result.message() ).arg( result.type() ) );
|
||||
} else {
|
||||
updateMembers();
|
||||
|
||||
// select last (added) page
|
||||
int index = mMemberView->pageIndex( mConfigPages.last() );
|
||||
mMemberView->showPage( index );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#include "groupconfig.moc"
|
@ -1,63 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
#ifndef GROUPCONFIG_H
|
||||
#define GROUPCONFIG_H
|
||||
|
||||
#include <tqwidget.h>
|
||||
#include <tqvaluelist.h>
|
||||
|
||||
class TQFrame;
|
||||
class TQLabel;
|
||||
class KJanusWidget;
|
||||
|
||||
class GroupConfigCommon;
|
||||
class MemberConfig;
|
||||
class SyncProcess;
|
||||
|
||||
class GroupConfig : public TQWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
GroupConfig( TQWidget *parent );
|
||||
|
||||
void setSyncProcess( SyncProcess *process );
|
||||
|
||||
void updateMembers();
|
||||
|
||||
void saveConfig();
|
||||
|
||||
protected slots:
|
||||
void addMember();
|
||||
|
||||
private:
|
||||
TQLabel *mNameLabel;
|
||||
|
||||
KJanusWidget *mMemberView;
|
||||
|
||||
SyncProcess *mProcess;
|
||||
|
||||
GroupConfigCommon *mCommonConfig;
|
||||
TQValueList<MemberConfig *> mMemberConfigs;
|
||||
TQValueList<TQFrame *> mConfigPages;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,158 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
|
||||
#include <kdialog.h>
|
||||
#include <klineedit.h>
|
||||
#include <tdelocale.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqcheckbox.h>
|
||||
|
||||
#include <libqopensync/group.h>
|
||||
#include <libqopensync/conversion.h>
|
||||
#include <libqopensync/environment.h>
|
||||
|
||||
#include "syncprocess.h"
|
||||
#include "syncprocessmanager.h"
|
||||
|
||||
#include "groupconfigcommon.h"
|
||||
|
||||
ObjectTypeSelector::ObjectTypeSelector( TQWidget *parent )
|
||||
: TQWidget( parent )
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( this );
|
||||
layout->setMargin( 0 );
|
||||
|
||||
const QSync::Conversion conversion = SyncProcessManager::self()->environment()->conversion();
|
||||
|
||||
TQMap<TQString, TQString> objectTypeMap;
|
||||
objectTypeMap.insert( "contact", i18n( "Contacts" ) );
|
||||
objectTypeMap.insert( "event", i18n( "Events" ) );
|
||||
objectTypeMap.insert( "todo", i18n( "To-dos" ) );
|
||||
objectTypeMap.insert( "note", i18n( "Notes" ) );
|
||||
|
||||
TQStringList objectTypes = conversion.objectTypes();
|
||||
|
||||
// reorder the entries so that contact and event are the first one
|
||||
qHeapSort( objectTypes );
|
||||
|
||||
TQStringList reoderedObjectTypes, stack;
|
||||
for ( uint i = 0; i < objectTypes.count(); ++i ) {
|
||||
if ( objectTypes[ i ] == "contact" || objectTypes[ i ] == "event" )
|
||||
reoderedObjectTypes.append( objectTypes[ i ] );
|
||||
else
|
||||
stack.append( objectTypes[ i ] );
|
||||
}
|
||||
reoderedObjectTypes += stack;
|
||||
|
||||
TQStringList::ConstIterator it;
|
||||
|
||||
int row = 0;
|
||||
int col = 0;
|
||||
for( it = reoderedObjectTypes.begin(); it != reoderedObjectTypes.end(); ++it ) {
|
||||
TQString objectType = *it;
|
||||
|
||||
// Don't display object type "data". Object type "data" is a kind of wildcard - so don't filter *
|
||||
if ( objectType == "data" )
|
||||
continue;
|
||||
|
||||
TQCheckBox *objectCheckBox = new TQCheckBox( objectTypeMap[ objectType ], this );
|
||||
layout->addWidget( objectCheckBox, row, col );
|
||||
mObjectTypeChecks.insert( objectType, objectCheckBox );
|
||||
|
||||
col++;
|
||||
if ( (row == 0 && col == 2) || col == 3 ) {
|
||||
col = 0;
|
||||
row++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ObjectTypeSelector::load( const QSync::Group &group )
|
||||
{
|
||||
const QSync::GroupConfig config = group.config();
|
||||
|
||||
const TQStringList objectTypes = config.activeObjectTypes();
|
||||
|
||||
// Enable everything on the inital load
|
||||
bool initialLoad = false;
|
||||
if ( objectTypes.isEmpty() )
|
||||
initialLoad = true;
|
||||
|
||||
TQMap<TQString, TQCheckBox*>::ConstIterator it;
|
||||
for( it = mObjectTypeChecks.begin(); it != mObjectTypeChecks.end(); ++it ) {
|
||||
TQCheckBox *check = it.data();
|
||||
check->setChecked( objectTypes.contains( it.key() ) || initialLoad );
|
||||
}
|
||||
}
|
||||
|
||||
void ObjectTypeSelector::save( QSync::Group group )
|
||||
{
|
||||
TQStringList objectTypes;
|
||||
|
||||
TQMap<TQString,TQCheckBox *>::ConstIterator it;
|
||||
for( it = mObjectTypeChecks.begin(); it != mObjectTypeChecks.end(); ++it ) {
|
||||
TQCheckBox *check = it.data();
|
||||
if ( check->isChecked() )
|
||||
objectTypes.append( it.key() );
|
||||
}
|
||||
|
||||
// Always add object type "data"
|
||||
objectTypes.append( "data" );
|
||||
|
||||
QSync::GroupConfig config = group.config();
|
||||
config.setActiveObjectTypes( objectTypes );
|
||||
}
|
||||
|
||||
GroupConfigCommon::GroupConfigCommon( TQWidget *parent )
|
||||
: TQWidget( parent )
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( this, 2, 2, KDialog::marginHint(), KDialog::spacingHint() );
|
||||
|
||||
layout->addWidget( new TQLabel( i18n( "Name:" ), this ), 0, 0 );
|
||||
|
||||
mGroupName = new KLineEdit( this );
|
||||
layout->addWidget( mGroupName, 0, 1 );
|
||||
|
||||
layout->addWidget( new TQLabel( i18n( "Object Types to be Synchronized:"), this ), 1, 0, TQt::AlignTop );
|
||||
|
||||
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() );
|
||||
}
|
||||
|
||||
void GroupConfigCommon::save()
|
||||
{
|
||||
mSyncProcess->group().setName( mGroupName->text() );
|
||||
mObjectTypeSelector->save( mSyncProcess->group() );
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
#ifndef GROUPCONFIGCOMMON_H
|
||||
#define GROUPCONFIGCOMMON_H
|
||||
|
||||
#include <tqwidget.h>
|
||||
#include <tqmap.h>
|
||||
|
||||
#include <libqopensync/group.h>
|
||||
|
||||
class KLineEdit;
|
||||
class SyncProcess;
|
||||
class TQCheckBox;
|
||||
|
||||
class ObjectTypeSelector : public TQWidget
|
||||
{
|
||||
public:
|
||||
ObjectTypeSelector( TQWidget *parent );
|
||||
|
||||
void load( const QSync::Group &group );
|
||||
void save( QSync::Group group );
|
||||
|
||||
private:
|
||||
TQMap<TQString,TQCheckBox *> mObjectTypeChecks;
|
||||
};
|
||||
|
||||
class GroupConfigCommon : public TQWidget
|
||||
{
|
||||
public:
|
||||
GroupConfigCommon( TQWidget *parent );
|
||||
|
||||
void setSyncProcess( SyncProcess *syncProcess );
|
||||
void save();
|
||||
|
||||
private:
|
||||
KLineEdit *mGroupName;
|
||||
ObjectTypeSelector *mObjectTypeSelector;
|
||||
|
||||
SyncProcess *mSyncProcess;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,57 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "groupconfigdialog.h"
|
||||
|
||||
#include "groupconfig.h"
|
||||
|
||||
#include <tdelocale.h>
|
||||
|
||||
#include <tqlayout.h>
|
||||
|
||||
GroupConfigDialog::GroupConfigDialog( TQWidget *parent, SyncProcess *process )
|
||||
: KDialogBase( parent, 0, true, i18n("Configure Synchronization Group"),
|
||||
Ok )
|
||||
{
|
||||
TQFrame *topFrame = makeMainWidget();
|
||||
|
||||
TQBoxLayout *topLayout = new TQVBoxLayout( topFrame );
|
||||
|
||||
mConfigWidget = new GroupConfig( topFrame );
|
||||
topLayout->addWidget( mConfigWidget );
|
||||
|
||||
mConfigWidget->setSyncProcess( process );
|
||||
|
||||
setInitialSize( configDialogSize( "size_groupconfigdialog" ) );
|
||||
}
|
||||
|
||||
GroupConfigDialog::~GroupConfigDialog()
|
||||
{
|
||||
saveDialogSize( "size_groupconfigdialog" );
|
||||
}
|
||||
|
||||
void GroupConfigDialog::slotOk()
|
||||
{
|
||||
mConfigWidget->saveConfig();
|
||||
|
||||
accept();
|
||||
}
|
||||
|
||||
#include "groupconfigdialog.moc"
|
@ -1,44 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
#ifndef GROUPCONFIGDIALOG_H
|
||||
#define GROUPCONFIGDIALOG_H
|
||||
|
||||
#include <kdialogbase.h>
|
||||
|
||||
class GroupConfig;
|
||||
class SyncProcess;
|
||||
|
||||
class GroupConfigDialog : public KDialogBase
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
GroupConfigDialog( TQWidget *parent, SyncProcess * );
|
||||
~GroupConfigDialog();
|
||||
|
||||
protected slots:
|
||||
void slotOk();
|
||||
|
||||
private:
|
||||
GroupConfig *mConfigWidget;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,389 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <tdeapplication.h>
|
||||
#include <kdialog.h>
|
||||
#include <tdeglobal.h>
|
||||
#include <tdeglobalsettings.h>
|
||||
#include <kiconloader.h>
|
||||
#include <tdelocale.h>
|
||||
#include <kpassivepopup.h>
|
||||
#include <kurllabel.h>
|
||||
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqpixmap.h>
|
||||
#include <tqprogressbar.h>
|
||||
#include <tqvbox.h>
|
||||
|
||||
#include "memberinfo.h"
|
||||
#include "multiconflictdialog.h"
|
||||
#include "singleconflictdialog.h"
|
||||
#include "syncprocessmanager.h"
|
||||
|
||||
#include "groupitem.h"
|
||||
|
||||
GroupItem::GroupItem( KWidgetList *parent, SyncProcess *process )
|
||||
: KWidgetListItem( parent ), mSyncProcess( process ),
|
||||
mCallbackHandler( new QSync::CallbackHandler ),
|
||||
mProcessedItems( 0 ), mMaxProcessedItems( 0 ),
|
||||
mSynchronizing( false )
|
||||
{
|
||||
TQFont boldFont;
|
||||
boldFont.setBold( true );
|
||||
boldFont.setPointSize( boldFont.pointSize() + 2 );
|
||||
|
||||
TQGridLayout *layout = new TQGridLayout( this, 4, 4, KDialog::marginHint(), KDialog::spacingHint() );
|
||||
|
||||
mBox = new TQVBox( this );
|
||||
mBox->setMargin( 5 );
|
||||
mProgressBar = new TQProgressBar( this );
|
||||
mProgressBar->setTotalSteps( 100 );
|
||||
|
||||
mTime = new TQLabel( this );
|
||||
mSyncAction = new KURLLabel( "exec:/sync", i18n( "Synchronize Now" ), this );
|
||||
mConfigureAction = new KURLLabel( "exec:/config", i18n( "Configure" ), this );
|
||||
|
||||
// header
|
||||
TQHBox* hbox = new TQHBox( this );
|
||||
hbox->setMargin( 2 );
|
||||
|
||||
static TQPixmap icon;
|
||||
if ( icon.isNull() )
|
||||
icon = TDEGlobal::iconLoader()->loadIcon( "kontact_summary", TDEIcon::Desktop );
|
||||
|
||||
mIcon = new TQLabel( hbox );
|
||||
mIcon->setPixmap( icon );
|
||||
mIcon->setFixedSize( mIcon->sizeHint() );
|
||||
mIcon->setPaletteBackgroundColor( colorGroup().mid() );
|
||||
|
||||
mGroupName = new TQLabel( hbox );
|
||||
mGroupName->setAlignment( AlignLeft | AlignVCenter );
|
||||
mGroupName->setIndent( KDialog::spacingHint() );
|
||||
mGroupName->setFont( boldFont );
|
||||
mGroupName->setPaletteForegroundColor( colorGroup().light() );
|
||||
mGroupName->setPaletteBackgroundColor( colorGroup().mid() );
|
||||
|
||||
mStatus = new TQLabel( hbox );
|
||||
mStatus->setAlignment( TQt::AlignRight );
|
||||
mStatus->setAlignment( AlignRight | AlignVCenter );
|
||||
mStatus->setIndent( KDialog::spacingHint() );
|
||||
mStatus->setFont( boldFont );
|
||||
mStatus->setPaletteForegroundColor( colorGroup().light() );
|
||||
mStatus->setPaletteBackgroundColor( colorGroup().mid() );
|
||||
mStatus->setText( i18n( "Ready" ) );
|
||||
|
||||
hbox->setPaletteBackgroundColor( colorGroup().mid() );
|
||||
hbox->setMaximumHeight( hbox->minimumSizeHint().height() );
|
||||
|
||||
layout->addMultiCellWidget( hbox, 0, 0, 0, 3 );
|
||||
layout->addMultiCellWidget( mBox, 1, 1, 0, 3 );
|
||||
layout->addWidget( mTime, 2, 0 );
|
||||
layout->addWidget( mSyncAction, 2, 1 );
|
||||
layout->addWidget( mConfigureAction, 2, 2 );
|
||||
layout->addWidget( mProgressBar, 2, 3 );
|
||||
layout->setColStretch( 0, 1 );
|
||||
layout->setRowStretch( 3, 1 );
|
||||
|
||||
setPaletteBackgroundColor( kapp->palette().active().base() );
|
||||
|
||||
connect( mCallbackHandler, TQT_SIGNAL( conflict( QSync::SyncMapping ) ),
|
||||
this, TQT_SLOT( conflict( QSync::SyncMapping ) ) );
|
||||
connect( mCallbackHandler, TQT_SIGNAL( change( const QSync::SyncChangeUpdate& ) ),
|
||||
this, TQT_SLOT( change( const QSync::SyncChangeUpdate& ) ) );
|
||||
connect( mCallbackHandler, TQT_SIGNAL( mapping( const QSync::SyncMappingUpdate& ) ),
|
||||
this, TQT_SLOT( mapping( const QSync::SyncMappingUpdate& ) ) );
|
||||
connect( mCallbackHandler, TQT_SIGNAL( engine( const QSync::SyncEngineUpdate& ) ),
|
||||
this, TQT_SLOT( engine( const QSync::SyncEngineUpdate& ) ) );
|
||||
connect( mCallbackHandler, TQT_SIGNAL( member( const QSync::SyncMemberUpdate& ) ),
|
||||
this, TQT_SLOT( member( const QSync::SyncMemberUpdate& ) ) );
|
||||
connect( mSyncAction, TQT_SIGNAL( leftClickedURL() ),
|
||||
this, TQT_SLOT( synchronize() ) );
|
||||
connect( mConfigureAction, TQT_SIGNAL( leftClickedURL() ),
|
||||
this, TQT_SLOT( configure() ) );
|
||||
connect( mSyncProcess, TQT_SIGNAL( engineChanged( QSync::Engine* ) ),
|
||||
this, TQT_SLOT( engineChanged( QSync::Engine* ) ) );
|
||||
|
||||
mCallbackHandler->setEngine( mSyncProcess->engine() );
|
||||
|
||||
setSelectionForegroundColor( TDEGlobalSettings::textColor() );
|
||||
setSelectionBackgroundColor( TDEGlobalSettings::alternateBackgroundColor() );
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
GroupItem::~GroupItem()
|
||||
{
|
||||
delete mCallbackHandler;
|
||||
mCallbackHandler = 0;
|
||||
}
|
||||
|
||||
void GroupItem::update()
|
||||
{
|
||||
clear();
|
||||
|
||||
mGroupName->setText( i18n( "Group: %1" ).arg( mSyncProcess->group().name() ) );
|
||||
|
||||
TQDateTime dateTime = mSyncProcess->group().lastSynchronization();
|
||||
if ( dateTime.isValid() )
|
||||
mTime->setText( i18n( "Last synchronized on: %1" ).arg( TDEGlobal::locale()->formatDateTime( dateTime ) ) );
|
||||
else
|
||||
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 );
|
||||
item->show();
|
||||
item->setStatusMessage( i18n( "Ready" ) );
|
||||
mMemberItems.append( item );
|
||||
}
|
||||
}
|
||||
|
||||
void GroupItem::clear()
|
||||
{
|
||||
mGroupName->setText( TQString() );
|
||||
|
||||
TQValueList<MemberItem*>::Iterator it;
|
||||
for ( it = mMemberItems.begin(); it != mMemberItems.end(); ++it )
|
||||
delete *it;
|
||||
|
||||
mMemberItems.clear();
|
||||
}
|
||||
|
||||
void GroupItem::conflict( QSync::SyncMapping mapping )
|
||||
{
|
||||
if ( mapping.changesCount() == 2 ) {
|
||||
SingleConflictDialog dlg( mapping, this );
|
||||
dlg.exec();
|
||||
} else {
|
||||
MultiConflictDialog dlg( mapping, this );
|
||||
dlg.exec();
|
||||
}
|
||||
}
|
||||
|
||||
void GroupItem::change( const QSync::SyncChangeUpdate &update )
|
||||
{
|
||||
switch ( update.type() ) {
|
||||
case QSync::SyncChangeUpdate::Received:
|
||||
mProcessedItems++;
|
||||
mStatus->setText( i18n( "%1 entries read" ).arg( mProcessedItems ) );
|
||||
break;
|
||||
case QSync::SyncChangeUpdate::ReceivedInfo:
|
||||
mStatus->setText( i18n( "Receive information" ) );
|
||||
break;
|
||||
case QSync::SyncChangeUpdate::Sent:
|
||||
mProcessedItems--;
|
||||
mStatus->setText( i18n( "%1 entries written" ).arg( mMaxProcessedItems - mProcessedItems ) );
|
||||
|
||||
mProgressBar->show();
|
||||
|
||||
{
|
||||
int progress = 100;
|
||||
if ( mMaxProcessedItems != 0 )
|
||||
progress = (mProcessedItems * 100) / mMaxProcessedItems;
|
||||
|
||||
if ( progress < 0 )
|
||||
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:
|
||||
mStatus->setText( i18n( "Error" ) );
|
||||
KPassivePopup::message( update.result().message(), this );
|
||||
break;
|
||||
default:
|
||||
mStatus->setText( TQString() );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void GroupItem::mapping( const QSync::SyncMappingUpdate& )
|
||||
{
|
||||
}
|
||||
|
||||
void GroupItem::engine( const QSync::SyncEngineUpdate &update )
|
||||
{
|
||||
switch ( update.type() ) {
|
||||
case QSync::SyncEngineUpdate::EndPhaseConnected:
|
||||
mStatus->setText( i18n( "Connected" ) );
|
||||
mProgressBar->setProgress( 0 );
|
||||
mSynchronizing = true;
|
||||
mSyncAction->setText( "Abort Synchronization" );
|
||||
break;
|
||||
case QSync::SyncEngineUpdate::EndPhaseRead:
|
||||
mStatus->setText( i18n( "Data read" ) );
|
||||
break;
|
||||
case QSync::SyncEngineUpdate::EndPhaseWrite:
|
||||
mStatus->setText( i18n( "Data written" ) );
|
||||
mProgressBar->setProgress( 100 );
|
||||
mProcessedItems = mMaxProcessedItems = 0;
|
||||
break;
|
||||
case QSync::SyncEngineUpdate::EndPhaseDisconnected:
|
||||
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:
|
||||
mStatus->setText( i18n( "Successfully synchronized" ) );
|
||||
mSyncProcess->group().setLastSynchronization( TQDateTime::currentDateTime() );
|
||||
mSyncProcess->group().save();
|
||||
this->update();
|
||||
|
||||
mSynchronizing = false;
|
||||
mSyncAction->setText( i18n( "Synchronize Now" ) );
|
||||
break;
|
||||
case QSync::SyncEngineUpdate::PrevUnclean:
|
||||
mStatus->setText( i18n( "Previous synchronization failed" ) );
|
||||
break;
|
||||
case QSync::SyncEngineUpdate::EndConflicts:
|
||||
mStatus->setText( i18n( "Conflicts solved" ) );
|
||||
mMaxProcessedItems = mProcessedItems;
|
||||
break;
|
||||
default:
|
||||
mStatus->setText( TQString() );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void GroupItem::member( const QSync::SyncMemberUpdate &update )
|
||||
{
|
||||
TQValueList<MemberItem*>::Iterator it;
|
||||
for ( it = mMemberItems.begin(); it != mMemberItems.end(); ++it ) {
|
||||
if ( (*it)->member() == update.member() ) {
|
||||
switch ( update.type() ) {
|
||||
case QSync::SyncMemberUpdate::Connected:
|
||||
(*it)->setStatusMessage( i18n( "Connected" ) );
|
||||
break;
|
||||
case QSync::SyncMemberUpdate::SentChanges:
|
||||
(*it)->setStatusMessage( i18n( "Changes read" ) );
|
||||
break;
|
||||
case QSync::SyncMemberUpdate::CommittedAll:
|
||||
(*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() ) );
|
||||
break;
|
||||
case QSync::SyncMemberUpdate::GetChangesError:
|
||||
(*it)->setStatusMessage( i18n( "Error: %1" ).arg( update.result().message() ) );
|
||||
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:
|
||||
(*it)->setStatusMessage( i18n( "Error: %1" ).arg( update.result().message() ) );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GroupItem::synchronize()
|
||||
{
|
||||
if ( !mSynchronizing )
|
||||
emit synchronizeGroup( mSyncProcess );
|
||||
else
|
||||
emit abortSynchronizeGroup( mSyncProcess );
|
||||
}
|
||||
|
||||
void GroupItem::configure()
|
||||
{
|
||||
emit configureGroup( mSyncProcess );
|
||||
|
||||
this->update();
|
||||
}
|
||||
|
||||
void GroupItem::engineChanged( QSync::Engine *engine )
|
||||
{
|
||||
Q_ASSERT( engine );
|
||||
|
||||
mCallbackHandler->setEngine( engine );
|
||||
|
||||
this->update();
|
||||
}
|
||||
|
||||
MemberItem::MemberItem( TQWidget *parent, SyncProcess *process,
|
||||
const QSync::Member &member )
|
||||
: TQWidget( parent ), mSyncProcess( process ), mMember( member )
|
||||
{
|
||||
TQFont boldFont;
|
||||
boldFont.setBold( true );
|
||||
|
||||
MemberInfo mi( member );
|
||||
|
||||
TQPixmap icon = mi.smallIcon();
|
||||
|
||||
QSync::Plugin plugin = member.plugin();
|
||||
|
||||
TQVBoxLayout *layout = new TQVBoxLayout( this );
|
||||
|
||||
TQHBox* box = new TQHBox( this );
|
||||
box->setMargin( 5 );
|
||||
box->setSpacing( 6 );
|
||||
layout->addWidget( box );
|
||||
|
||||
mIcon = new TQLabel( box );
|
||||
mIcon->setPixmap( icon );
|
||||
mIcon->setAlignment( TQt::AlignTop );
|
||||
mIcon->setFixedWidth( mIcon->sizeHint().width() );
|
||||
|
||||
TQVBox *nameBox = new TQVBox( box );
|
||||
mMemberName = new TQLabel( nameBox );
|
||||
mMemberName->setFont( boldFont );
|
||||
mDescription = new TQLabel( nameBox );
|
||||
|
||||
mStatus = new TQLabel( box );
|
||||
|
||||
mMemberName->setText( member.name() );
|
||||
mDescription->setText( plugin.longName() );
|
||||
}
|
||||
|
||||
void MemberItem::setStatusMessage( const TQString &msg )
|
||||
{
|
||||
mStatus->setText( msg );
|
||||
}
|
||||
|
||||
#include "groupitem.moc"
|
@ -1,112 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef GROUPITEM_H
|
||||
#define GROUPITEM_H
|
||||
|
||||
#include "syncprocess.h"
|
||||
|
||||
#include <libqopensync/callbackhandler.h>
|
||||
|
||||
#include <kwidgetlist.h>
|
||||
|
||||
namespace QSync {
|
||||
class Engine;
|
||||
}
|
||||
|
||||
class MemberItem;
|
||||
class KURLLabel;
|
||||
class TQLabel;
|
||||
class TQProgressBar;
|
||||
class TQVBox;
|
||||
|
||||
class GroupItem : public KWidgetListItem
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
GroupItem( KWidgetList*, SyncProcess *syncProcess );
|
||||
~GroupItem();
|
||||
|
||||
SyncProcess *syncProcess() const { return mSyncProcess; }
|
||||
|
||||
void update();
|
||||
|
||||
void clear();
|
||||
|
||||
signals:
|
||||
void synchronizeGroup( SyncProcess *syncProcess );
|
||||
void abortSynchronizeGroup( SyncProcess *syncProcess );
|
||||
void configureGroup( SyncProcess *syncProcess );
|
||||
|
||||
protected slots:
|
||||
void conflict( QSync::SyncMapping );
|
||||
void change( const QSync::SyncChangeUpdate& );
|
||||
void mapping( const QSync::SyncMappingUpdate& );
|
||||
void engine( const QSync::SyncEngineUpdate& );
|
||||
void member( const QSync::SyncMemberUpdate& );
|
||||
|
||||
void synchronize();
|
||||
void configure();
|
||||
|
||||
void engineChanged( QSync::Engine *engine );
|
||||
|
||||
private:
|
||||
SyncProcess *mSyncProcess;
|
||||
QSync::CallbackHandler *mCallbackHandler;
|
||||
TQValueList<MemberItem*> mMemberItems;
|
||||
|
||||
TQLabel *mIcon;
|
||||
TQLabel *mGroupName;
|
||||
TQLabel *mStatus;
|
||||
TQLabel *mTime;
|
||||
KURLLabel *mSyncAction;
|
||||
KURLLabel *mConfigureAction;
|
||||
TQVBox *mBox;
|
||||
TQProgressBar *mProgressBar;
|
||||
|
||||
int mProcessedItems;
|
||||
int mMaxProcessedItems;
|
||||
bool mSynchronizing;
|
||||
};
|
||||
|
||||
class MemberItem : public TQWidget
|
||||
{
|
||||
public:
|
||||
MemberItem( TQWidget *parent, SyncProcess *syncProcess,
|
||||
const QSync::Member &member );
|
||||
|
||||
SyncProcess* syncProcess() const { return mSyncProcess; }
|
||||
QSync::Member member() const { return mMember; }
|
||||
|
||||
void setStatusMessage( const TQString &msg );
|
||||
|
||||
private:
|
||||
SyncProcess *mSyncProcess;
|
||||
QSync::Member mMember;
|
||||
|
||||
TQLabel *mIcon;
|
||||
TQLabel *mMemberName;
|
||||
TQLabel *mDescription;
|
||||
TQLabel *mStatus;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,99 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <tqlayout.h>
|
||||
|
||||
#include "aboutpage.h"
|
||||
#include "groupitem.h"
|
||||
#include "syncprocessmanager.h"
|
||||
|
||||
#include "groupview.h"
|
||||
|
||||
GroupView::GroupView( TQWidget *parent )
|
||||
: TQWidget( parent ), mAboutPage( 0 )
|
||||
{
|
||||
mLayout = new TQVBoxLayout( this );
|
||||
|
||||
mWidgetList = new KWidgetList( this );
|
||||
|
||||
mLayout->addWidget( mWidgetList );
|
||||
}
|
||||
|
||||
SyncProcess* GroupView::selectedSyncProcess() const
|
||||
{
|
||||
GroupItem *item = static_cast<GroupItem*>( mWidgetList->selectedItem() );
|
||||
if ( item )
|
||||
return item->syncProcess();
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
void GroupView::clear()
|
||||
{
|
||||
mWidgetList->clear();
|
||||
}
|
||||
|
||||
void GroupView::updateView()
|
||||
{
|
||||
clear();
|
||||
|
||||
if ( SyncProcessManager::self()->count() == 0 ) {
|
||||
mWidgetList->hide();
|
||||
|
||||
if ( !mAboutPage ) {
|
||||
mAboutPage = new AboutPage( this );
|
||||
mLayout->addWidget( mAboutPage );
|
||||
|
||||
connect( mAboutPage, TQT_SIGNAL( addGroup() ), TQT_SIGNAL( addGroup() ) );
|
||||
}
|
||||
|
||||
mAboutPage->show();
|
||||
|
||||
} else {
|
||||
if ( mAboutPage )
|
||||
mAboutPage->hide();
|
||||
mWidgetList->show();
|
||||
}
|
||||
|
||||
for ( int i = 0; i < SyncProcessManager::self()->count(); ++i ) {
|
||||
SyncProcess *process = SyncProcessManager::self()->at( i );
|
||||
|
||||
GroupItem *item = new GroupItem( mWidgetList, process );
|
||||
connect( item, TQT_SIGNAL( synchronizeGroup( SyncProcess* ) ),
|
||||
TQT_SIGNAL( synchronizeGroup( SyncProcess* ) ) );
|
||||
connect( item, TQT_SIGNAL( abortSynchronizeGroup( SyncProcess* ) ),
|
||||
TQT_SIGNAL( abortSynchronizeGroup( SyncProcess* ) ) );
|
||||
connect( item, TQT_SIGNAL( configureGroup( SyncProcess* ) ),
|
||||
TQT_SIGNAL( configureGroup( SyncProcess* ) ) );
|
||||
|
||||
mWidgetList->appendItem( item );
|
||||
}
|
||||
}
|
||||
|
||||
void GroupView::updateSyncProcess( SyncProcess *syncProcess )
|
||||
{
|
||||
for ( int i = 0; i < (int)mWidgetList->count(); ++i ) {
|
||||
GroupItem *item = static_cast<GroupItem*>( mWidgetList->item( i ) );
|
||||
if ( item && item->syncProcess() == syncProcess )
|
||||
item->update();
|
||||
}
|
||||
}
|
||||
|
||||
#include "groupview.moc"
|
@ -1,58 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
#ifndef GROUPVIEW_H
|
||||
#define GROUPVIEW_H
|
||||
|
||||
#include <kwidgetlist.h>
|
||||
|
||||
class AboutPage;
|
||||
class SyncProcess;
|
||||
class TQVBoxLayout;
|
||||
|
||||
class GroupView : public TQWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
GroupView( TQWidget *parent );
|
||||
|
||||
SyncProcess* selectedSyncProcess() const;
|
||||
|
||||
void clear();
|
||||
|
||||
public slots:
|
||||
void updateView();
|
||||
void updateSyncProcess( SyncProcess *process );
|
||||
|
||||
signals:
|
||||
void addGroup();
|
||||
void synchronizeGroup( SyncProcess *syncProcess );
|
||||
void abortSynchronizeGroup( SyncProcess *syncProcess );
|
||||
void configureGroup( SyncProcess *syncProcess );
|
||||
|
||||
private:
|
||||
AboutPage *mAboutPage;
|
||||
KWidgetList *mWidgetList;
|
||||
|
||||
TQVBoxLayout *mLayout;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,97 +0,0 @@
|
||||
/*
|
||||
This file is part of libtdepim.
|
||||
|
||||
Copyright (c) 2004 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 <tdeglobalsettings.h>
|
||||
|
||||
#include "htmldiffalgodisplay.h"
|
||||
|
||||
using namespace KSync;
|
||||
|
||||
static TQString textToHTML( const TQString &text )
|
||||
{
|
||||
return TQStyleSheet::convertFromPlainText( text );
|
||||
}
|
||||
|
||||
HTMLDiffAlgoDisplay::HTMLDiffAlgoDisplay( TQWidget *parent )
|
||||
: KTextBrowser( parent )
|
||||
{
|
||||
setWrapPolicy( TQTextEdit::AtWordBoundary );
|
||||
setVScrollBarMode( TQScrollView::AlwaysOff );
|
||||
setHScrollBarMode( TQScrollView::AlwaysOff );
|
||||
}
|
||||
|
||||
void HTMLDiffAlgoDisplay::begin()
|
||||
{
|
||||
clear();
|
||||
mText = "";
|
||||
|
||||
mText.append( "<html>" );
|
||||
mText.append( TQString( "<body text=\"%1\" bgcolor=\"%2\">" )
|
||||
.arg( TDEGlobalSettings::textColor().name() )
|
||||
.arg( TDEGlobalSettings::baseColor().name() ) );
|
||||
|
||||
mText.append( "<center><table>" );
|
||||
mText.append( TQString( "<tr><th></th><th align=\"center\">%1</th><td> </td><th align=\"center\">%2</th></tr>" )
|
||||
.arg( mLeftTitle )
|
||||
.arg( mRightTitle ) );
|
||||
}
|
||||
|
||||
void HTMLDiffAlgoDisplay::end()
|
||||
{
|
||||
mText.append( "</table></center>"
|
||||
"</body>"
|
||||
"</html>" );
|
||||
|
||||
setText( mText );
|
||||
}
|
||||
|
||||
void HTMLDiffAlgoDisplay::setLeftSourceTitle( const TQString &title )
|
||||
{
|
||||
mLeftTitle = title;
|
||||
}
|
||||
|
||||
void HTMLDiffAlgoDisplay::setRightSourceTitle( const TQString &title )
|
||||
{
|
||||
mRightTitle = title;
|
||||
}
|
||||
|
||||
void HTMLDiffAlgoDisplay::additionalLeftField( const TQString &id, const TQString &value )
|
||||
{
|
||||
mText.append( TQString( "<tr><td align=\"right\"><b>%1:</b></td><td bgcolor=\"#9cff83\">%2</td><td></td><td></td></tr>" )
|
||||
.arg( id )
|
||||
.arg( textToHTML( value ) ) );
|
||||
}
|
||||
|
||||
void HTMLDiffAlgoDisplay::additionalRightField( const TQString &id, const TQString &value )
|
||||
{
|
||||
mText.append( TQString( "<tr><td align=\"right\"><b>%1:</b></td><td></td><td></td><td bgcolor=\"#9cff83\">%2</td></tr>" )
|
||||
.arg( id )
|
||||
.arg( textToHTML( value ) ) );
|
||||
}
|
||||
|
||||
void HTMLDiffAlgoDisplay::conflictField( const TQString &id, const TQString &leftValue,
|
||||
const TQString &rightValue )
|
||||
{
|
||||
mText.append( TQString( "<tr><td align=\"right\"><b>%1:</b></td><td bgcolor=\"#ff8686\">%2</td><td></td><td bgcolor=\"#ff8686\">%3</td></tr>" )
|
||||
.arg( id )
|
||||
.arg( textToHTML( leftValue ) )
|
||||
.arg( textToHTML( rightValue ) ) );
|
||||
}
|
@ -1,54 +0,0 @@
|
||||
/*
|
||||
This file is part of libtdepim.
|
||||
|
||||
Copyright (c) 2004 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 KSYNC_HTMLDIFFALGODISPLAY_H
|
||||
#define KSYNC_HTMLDIFFALGODISPLAY_H
|
||||
|
||||
#include <ktextbrowser.h>
|
||||
#include <libtdepim/diffalgo.h>
|
||||
|
||||
using namespace KPIM;
|
||||
|
||||
namespace KSync {
|
||||
|
||||
class HTMLDiffAlgoDisplay : virtual public DiffAlgoDisplay, public KTextBrowser
|
||||
{
|
||||
public:
|
||||
HTMLDiffAlgoDisplay( TQWidget *parent );
|
||||
|
||||
void begin();
|
||||
void end();
|
||||
void setLeftSourceTitle( const TQString &title );
|
||||
void setRightSourceTitle( const TQString &title );
|
||||
void additionalLeftField( const TQString &id, const TQString &value );
|
||||
void additionalRightField( const TQString &id, const TQString &value );
|
||||
void conflictField( const TQString &id, const TQString &leftValue,
|
||||
const TQString &rightValue );
|
||||
|
||||
private:
|
||||
TQString mLeftTitle;
|
||||
TQString mRightTitle;
|
||||
TQString mText;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -1,16 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Name=KitchenSync
|
||||
|
||||
GenericName=Synchronization
|
||||
|
||||
Exec=kitchensync
|
||||
Icon=kitchensync
|
||||
Type=Application
|
||||
X-DocPath=kitchensync/index.html
|
||||
Terminal=false
|
||||
X-TDE-StartupNotify=true
|
||||
X-DCOP-ServiceType=Unique
|
||||
X-DCOP-ServiceName=kitchensync
|
||||
X-TDE-ServiceTypes=KParts/ReadOnlyPart
|
||||
X-TDE-Library=libkitchensyncpart
|
||||
Categories=Qt;TDE;Utility;Telephony;X-TDE-Utilities-Peripherals;
|
@ -1,22 +0,0 @@
|
||||
<!DOCTYPE kpartgui>
|
||||
<kpartgui name="kitchensync" version="1">
|
||||
<MenuBar>
|
||||
<Menu name="file">
|
||||
<Action name="sync" />
|
||||
</Menu>
|
||||
|
||||
<Menu name="groups"><text>&Groups</text>
|
||||
<Action name="add_group" />
|
||||
<Action name="edit_group" />
|
||||
<Action name="delete_group" />
|
||||
</Menu>
|
||||
</MenuBar>
|
||||
|
||||
<ToolBar name="mainToolBar"><text>Main</text>
|
||||
<Action name="sync" />
|
||||
<Separator />
|
||||
<Action name="add_group" />
|
||||
<Action name="edit_group" />
|
||||
<Action name="delete_group" />
|
||||
</ToolBar>
|
||||
</kpartgui>
|
@ -1,22 +0,0 @@
|
||||
<!DOCTYPE kpartgui>
|
||||
<kpartgui name="kitchensync" version="2">
|
||||
<MenuBar>
|
||||
<Menu name="file">
|
||||
<Action name="sync" />
|
||||
</Menu>
|
||||
|
||||
<Menu name="groups"><text>&Groups</text>
|
||||
<Action name="add_group" />
|
||||
<Action name="edit_group" />
|
||||
<Action name="delete_group" />
|
||||
</Menu>
|
||||
</MenuBar>
|
||||
|
||||
<ToolBar name="mainToolBar"><text>Main</text>
|
||||
<Action name="sync" />
|
||||
<Separator />
|
||||
<Action name="add_group" />
|
||||
<Action name="edit_group" />
|
||||
<Action name="delete_group" />
|
||||
</ToolBar>
|
||||
</kpartgui>
|
@ -1,305 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
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 <tqvbox.h>
|
||||
|
||||
#include <tdeglobalsettings.h>
|
||||
|
||||
#include "kwidgetlist.h"
|
||||
|
||||
class KWidgetList::Private
|
||||
{
|
||||
public:
|
||||
Private()
|
||||
: mSelectedItem( 0 )
|
||||
{
|
||||
}
|
||||
|
||||
TQValueList<KWidgetListItem*> mItems;
|
||||
KWidgetListItem *mSelectedItem;
|
||||
TQVBox *mBox;
|
||||
};
|
||||
|
||||
KWidgetList::KWidgetList( TQWidget *parent, const char *name )
|
||||
: TQScrollView( parent, name ),
|
||||
d( new Private )
|
||||
{
|
||||
d->mBox = new TQVBox( viewport() );
|
||||
addChild( d->mBox );
|
||||
|
||||
setResizePolicy( AutoOneFit );
|
||||
setFocusPolicy( TQ_StrongFocus );
|
||||
|
||||
viewport()->setFocus();
|
||||
}
|
||||
|
||||
KWidgetList::~KWidgetList()
|
||||
{
|
||||
clear();
|
||||
|
||||
delete d;
|
||||
d = 0;
|
||||
}
|
||||
|
||||
uint KWidgetList::count() const
|
||||
{
|
||||
return d->mItems.count();
|
||||
}
|
||||
|
||||
void KWidgetList::appendItem( KWidgetListItem *item )
|
||||
{
|
||||
if ( !item )
|
||||
return;
|
||||
|
||||
if ( !d->mItems.contains( item ) ) {
|
||||
d->mItems.append( item );
|
||||
item->reparent( d->mBox, 0, TQPoint( 0, 0 ), true );
|
||||
item->setSelected( false );
|
||||
item->installEventFilter( this );
|
||||
|
||||
if ( d->mItems.count() == 1 ) {
|
||||
d->mSelectedItem = item;
|
||||
} else {
|
||||
if ( !d->mSelectedItem )
|
||||
setSelected( item );
|
||||
else
|
||||
d->mSelectedItem->setSelected( true );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void KWidgetList::removeItem( int index )
|
||||
{
|
||||
if ( index < 0 || index >= (int)d->mItems.count() )
|
||||
return;
|
||||
|
||||
KWidgetListItem *item = d->mItems[ index ];
|
||||
d->mItems.remove( item );
|
||||
|
||||
if ( d->mSelectedItem == item ) {
|
||||
// TODO: smarter selection
|
||||
if ( !d->mItems.isEmpty() )
|
||||
setSelected( d->mItems.first() );
|
||||
else
|
||||
d->mSelectedItem = 0;
|
||||
}
|
||||
|
||||
delete item;
|
||||
|
||||
if ( d->mItems.count() == 1 )
|
||||
d->mItems.first()->setSelected( false );
|
||||
}
|
||||
|
||||
void KWidgetList::takeItem( KWidgetListItem *item )
|
||||
{
|
||||
d->mItems.remove( item );
|
||||
item->reparent( 0, 0, TQPoint( 0, 0 ) );
|
||||
item->removeEventFilter( this );
|
||||
item->hide();
|
||||
|
||||
if ( d->mSelectedItem == item ) {
|
||||
// TODO: smarter selection
|
||||
if ( !d->mItems.isEmpty() )
|
||||
setSelected( d->mItems.first() );
|
||||
else
|
||||
d->mSelectedItem = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void KWidgetList::setSelected( KWidgetListItem *item )
|
||||
{
|
||||
if ( !item )
|
||||
return;
|
||||
|
||||
if ( d->mItems.contains( item ) == 0 )
|
||||
return;
|
||||
|
||||
if ( d->mSelectedItem )
|
||||
d->mSelectedItem->setSelected( false );
|
||||
|
||||
item->setSelected( true );
|
||||
d->mSelectedItem = item;
|
||||
}
|
||||
|
||||
void KWidgetList::setSelected( int index )
|
||||
{
|
||||
setSelected( item( index ) );
|
||||
}
|
||||
|
||||
bool KWidgetList::isSelected( KWidgetListItem *item ) const
|
||||
{
|
||||
return ( d->mSelectedItem == item );
|
||||
}
|
||||
|
||||
bool KWidgetList::isSelected( int index ) const
|
||||
{
|
||||
return isSelected( item( index ) );
|
||||
}
|
||||
|
||||
KWidgetListItem *KWidgetList::selectedItem() const
|
||||
{
|
||||
return d->mSelectedItem;
|
||||
}
|
||||
|
||||
KWidgetListItem *KWidgetList::item( int index ) const
|
||||
{
|
||||
if ( index < 0 || index >= (int)d->mItems.count() )
|
||||
return 0;
|
||||
else
|
||||
return d->mItems[ index ];
|
||||
}
|
||||
|
||||
int KWidgetList::index( KWidgetListItem *item ) const
|
||||
{
|
||||
return d->mItems.findIndex( item );
|
||||
}
|
||||
|
||||
void KWidgetList::clear()
|
||||
{
|
||||
TQValueList<KWidgetListItem*>::Iterator it;
|
||||
for ( it = d->mItems.begin(); it != d->mItems.end(); ++it )
|
||||
delete *it;
|
||||
|
||||
d->mItems.clear();
|
||||
|
||||
d->mSelectedItem = 0;
|
||||
}
|
||||
|
||||
void KWidgetList::setFocus()
|
||||
{
|
||||
viewport()->setFocus();
|
||||
}
|
||||
|
||||
bool KWidgetList::eventFilter( TQObject *object, TQEvent *event )
|
||||
{
|
||||
if ( event->type() == TQEvent::MouseButtonPress ) {
|
||||
TQMouseEvent *mouseEvent = TQT_TQMOUSEEVENT( event );
|
||||
if ( mouseEvent->button() & Qt::LeftButton ) {
|
||||
TQValueList<KWidgetListItem*>::Iterator it;
|
||||
for ( it = d->mItems.begin(); it != d->mItems.end(); ++it ) {
|
||||
if ( TQT_BASE_OBJECT(*it) == TQT_BASE_OBJECT(object) ) {
|
||||
if ( d->mItems.count() != 1 ) {
|
||||
setSelected( *it );
|
||||
emit selectionChanged( *it );
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if ( event->type() == TQEvent::MouseButtonDblClick ) {
|
||||
TQValueList<KWidgetListItem*>::Iterator it;
|
||||
for ( it = d->mItems.begin(); it != d->mItems.end(); ++it ) {
|
||||
if ( TQT_BASE_OBJECT(*it) == TQT_BASE_OBJECT(object) ) {
|
||||
if ( d->mItems.count() != 1 ) {
|
||||
setSelected( *it );
|
||||
emit doubleClicked( *it );
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else if ( event->type() == TQEvent::KeyPress ) {
|
||||
TQKeyEvent *keyEvent = TQT_TQKEYEVENT( event );
|
||||
if ( keyEvent->key() == TQt::Key_Up ) {
|
||||
if ( d->mSelectedItem == 0 ) {
|
||||
if ( !d->mItems.isEmpty() ) {
|
||||
setSelected( d->mItems.first() );
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
for ( int i = 0; i < (int)d->mItems.count(); ++i ) {
|
||||
if ( d->mItems[ i ] == d->mSelectedItem ) {
|
||||
if ( ( i - 1 ) >= 0 ) {
|
||||
setSelected( d->mItems[ i - 1 ] );
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else if ( keyEvent->key() == TQt::Key_Down ) {
|
||||
if ( d->mSelectedItem == 0 ) {
|
||||
if ( !d->mItems.isEmpty() ) {
|
||||
setSelected( d->mItems.last() );
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
for ( int i = 0; i < (int)d->mItems.count(); ++i )
|
||||
if ( d->mItems[ i ] == d->mSelectedItem ) {
|
||||
if ( ( i + 1 ) < (int)d->mItems.count() ) {
|
||||
setSelected( d->mItems[ i + 1 ] );
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return TQScrollView::eventFilter( object, event );
|
||||
}
|
||||
|
||||
KWidgetListItem::KWidgetListItem( KWidgetList *parent, const char *name )
|
||||
: TQWidget( parent, name )
|
||||
{
|
||||
mForegroundColor = TDEGlobalSettings::textColor();
|
||||
mBackgroundColor = TDEGlobalSettings::baseColor();
|
||||
mSelectionForegroundColor = TDEGlobalSettings::highlightedTextColor();
|
||||
mSelectionBackgroundColor = TDEGlobalSettings::highlightColor();
|
||||
|
||||
setFocusPolicy( TQ_StrongFocus );
|
||||
}
|
||||
|
||||
KWidgetListItem::~KWidgetListItem()
|
||||
{
|
||||
}
|
||||
|
||||
void KWidgetListItem::setSelected( bool select )
|
||||
{
|
||||
if ( select ) {
|
||||
setPaletteForegroundColor( mSelectionForegroundColor );
|
||||
setPaletteBackgroundColor( mSelectionBackgroundColor );
|
||||
} else {
|
||||
setPaletteForegroundColor( mForegroundColor );
|
||||
setPaletteBackgroundColor( mBackgroundColor );
|
||||
}
|
||||
}
|
||||
|
||||
void KWidgetListItem::setForegroundColor( const TQColor &color )
|
||||
{
|
||||
mForegroundColor = color;
|
||||
}
|
||||
|
||||
void KWidgetListItem::setBackgroundColor( const TQColor &color )
|
||||
{
|
||||
mBackgroundColor = color;
|
||||
}
|
||||
|
||||
void KWidgetListItem::setSelectionForegroundColor( const TQColor &color )
|
||||
{
|
||||
mSelectionForegroundColor = color;
|
||||
}
|
||||
|
||||
void KWidgetListItem::setSelectionBackgroundColor( const TQColor &color )
|
||||
{
|
||||
mSelectionBackgroundColor = color;
|
||||
}
|
||||
|
||||
#include "kwidgetlist.moc"
|
@ -1,91 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
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 KWIDGETLIST_H
|
||||
#define KWIDGETLIST_H
|
||||
|
||||
#include <tqscrollview.h>
|
||||
|
||||
class KWidgetListItem;
|
||||
|
||||
class KWidgetList : public TQScrollView
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
KWidgetList( TQWidget *parent = 0, const char *name = 0 );
|
||||
~KWidgetList();
|
||||
|
||||
uint count() const;
|
||||
|
||||
void appendItem( KWidgetListItem *item );
|
||||
void removeItem( int index );
|
||||
void takeItem( KWidgetListItem *item );
|
||||
|
||||
void setSelected( KWidgetListItem *item );
|
||||
void setSelected( int index );
|
||||
|
||||
bool isSelected( KWidgetListItem *item ) const;
|
||||
bool isSelected( int index ) const;
|
||||
|
||||
KWidgetListItem *selectedItem() const;
|
||||
KWidgetListItem *item( int index ) const;
|
||||
|
||||
int index( KWidgetListItem *item ) const;
|
||||
|
||||
virtual bool eventFilter( TQObject *object, TQEvent *event );
|
||||
|
||||
public slots:
|
||||
void clear();
|
||||
virtual void setFocus();
|
||||
|
||||
signals:
|
||||
void selectionChanged( KWidgetListItem *item );
|
||||
void doubleClicked( KWidgetListItem *item );
|
||||
|
||||
private:
|
||||
class Private;
|
||||
Private *d;
|
||||
};
|
||||
|
||||
class KWidgetListItem : public TQWidget
|
||||
{
|
||||
public:
|
||||
KWidgetListItem( KWidgetList *parent, const char *name = 0 );
|
||||
~KWidgetListItem();
|
||||
|
||||
void setSelected( bool selected );
|
||||
|
||||
protected:
|
||||
void setForegroundColor( const TQColor& );
|
||||
void setBackgroundColor( const TQColor& );
|
||||
void setSelectionForegroundColor( const TQColor& );
|
||||
void setSelectionBackgroundColor( const TQColor& );
|
||||
|
||||
private:
|
||||
TQColor mForegroundColor;
|
||||
TQColor mBackgroundColor;
|
||||
TQColor mSelectionForegroundColor;
|
||||
TQColor mSelectionBackgroundColor;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,58 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <kdebug.h>
|
||||
#include <tdeaboutdata.h>
|
||||
#include <tdecmdlineargs.h>
|
||||
#include <kuniqueapplication.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "mainwidget.h"
|
||||
#include "mainwindow.h"
|
||||
|
||||
static TDECmdLineOptions options[] =
|
||||
{
|
||||
TDECmdLineLastOption
|
||||
};
|
||||
|
||||
int main( int argc, char **argv )
|
||||
{
|
||||
TDEAboutData *about = MainWidget::aboutData();
|
||||
|
||||
TDECmdLineArgs::init( argc, argv, about );
|
||||
TDECmdLineArgs::addCmdLineOptions( options );
|
||||
KUniqueApplication::addCmdLineOptions();
|
||||
|
||||
KUniqueApplication::addCmdLineOptions();
|
||||
|
||||
if( !KUniqueApplication::start() ) {
|
||||
kdDebug() << "kitchensync already runs." << endl;
|
||||
exit( 0 );
|
||||
};
|
||||
|
||||
KUniqueApplication app;
|
||||
|
||||
TDEGlobal::locale()->insertCatalogue( "libkcal" );
|
||||
|
||||
MainWindow *mainWindow = new MainWindow;
|
||||
mainWindow->show();
|
||||
|
||||
app.exec();
|
||||
}
|
@ -1,191 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "mainwidget.h"
|
||||
|
||||
#include "groupconfigdialog.h"
|
||||
#include "groupview.h"
|
||||
#include "syncprocess.h"
|
||||
#include "syncprocessmanager.h"
|
||||
|
||||
#include <libqopensync/environment.h>
|
||||
|
||||
#include <tdeaboutdata.h>
|
||||
#include <tdeaction.h>
|
||||
#include <kdebug.h>
|
||||
#include <kinputdialog.h>
|
||||
#include <tdelistview.h>
|
||||
#include <tdelocale.h>
|
||||
#include <tdemessagebox.h>
|
||||
#include <kstdaction.h>
|
||||
#include <kxmlguiclient.h>
|
||||
|
||||
#include <tqlayout.h>
|
||||
|
||||
MainWidget::MainWidget( KXMLGUIClient *guiClient, TQWidget *widget, const char *name )
|
||||
: TQWidget( 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(), TQT_SIGNAL( changed() ),
|
||||
mGroupView, TQT_SLOT( updateView() ) );
|
||||
connect( SyncProcessManager::self(), TQT_SIGNAL( syncProcessChanged( SyncProcess* ) ),
|
||||
mGroupView, TQT_SLOT( updateSyncProcess( SyncProcess* ) ) );
|
||||
|
||||
enableActions();
|
||||
}
|
||||
|
||||
MainWidget::~MainWidget()
|
||||
{
|
||||
}
|
||||
|
||||
KXMLGUIClient *MainWidget::guiClient() const
|
||||
{
|
||||
return mGUIClient;
|
||||
}
|
||||
|
||||
TDEAboutData *MainWidget::aboutData()
|
||||
{
|
||||
TDEAboutData *about = new TDEAboutData( "kitchensync", I18N_NOOP( "KitchenSync" ),
|
||||
"0.1", I18N_NOOP( "The TDE Syncing Application" ),
|
||||
TDEAboutData::License_GPL_V2,
|
||||
I18N_NOOP( "(c) 2005, The KDE PIM Team" ) );
|
||||
about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer" ), "tokoe@kde.org" );
|
||||
about->addAuthor( "Cornelius Schumacher", 0, "schumacher@kde.org" );
|
||||
|
||||
return about;
|
||||
}
|
||||
|
||||
void MainWidget::initGUI()
|
||||
{
|
||||
TQVBoxLayout *topLayout = new TQVBoxLayout( this );
|
||||
|
||||
mGroupView = new GroupView( this );
|
||||
topLayout->addWidget( mGroupView );
|
||||
|
||||
connect( mGroupView, TQT_SIGNAL( addGroup() ), TQT_SLOT( addGroup() ) );
|
||||
connect( mGroupView, TQT_SIGNAL( synchronizeGroup( SyncProcess* ) ),
|
||||
TQT_SLOT( sync( SyncProcess* ) ) );
|
||||
connect( mGroupView, TQT_SIGNAL( abortSynchronizeGroup( SyncProcess* ) ),
|
||||
TQT_SLOT( abortSync( SyncProcess* ) ) );
|
||||
connect( mGroupView, TQT_SIGNAL( configureGroup( SyncProcess* ) ),
|
||||
TQT_SLOT( editGroup( SyncProcess* ) ) );
|
||||
}
|
||||
|
||||
void MainWidget::initActions()
|
||||
{
|
||||
mActionSynchronize = new TDEAction( i18n("Synchronize"), "hotsync", 0, TQT_TQOBJECT(this), TQT_SLOT( sync() ),
|
||||
mGUIClient->actionCollection(), "sync" );
|
||||
mActionAddGroup = new TDEAction( i18n("Add Group..."), "document-new", 0, TQT_TQOBJECT(this), TQT_SLOT( addGroup() ),
|
||||
mGUIClient->actionCollection(), "add_group" );
|
||||
mActionDeleteGroup = new TDEAction( i18n("Delete Group..."), "edit-delete", 0, TQT_TQOBJECT(this), TQT_SLOT( deleteGroup() ),
|
||||
mGUIClient->actionCollection(), "delete_group" );
|
||||
mActionEditGroup = new TDEAction( i18n("Edit Group..."), "edit", 0, TQT_TQOBJECT(this), TQT_SLOT( editGroup() ),
|
||||
mGUIClient->actionCollection(), "edit_group" );
|
||||
}
|
||||
|
||||
void MainWidget::enableActions()
|
||||
{
|
||||
bool state = ( SyncProcessManager::self()->count() > 0 );
|
||||
|
||||
mActionSynchronize->setEnabled( state );
|
||||
mActionDeleteGroup->setEnabled( state );
|
||||
mActionEditGroup->setEnabled( state );
|
||||
}
|
||||
|
||||
void MainWidget::addGroup()
|
||||
{
|
||||
bool ok;
|
||||
TQString name = KInputDialog::getText( i18n("Create Synchronization Group"),
|
||||
i18n("Name for new synchronization group."), TQString(), &ok, this );
|
||||
if ( ok ) {
|
||||
SyncProcessManager::self()->addGroup( name );
|
||||
enableActions();
|
||||
|
||||
SyncProcess *process = SyncProcessManager::self()->byGroupName( name );
|
||||
if ( process )
|
||||
editGroup( process );
|
||||
}
|
||||
}
|
||||
|
||||
void MainWidget::deleteGroup()
|
||||
{
|
||||
SyncProcess *syncProcess = mGroupView->selectedSyncProcess();
|
||||
if ( syncProcess ) {
|
||||
int result = KMessageBox::warningContinueCancel( this,
|
||||
i18n("Delete synchronization group '%1'?").arg( syncProcess->group().name() ) );
|
||||
if ( result == KMessageBox::Continue ) {
|
||||
SyncProcessManager::self()->remove( syncProcess );
|
||||
enableActions();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWidget::editGroup()
|
||||
{
|
||||
editGroup( mGroupView->selectedSyncProcess() );
|
||||
}
|
||||
|
||||
void MainWidget::editGroup( SyncProcess *syncProcess )
|
||||
{
|
||||
if ( syncProcess ) {
|
||||
GroupConfigDialog dlg( this, syncProcess );
|
||||
dlg.exec();
|
||||
|
||||
enableActions();
|
||||
}
|
||||
}
|
||||
|
||||
void MainWidget::sync()
|
||||
{
|
||||
sync( mGroupView->selectedSyncProcess() );
|
||||
}
|
||||
|
||||
void MainWidget::sync( SyncProcess *syncProcess )
|
||||
{
|
||||
if ( syncProcess ) {
|
||||
syncProcess->reinitEngine();
|
||||
QSync::Result result = syncProcess->engine()->synchronize();
|
||||
if ( result ) {
|
||||
tqDebug( "%s", result.message().latin1() );
|
||||
} else {
|
||||
tqDebug( "synchronization worked" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWidget::abortSync( SyncProcess *syncProcess )
|
||||
{
|
||||
if ( syncProcess )
|
||||
syncProcess->engine()->abort();
|
||||
}
|
||||
|
||||
#include "mainwidget.moc"
|
@ -1,74 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
#ifndef MAINWIDGET_H
|
||||
#define MAINWIDGET_H
|
||||
|
||||
#include <libqopensync/engine.h>
|
||||
#include <kdemacros.h>
|
||||
|
||||
#include <tqwidget.h>
|
||||
|
||||
class TDEAboutData;
|
||||
class TDEAction;
|
||||
class KXMLGUIClient;
|
||||
class GroupView;
|
||||
class SyncProcess;
|
||||
class SyncProcessManager;
|
||||
|
||||
namespace QSync {
|
||||
class Environment;
|
||||
}
|
||||
|
||||
class KDE_EXPORT MainWidget : public TQWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
MainWidget( KXMLGUIClient *guiClient, TQWidget *widget = 0, const char *name = 0 );
|
||||
~MainWidget();
|
||||
|
||||
virtual KXMLGUIClient *guiClient() const;
|
||||
static TDEAboutData *aboutData();
|
||||
|
||||
public slots:
|
||||
void addGroup();
|
||||
void deleteGroup();
|
||||
void editGroup();
|
||||
void editGroup( SyncProcess *syncProcess );
|
||||
|
||||
void sync();
|
||||
void sync( SyncProcess *syncProcess );
|
||||
void abortSync( SyncProcess *syncProcess );
|
||||
|
||||
private:
|
||||
void initGUI();
|
||||
void initActions();
|
||||
void enableActions();
|
||||
|
||||
KXMLGUIClient *mGUIClient;
|
||||
TDEAction *mActionSynchronize;
|
||||
TDEAction *mActionAddGroup;
|
||||
TDEAction *mActionDeleteGroup;
|
||||
TDEAction *mActionEditGroup;
|
||||
|
||||
GroupView *mGroupView;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,61 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <tdeaction.h>
|
||||
#include <tdelocale.h>
|
||||
#include <kstdaction.h>
|
||||
#include <tdetoolbar.h>
|
||||
|
||||
#include "mainwidget.h"
|
||||
|
||||
#include "mainwindow.h"
|
||||
|
||||
MainWindow::MainWindow()
|
||||
: TDEMainWindow( 0 )
|
||||
{
|
||||
setWFlags( getWFlags() | WGroupLeader );
|
||||
|
||||
setCaption( i18n( "PIM Synchronization" ) );
|
||||
|
||||
mWidget = new MainWidget( this, this, "MainWidget" );
|
||||
|
||||
setCentralWidget( mWidget );
|
||||
|
||||
initActions();
|
||||
|
||||
createGUI( "kitchensyncui.rc", false );
|
||||
createGUI( 0 );
|
||||
|
||||
toolBar()->setIconText( TDEToolBar::IconTextBottom );
|
||||
|
||||
resize( 760, 530 ); // initial size
|
||||
setAutoSaveSettings();
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
}
|
||||
|
||||
void MainWindow::initActions()
|
||||
{
|
||||
KStdAction::quit( TQT_TQOBJECT(this), TQT_SLOT( close() ), actionCollection() );
|
||||
}
|
||||
|
||||
#include "mainwindow.moc"
|
@ -1,47 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef MAINWINDOW_H
|
||||
#define MAINWINDOW_H
|
||||
|
||||
#include <tdemainwindow.h>
|
||||
|
||||
class MainWidget;
|
||||
|
||||
/**
|
||||
This class serves as the main window for Kitchensync. It handles the
|
||||
menus, toolbars, and status bars.
|
||||
*/
|
||||
class MainWindow : public TDEMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
MainWindow();
|
||||
virtual ~MainWindow();
|
||||
|
||||
private:
|
||||
void initActions();
|
||||
|
||||
MainWidget *mWidget;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,79 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "memberconfig.h"
|
||||
|
||||
#include "configgui.h"
|
||||
#include "memberinfo.h"
|
||||
|
||||
#include <tdelocale.h>
|
||||
#include <tdemessagebox.h>
|
||||
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqtabwidget.h>
|
||||
|
||||
MemberConfig::MemberConfig( TQWidget *parent, const QSync::Member &member )
|
||||
: TQWidget( parent ), mMember( member )
|
||||
{
|
||||
TQBoxLayout *topLayout = new TQVBoxLayout( this );
|
||||
|
||||
mGui = ConfigGui::Factory::create( member, this );
|
||||
topLayout->addWidget( mGui );
|
||||
}
|
||||
|
||||
MemberConfig::~MemberConfig()
|
||||
{
|
||||
}
|
||||
|
||||
void MemberConfig::loadData()
|
||||
{
|
||||
TQByteArray cfg;
|
||||
QSync::Result error = mMember.configuration( cfg );
|
||||
|
||||
if ( error ) {
|
||||
KMessageBox::error( this,
|
||||
i18n("Unable to read config from plugin '%1':\n%2")
|
||||
.arg( mMember.pluginName() ).arg( error.message() ) );
|
||||
} else {
|
||||
TQString txt = TQString::fromUtf8( cfg.data(), cfg.size() );
|
||||
mGui->load( txt );
|
||||
MemberInfo mi( mMember );
|
||||
mGui->setInstanceName( mi.name() );
|
||||
}
|
||||
}
|
||||
|
||||
void MemberConfig::saveData()
|
||||
{
|
||||
TQString txt = mGui->save();
|
||||
|
||||
if ( txt.isEmpty() ) {
|
||||
KMessageBox::sorry( this, i18n("Configuration of %1 is empty.").arg( mMember.pluginName() ) );
|
||||
} else {
|
||||
TQByteArray cfg = txt.utf8();
|
||||
cfg.truncate(cfg.size() - 1); /* discard NUL terminator */
|
||||
mMember.setConfiguration( cfg );
|
||||
mMember.setName( mGui->instanceName() );
|
||||
// TODO: Check for save() error.
|
||||
mMember.save();
|
||||
}
|
||||
}
|
||||
|
||||
#include "memberconfig.moc"
|
@ -1,48 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
#ifndef MEMBERCONFIG_H
|
||||
#define MEMBERCONFIG_H
|
||||
|
||||
#include <libqopensync/member.h>
|
||||
|
||||
#include <tqwidget.h>
|
||||
|
||||
class TQTextEdit;
|
||||
class ConfigGui;
|
||||
|
||||
class MemberConfig : public TQWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
MemberConfig( TQWidget *parent, const QSync::Member & );
|
||||
~MemberConfig();
|
||||
|
||||
void loadData();
|
||||
void saveData();
|
||||
|
||||
private:
|
||||
QSync::Member mMember;
|
||||
|
||||
ConfigGui *mGui;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,99 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "memberinfo.h"
|
||||
|
||||
#include <tdeglobal.h>
|
||||
#include <kiconloader.h>
|
||||
#include <tdelocale.h>
|
||||
|
||||
MemberInfo::MemberInfo( const QSync::Member &member )
|
||||
: mMember( member )
|
||||
{
|
||||
}
|
||||
|
||||
TQPixmap MemberInfo::smallIcon() const
|
||||
{
|
||||
return TDEGlobal::iconLoader()->loadIcon( iconName(), TDEIcon::Small );
|
||||
}
|
||||
|
||||
TQPixmap MemberInfo::desktopIcon() const
|
||||
{
|
||||
return TDEGlobal::iconLoader()->loadIcon( iconName(), TDEIcon::Desktop );
|
||||
}
|
||||
|
||||
TQString MemberInfo::iconName() const
|
||||
{
|
||||
return pluginIconName( mMember.pluginName() );
|
||||
}
|
||||
|
||||
TQString MemberInfo::name() const
|
||||
{
|
||||
static TQMap<TQString, TQString> nameMap;
|
||||
if ( nameMap.isEmpty() ) {
|
||||
nameMap.insert( "file-sync", i18n( "File" ) );
|
||||
nameMap.insert( "palm-sync", i18n( "Palm" ) );
|
||||
nameMap.insert( "tdepim-sync", i18n( "TDE PIM" ) );
|
||||
nameMap.insert( "tdeio-sync", i18n( "Remote File" ) );
|
||||
nameMap.insert( "irmc-sync", i18n( "Mobile Phone" ) );
|
||||
nameMap.insert( "evo2-sync", i18n( "Evolution" ) );
|
||||
nameMap.insert( "opie-sync", i18n( "Handheld" ) );
|
||||
nameMap.insert( "ldap-sync", i18n( "LDAP" ) );
|
||||
nameMap.insert( "syncml-obex-client", i18n( "Mobile Phone" ) );
|
||||
nameMap.insert( "syncml-http-server", i18n( "Mobile Phone" ) );
|
||||
nameMap.insert( "moto-sync", i18n( "Mobile Phone" ) );
|
||||
nameMap.insert( "gnokii-sync", i18n( "Mobile Phone" ) );
|
||||
nameMap.insert( "google-calendar", i18n( "Google Calendar" ) );
|
||||
nameMap.insert( "gpe-sync", i18n( "Handheld" ) );
|
||||
nameMap.insert( "sunbird-sync", i18n( "Sunbird Calendar" ) );
|
||||
nameMap.insert( "jescs-sync", i18n( "Java Enterprise System Calendar" ) );
|
||||
nameMap.insert( "synce-plugin", i18n( "WinCE Devices" ) );
|
||||
}
|
||||
|
||||
if ( mMember.name().isEmpty() )
|
||||
return nameMap[ mMember.pluginName() ] + " (" + TQString::number( mMember.id() ) + ") ";
|
||||
else
|
||||
return mMember.name();
|
||||
}
|
||||
|
||||
TQString MemberInfo::pluginIconName( const TQString &pluginName )
|
||||
{
|
||||
if ( pluginName == "file-sync" ) return "folder";
|
||||
if ( pluginName == "palm-sync" ) return "pda_black";
|
||||
if ( pluginName == "tdepim-sync" ) return "kontact";
|
||||
if ( pluginName == "tdeio-sync" ) return "network";
|
||||
if ( pluginName == "irmc-sync" ) return "mobile_phone";
|
||||
if ( pluginName == "evo2-sync" ) return "evolution";
|
||||
if ( pluginName == "opie-sync" ) return "pda_blue";
|
||||
if ( pluginName == "synce-plugin" ) return "pda_blue";
|
||||
if ( pluginName == "ldap-sync" ) return "contents2";
|
||||
if ( pluginName == "syncml-obex-client" ) return "mobile_phone";
|
||||
if ( pluginName == "syncml-http-server" ) return "pda_blue";
|
||||
if ( pluginName == "moto-sync" ) return "mobile_phone";
|
||||
if ( pluginName == "gnokii-sync" ) return "mobile_phone";
|
||||
if ( pluginName == "google-calendar" ) return "www";
|
||||
if ( pluginName == "gpe-sync" ) return "pda_blue";
|
||||
if ( pluginName == "sunbird-sync" ) return "www";
|
||||
if ( pluginName == "jescs-sync" ) return "www";
|
||||
|
||||
|
||||
return TQString();
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
#ifndef MEMBERINFO_H
|
||||
#define MEMBERINFO_H
|
||||
|
||||
#include <libqopensync/member.h>
|
||||
|
||||
#include <tqstring.h>
|
||||
#include <tqpixmap.h>
|
||||
|
||||
class MemberInfo
|
||||
{
|
||||
public:
|
||||
MemberInfo( const QSync::Member &member );
|
||||
|
||||
TQPixmap smallIcon() const;
|
||||
TQPixmap desktopIcon() const;
|
||||
|
||||
TQString iconName() const;
|
||||
|
||||
TQString name() const;
|
||||
|
||||
static TQString pluginIconName( const TQString &pluginName );
|
||||
|
||||
private:
|
||||
QSync::Member mMember;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,141 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <kdialog.h>
|
||||
#include <tdelocale.h>
|
||||
#include <kwidgetlist.h>
|
||||
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqpushbutton.h>
|
||||
|
||||
#include "memberinfo.h"
|
||||
|
||||
#include "multiconflictdialog.h"
|
||||
|
||||
class ChangeItem : public KWidgetListItem
|
||||
{
|
||||
public:
|
||||
ChangeItem( KWidgetList *parent, const QSync::SyncChange &change )
|
||||
: KWidgetListItem( parent ),
|
||||
mChange( change )
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( this, 2, 1, KDialog::marginHint(), KDialog::spacingHint() );
|
||||
|
||||
MemberInfo mi( change.member() );
|
||||
layout->addWidget( new TQLabel( mi.name(), this ), 0, 0 );
|
||||
|
||||
TQString type;
|
||||
switch ( change.changeType() ) {
|
||||
case QSync::SyncChange::UnknownChange:
|
||||
type = i18n( "Unknown" );
|
||||
break;
|
||||
case QSync::SyncChange::AddedChange:
|
||||
type = i18n( "Added" );
|
||||
break;
|
||||
case QSync::SyncChange::DeletedChange:
|
||||
type = i18n( "Deleted" );
|
||||
break;
|
||||
case QSync::SyncChange::ModifiedChange:
|
||||
type = i18n( "Modified" );
|
||||
break;
|
||||
case QSync::SyncChange::UnmodifiedChange:
|
||||
default:
|
||||
type = i18n( "Unmodified" );
|
||||
break;
|
||||
}
|
||||
|
||||
layout->addWidget( new TQLabel( type, this ), 1, 0 );
|
||||
}
|
||||
|
||||
QSync::SyncChange change() const { return mChange; }
|
||||
|
||||
private:
|
||||
QSync::SyncChange mChange;
|
||||
};
|
||||
|
||||
MultiConflictDialog::MultiConflictDialog( QSync::SyncMapping &mapping, TQWidget *parent )
|
||||
: ConflictDialog( mapping, parent )
|
||||
{
|
||||
initGUI();
|
||||
|
||||
for ( int i = 0; i < mMapping.changesCount(); ++i ) {
|
||||
QSync::SyncChange change = mMapping.changeAt( i );
|
||||
if ( change.isValid() ) {
|
||||
ChangeItem *item = new ChangeItem( mWidgetList, change );
|
||||
mWidgetList->appendItem( item );
|
||||
}
|
||||
}
|
||||
|
||||
mWidgetList->setFocus();
|
||||
}
|
||||
|
||||
MultiConflictDialog::~MultiConflictDialog()
|
||||
{
|
||||
}
|
||||
|
||||
void MultiConflictDialog::useSelectedChange()
|
||||
{
|
||||
ChangeItem *item = static_cast<ChangeItem*>( mWidgetList->selectedItem() );
|
||||
if ( !item )
|
||||
return;
|
||||
|
||||
mMapping.solve( item->change() );
|
||||
|
||||
accept();
|
||||
}
|
||||
|
||||
void MultiConflictDialog::duplicateChange()
|
||||
{
|
||||
mMapping.duplicate();
|
||||
|
||||
accept();
|
||||
}
|
||||
|
||||
void MultiConflictDialog::ignoreChange()
|
||||
{
|
||||
mMapping.ignore();
|
||||
|
||||
accept();
|
||||
}
|
||||
|
||||
void MultiConflictDialog::initGUI()
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( this, 3, 3, KDialog::marginHint(), KDialog::spacingHint() );
|
||||
|
||||
layout->addMultiCellWidget( new TQLabel( i18n( "A conflict has appeared, please solve it manually." ), this ), 0, 0, 0, 2 );
|
||||
|
||||
mWidgetList = new KWidgetList( this );
|
||||
layout->addMultiCellWidget( mWidgetList, 1, 1, 0, 2 );
|
||||
|
||||
TQPushButton *button = new TQPushButton( i18n( "Use Selected Item" ), this );
|
||||
connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( useSelectedChange() ) );
|
||||
layout->addWidget( button, 2, 0 );
|
||||
|
||||
button = new TQPushButton( i18n( "Duplicate Items" ), this );
|
||||
connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( duplicateChange() ) );
|
||||
layout->addWidget( button, 2, 1 );
|
||||
|
||||
button = new TQPushButton( i18n( "Ignore Conflict" ), this );
|
||||
connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( ignoreChange() ) );
|
||||
layout->addWidget( button, 2, 2 );
|
||||
}
|
||||
|
||||
#include "multiconflictdialog.moc"
|
@ -1,48 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef MULTICONFLICTDIALOG_H
|
||||
#define MULTICONFLICTDIALOG_H
|
||||
|
||||
#include "conflictdialog.h"
|
||||
|
||||
class KWidgetList;
|
||||
|
||||
class MultiConflictDialog : public ConflictDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
MultiConflictDialog( QSync::SyncMapping &mapping, TQWidget *parent );
|
||||
~MultiConflictDialog();
|
||||
|
||||
private slots:
|
||||
void useSelectedChange();
|
||||
void duplicateChange();
|
||||
void ignoreChange();
|
||||
|
||||
private:
|
||||
void initGUI();
|
||||
|
||||
KWidgetList *mWidgetList;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,89 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <tqlayout.h>
|
||||
#include <tqvbox.h>
|
||||
|
||||
#include <tdeaction.h>
|
||||
#include <tdeapplication.h>
|
||||
#include <kdebug.h>
|
||||
#include <kiconloader.h>
|
||||
#include <kinstance.h>
|
||||
#include <tdelocale.h>
|
||||
#include <tdeparts/genericfactory.h>
|
||||
|
||||
#include "mainwidget.h"
|
||||
|
||||
#include "part.h"
|
||||
|
||||
typedef KParts::GenericFactory< KitchenSyncPart > KitchenSyncFactory;
|
||||
K_EXPORT_COMPONENT_FACTORY( libkitchensyncpart, KitchenSyncFactory )
|
||||
|
||||
KitchenSyncPart::KitchenSyncPart( TQWidget *parentWidget, const char *widgetName,
|
||||
TQObject *parent, const char *name,
|
||||
const TQStringList& )
|
||||
: KParts::ReadOnlyPart( parent, name )
|
||||
{
|
||||
setInstance( KitchenSyncFactory::instance() );
|
||||
|
||||
TQVBox *canvas = new TQVBox( parentWidget, widgetName );
|
||||
setWidget( canvas );
|
||||
|
||||
new MainWidget( this, canvas );
|
||||
|
||||
TDEGlobal::iconLoader()->addAppDir( "kitchensync" );
|
||||
|
||||
setXMLFile( "kitchensync_part.rc" );
|
||||
}
|
||||
|
||||
KitchenSyncPart::~KitchenSyncPart()
|
||||
{
|
||||
closeURL();
|
||||
}
|
||||
|
||||
TDEAboutData *KitchenSyncPart::createAboutData()
|
||||
{
|
||||
return MainWidget::aboutData();
|
||||
}
|
||||
|
||||
void KitchenSyncPart::exit()
|
||||
{
|
||||
delete this;
|
||||
}
|
||||
|
||||
bool KitchenSyncPart::openURL( const KURL &url )
|
||||
{
|
||||
emit setWindowCaption( url.prettyURL() );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool KitchenSyncPart::openFile()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void KitchenSyncPart::guiActivateEvent( KParts::GUIActivateEvent *e )
|
||||
{
|
||||
KParts::ReadOnlyPart::guiActivateEvent( e );
|
||||
}
|
||||
|
||||
#include "part.moc"
|
||||
|
@ -1,50 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef PART_H
|
||||
#define PART_H
|
||||
|
||||
#include <tdeparts/event.h>
|
||||
#include <tdeparts/factory.h>
|
||||
#include <tdeparts/part.h>
|
||||
|
||||
class TDEAboutData;
|
||||
|
||||
class KitchenSyncPart: public KParts::ReadOnlyPart
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
KitchenSyncPart( TQWidget *parentWidget, const char *widgetName,
|
||||
TQObject *parent, const char *name, const TQStringList& );
|
||||
virtual ~KitchenSyncPart();
|
||||
|
||||
static TDEAboutData *createAboutData();
|
||||
|
||||
virtual void exit();
|
||||
virtual bool openURL( const KURL &url );
|
||||
|
||||
protected:
|
||||
virtual bool openFile();
|
||||
virtual void guiActivateEvent( KParts::GUIActivateEvent* );
|
||||
};
|
||||
|
||||
#endif
|
@ -1,13 +0,0 @@
|
||||
#################################################
|
||||
#
|
||||
# (C) 2010-2011 Serghei Amelian
|
||||
# serghei (DOT) amelian (AT) gmail.com
|
||||
#
|
||||
# Improvements and feedback are welcome
|
||||
#
|
||||
# This file is released under GPL >= 2
|
||||
#
|
||||
#################################################
|
||||
|
||||
tde_install_icons( kitchensync )
|
||||
tde_install_icons( hotsync mobile_phone DESTINATION ${DATA_INSTALL_DIR}/kitchensync/icons )
|
@ -1,4 +0,0 @@
|
||||
kitchensyncicondir = $(kde_datadir)/kitchensync/icons
|
||||
kitchensyncicon_ICON = hotsync mobile_phone
|
||||
|
||||
KDE_ICON = kitchensync
|
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 634 B |
Before Width: | Height: | Size: 850 B |
Before Width: | Height: | Size: 932 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 634 B |
Before Width: | Height: | Size: 932 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.5 KiB |
@ -1,136 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "pluginpicker.h"
|
||||
|
||||
#include "memberinfo.h"
|
||||
#include "syncprocessmanager.h"
|
||||
|
||||
#include <libqopensync/environment.h>
|
||||
|
||||
#include <kdialog.h>
|
||||
#include <tdeglobal.h>
|
||||
#include <kiconloader.h>
|
||||
#include <tdelocale.h>
|
||||
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
|
||||
PluginItem::PluginItem( KWidgetList *list, const QSync::Plugin &plugin )
|
||||
: KWidgetListItem( list ), mPlugin( plugin )
|
||||
{
|
||||
TQString iconName = MemberInfo::pluginIconName( mPlugin.name() );
|
||||
TQGridLayout *layout = new TQGridLayout( this, 2, 2, KDialog::marginHint(), KDialog::spacingHint() );
|
||||
|
||||
TQLabel *icon = new TQLabel( this );
|
||||
icon->setPixmap( TDEGlobal::iconLoader()->loadIcon( iconName, TDEIcon::Desktop ) );
|
||||
icon->setFixedSize( icon->sizeHint() );
|
||||
|
||||
TQLabel *name = new TQLabel( plugin.longName(), this );
|
||||
TQLabel *description = new TQLabel( plugin.description(), this );
|
||||
|
||||
TQFont font = name->font();
|
||||
font.setBold( true );
|
||||
name->setFont( font );
|
||||
|
||||
layout->addWidget( icon, 0, 0 );
|
||||
layout->addWidget( name, 0, 1 );
|
||||
layout->addWidget( description, 1, 1 );
|
||||
}
|
||||
|
||||
|
||||
PluginPicker::PluginPicker( TQWidget *parent )
|
||||
: TQWidget( parent )
|
||||
{
|
||||
TQBoxLayout *layout = new TQVBoxLayout( this );
|
||||
|
||||
mPluginList = new KWidgetList( this );
|
||||
layout->addWidget( mPluginList );
|
||||
|
||||
connect( mPluginList, TQT_SIGNAL( doubleClicked( KWidgetListItem* ) ),
|
||||
TQT_SIGNAL( selected() ) );
|
||||
|
||||
updatePluginList();
|
||||
|
||||
mPluginList->setFocus();
|
||||
}
|
||||
|
||||
void PluginPicker::updatePluginList()
|
||||
{
|
||||
mPluginList->clear();
|
||||
|
||||
QSync::Environment *env = SyncProcessManager::self()->environment();
|
||||
|
||||
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
|
||||
{
|
||||
PluginItem *item = static_cast<PluginItem *>( mPluginList->selectedItem() );
|
||||
if ( item ) return item->plugin();
|
||||
else return QSync::Plugin();
|
||||
}
|
||||
|
||||
|
||||
PluginPickerDialog::PluginPickerDialog( TQWidget *parent )
|
||||
: KDialogBase( parent, 0, true, i18n("Select Member Type"), Ok | Cancel )
|
||||
{
|
||||
TQFrame *topFrame = makeMainWidget();
|
||||
|
||||
TQBoxLayout *topLayout = new TQVBoxLayout( topFrame );
|
||||
|
||||
mPicker = new PluginPicker( topFrame );
|
||||
topLayout->addWidget( mPicker );
|
||||
|
||||
connect( mPicker, TQT_SIGNAL( selected() ), TQT_SLOT( slotOk() ) );
|
||||
|
||||
setInitialSize( TQSize( 460, 380 ) );
|
||||
}
|
||||
|
||||
QSync::Plugin PluginPickerDialog::selectedPlugin() const
|
||||
{
|
||||
return mPicker->selectedPlugin();
|
||||
}
|
||||
|
||||
QSync::Plugin PluginPickerDialog::getPlugin( TQWidget *parent )
|
||||
{
|
||||
PluginPickerDialog dlg( parent );
|
||||
if ( dlg.exec() )
|
||||
return dlg.selectedPlugin();
|
||||
else
|
||||
return QSync::Plugin();
|
||||
}
|
||||
|
||||
void PluginPickerDialog::slotOk()
|
||||
{
|
||||
accept();
|
||||
}
|
||||
|
||||
void PluginPickerDialog::slotCancel()
|
||||
{
|
||||
reject();
|
||||
}
|
||||
|
||||
#include "pluginpicker.moc"
|
@ -1,82 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
#ifndef PLUGINPICKER_H
|
||||
#define PLUGINPICKER_H
|
||||
|
||||
#include <libqopensync/plugin.h>
|
||||
|
||||
#include <kdialogbase.h>
|
||||
#include <kwidgetlist.h>
|
||||
|
||||
#include <tqwidget.h>
|
||||
|
||||
class PluginItem : public KWidgetListItem
|
||||
{
|
||||
public:
|
||||
PluginItem( KWidgetList *, const QSync::Plugin & );
|
||||
|
||||
QSync::Plugin plugin() const { return mPlugin; }
|
||||
|
||||
private:
|
||||
QSync::Plugin mPlugin;
|
||||
};
|
||||
|
||||
class PluginPicker : public TQWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
PluginPicker( TQWidget *parent );
|
||||
|
||||
QSync::Plugin selectedPlugin() const;
|
||||
|
||||
signals:
|
||||
void selected();
|
||||
|
||||
protected:
|
||||
void updatePluginList();
|
||||
|
||||
private:
|
||||
KWidgetList *mPluginList;
|
||||
};
|
||||
|
||||
class PluginPickerDialog : public KDialogBase
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
PluginPickerDialog( TQWidget *parent );
|
||||
|
||||
QSync::Plugin selectedPlugin() const;
|
||||
|
||||
static QSync::Plugin getPlugin( TQWidget *parent );
|
||||
|
||||
protected slots:
|
||||
void slotOk();
|
||||
void slotCancel();
|
||||
|
||||
private:
|
||||
PluginPicker *mPicker;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,123 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <kdialog.h>
|
||||
#include <tdelocale.h>
|
||||
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqpushbutton.h>
|
||||
|
||||
#include "addresseediffalgo.h"
|
||||
#include "genericdiffalgo.h"
|
||||
#include "htmldiffalgodisplay.h"
|
||||
#include "memberinfo.h"
|
||||
|
||||
#include "singleconflictdialog.h"
|
||||
|
||||
SingleConflictDialog::SingleConflictDialog( QSync::SyncMapping &mapping, TQWidget *parent )
|
||||
: ConflictDialog( mapping, parent ), mDiffAlgo( 0 )
|
||||
{
|
||||
initGUI();
|
||||
|
||||
TQString format = mapping.changeAt( 0 ).objectFormatName();
|
||||
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" ) {
|
||||
mDiffAlgo = new KSync::AddresseeDiffAlgo( leftChange.data(), rightChange.data() );
|
||||
}
|
||||
|
||||
MemberInfo miLeft( leftChange.member() );
|
||||
mDiffAlgoDisplay->setLeftSourceTitle( miLeft.name() );
|
||||
MemberInfo miRight( rightChange.member() );
|
||||
mDiffAlgoDisplay->setRightSourceTitle( miRight.name() );
|
||||
|
||||
if ( mDiffAlgo ) {
|
||||
mDiffAlgo->addDisplay( mDiffAlgoDisplay );
|
||||
mDiffAlgo->run();
|
||||
}
|
||||
}
|
||||
|
||||
SingleConflictDialog::~SingleConflictDialog()
|
||||
{
|
||||
delete mDiffAlgo;
|
||||
mDiffAlgo = 0;
|
||||
}
|
||||
|
||||
void SingleConflictDialog::useFirstChange()
|
||||
{
|
||||
mMapping.solve( mMapping.changeAt( 0 ) );
|
||||
|
||||
accept();
|
||||
}
|
||||
|
||||
void SingleConflictDialog::useSecondChange()
|
||||
{
|
||||
mMapping.solve( mMapping.changeAt( 1 ) );
|
||||
|
||||
accept();
|
||||
}
|
||||
|
||||
void SingleConflictDialog::duplicateChange()
|
||||
{
|
||||
mMapping.duplicate();
|
||||
|
||||
accept();
|
||||
}
|
||||
|
||||
void SingleConflictDialog::ignoreChange()
|
||||
{
|
||||
mMapping.ignore();
|
||||
|
||||
accept();
|
||||
}
|
||||
|
||||
void SingleConflictDialog::initGUI()
|
||||
{
|
||||
TQGridLayout *layout = new TQGridLayout( this, 3, 4, KDialog::marginHint(), KDialog::spacingHint() );
|
||||
|
||||
layout->addMultiCellWidget( new TQLabel( 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 );
|
||||
|
||||
TQPushButton *button = new TQPushButton( i18n( "Use Item" ), this );
|
||||
connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( useFirstChange() ) );
|
||||
layout->addWidget( button, 2, 0 );
|
||||
|
||||
button = new TQPushButton( i18n( "Duplicate Items" ), this );
|
||||
connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( duplicateChange() ) );
|
||||
layout->addWidget( button, 2, 1 );
|
||||
|
||||
button = new TQPushButton( i18n( "Ignore Conflict" ), this );
|
||||
connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( ignoreChange() ) );
|
||||
layout->addWidget( button, 2, 2 );
|
||||
|
||||
button = new TQPushButton( i18n( "Use Item" ), this );
|
||||
connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( useSecondChange() ) );
|
||||
layout->addWidget( button, 2, 3 );
|
||||
}
|
||||
|
||||
#include "singleconflictdialog.moc"
|
@ -1,55 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef SINGLECONFLICTDIALOG_H
|
||||
#define SINGLECONFLICTDIALOG_H
|
||||
|
||||
#include "conflictdialog.h"
|
||||
#include <libtdepim/diffalgo.h>
|
||||
|
||||
using namespace KPIM;
|
||||
|
||||
namespace KSync {
|
||||
class HTMLDiffAlgoDisplay;
|
||||
}
|
||||
|
||||
class SingleConflictDialog : public ConflictDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
SingleConflictDialog( QSync::SyncMapping &mapping, TQWidget *parent );
|
||||
~SingleConflictDialog();
|
||||
|
||||
private slots:
|
||||
void useFirstChange();
|
||||
void useSecondChange();
|
||||
void duplicateChange();
|
||||
void ignoreChange();
|
||||
|
||||
private:
|
||||
void initGUI();
|
||||
|
||||
DiffAlgo *mDiffAlgo;
|
||||
KSync::HTMLDiffAlgoDisplay *mDiffAlgoDisplay;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,108 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
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 <kdebug.h>
|
||||
#include <tdelocale.h>
|
||||
|
||||
#include "syncprocess.h"
|
||||
#include "syncprocessmanager.h"
|
||||
|
||||
using namespace QSync;
|
||||
|
||||
SyncProcess::SyncProcess( const QSync::Group &group )
|
||||
: TQObject( 0, "SyncProcess" )
|
||||
{
|
||||
mGroup = group;
|
||||
mEngine = new QSync::Engine( mGroup );
|
||||
|
||||
Result result = mEngine->initialize();
|
||||
if ( result.isError() )
|
||||
kdDebug() << "SyncProcess::SyncProcess: " << result.message() << endl;
|
||||
}
|
||||
|
||||
SyncProcess::~SyncProcess()
|
||||
{
|
||||
mEngine->finalize();
|
||||
|
||||
delete mEngine;
|
||||
mEngine = 0;
|
||||
}
|
||||
|
||||
TQString SyncProcess::groupStatus() const
|
||||
{
|
||||
return i18n( "Ready" );
|
||||
}
|
||||
|
||||
TQString SyncProcess::memberStatus( const QSync::Member& ) const
|
||||
{
|
||||
return i18n( "Ready" );
|
||||
}
|
||||
|
||||
QSync::Result SyncProcess::addMember( const QSync::Plugin &plugin )
|
||||
{
|
||||
QSync::Member member = mGroup.addMember();
|
||||
QSync::Result result = member.instance( plugin );
|
||||
|
||||
if ( !result.isError() )
|
||||
mGroup.save();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void SyncProcess::reinitEngine()
|
||||
{
|
||||
mEngine->finalize();
|
||||
delete mEngine;
|
||||
mEngine = new QSync::Engine( mGroup );
|
||||
Result result = mEngine->initialize();
|
||||
if ( result.isError() )
|
||||
kdDebug() << "SyncProcess::reinitEngine: " << result.message() << endl;
|
||||
|
||||
applyObjectTypeFilter();
|
||||
|
||||
emit engineChanged( mEngine );
|
||||
}
|
||||
|
||||
void SyncProcess::applyObjectTypeFilter()
|
||||
{
|
||||
const QSync::Conversion conversion = SyncProcessManager::self()->environment()->conversion();
|
||||
const TQStringList objectTypes = conversion.objectTypes();
|
||||
const TQStringList 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"
|
@ -1,65 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef SYNCPROCESS_H
|
||||
#define SYNCPROCESS_H
|
||||
|
||||
#include <tqobject.h>
|
||||
|
||||
#include <libqopensync/group.h>
|
||||
|
||||
namespace QSync {
|
||||
class Engine;
|
||||
}
|
||||
|
||||
class SyncProcess : public TQObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
public:
|
||||
SyncProcess( const QSync::Group &group );
|
||||
~SyncProcess();
|
||||
|
||||
QSync::Group group() const { return mGroup; }
|
||||
QSync::Engine* engine() const { return mEngine; }
|
||||
|
||||
TQString groupStatus() const;
|
||||
TQString memberStatus( const QSync::Member &member ) const;
|
||||
|
||||
QSync::Result addMember( const QSync::Plugin &plugin );
|
||||
|
||||
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 );
|
||||
|
||||
private:
|
||||
QSync::Group mGroup;
|
||||
QSync::Engine *mEngine;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,172 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
|
||||
#include "syncprocessmanager.h"
|
||||
|
||||
#include "syncprocess.h"
|
||||
|
||||
#include <libqopensync/environment.h>
|
||||
|
||||
#include <kstaticdeleter.h>
|
||||
#include <tdemessagebox.h>
|
||||
#include <tdelocale.h>
|
||||
|
||||
static KStaticDeleter<SyncProcessManager> selfDeleter;
|
||||
|
||||
SyncProcessManager *SyncProcessManager::mSelf = 0;
|
||||
|
||||
SyncProcessManager *SyncProcessManager::self()
|
||||
{
|
||||
if ( !mSelf ) {
|
||||
selfDeleter.setObject( mSelf, new SyncProcessManager() );
|
||||
}
|
||||
return mSelf;
|
||||
}
|
||||
|
||||
SyncProcessManager::SyncProcessManager()
|
||||
{
|
||||
mEnvironment = new QSync::Environment;
|
||||
QSync::Result result = mEnvironment->initialize();
|
||||
if ( result.isError() ) {
|
||||
KMessageBox::error( 0, i18n("Error initializing OpenSync.\n%1")
|
||||
.arg( result.message() ) );
|
||||
} else {
|
||||
init( mEnvironment );
|
||||
}
|
||||
}
|
||||
|
||||
SyncProcessManager::~SyncProcessManager()
|
||||
{
|
||||
TQValueList<SyncProcess*>::Iterator it;
|
||||
for ( it = mProcesses.begin(); it != mProcesses.end(); ++it )
|
||||
delete *it;
|
||||
|
||||
mProcesses.clear();
|
||||
|
||||
mEnvironment->finalize();
|
||||
delete mEnvironment;
|
||||
}
|
||||
|
||||
int SyncProcessManager::count() const
|
||||
{
|
||||
return mProcesses.count();
|
||||
}
|
||||
|
||||
SyncProcess* SyncProcessManager::at( int pos ) const
|
||||
{
|
||||
if ( pos < 0 || pos >= (int)mProcesses.count() )
|
||||
return 0;
|
||||
|
||||
return mProcesses[ pos ];
|
||||
}
|
||||
|
||||
SyncProcess* SyncProcessManager::byGroup( const QSync::Group &group )
|
||||
{
|
||||
TQValueList<SyncProcess*>::Iterator it;
|
||||
for ( it = mProcesses.begin(); it != mProcesses.end(); ++it )
|
||||
if ( (*it)->group() == group )
|
||||
return *it;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
SyncProcess* SyncProcessManager::byGroupName( const TQString &name )
|
||||
{
|
||||
TQValueList<SyncProcess*>::Iterator it;
|
||||
for ( it = mProcesses.begin(); it != mProcesses.end(); ++it )
|
||||
if ( (*it)->group().name() == name )
|
||||
return *it;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void SyncProcessManager::addGroup( const TQString &name )
|
||||
{
|
||||
SyncProcess* process = byGroupName( name );
|
||||
if ( !process ) {
|
||||
QSync::Group group = mEnvironment->addGroup();
|
||||
group.setName( name );
|
||||
group.save();
|
||||
|
||||
mProcesses.append( new SyncProcess( group ) );
|
||||
|
||||
emit changed();
|
||||
} else
|
||||
tqDebug( "Try to add duplicate" );
|
||||
}
|
||||
|
||||
void SyncProcessManager::remove( SyncProcess *syncProcess )
|
||||
{
|
||||
if ( syncProcess ) {
|
||||
mProcesses.remove( syncProcess );
|
||||
const QSync::Group group = syncProcess->group();
|
||||
delete syncProcess;
|
||||
|
||||
mEnvironment->removeGroup( group );
|
||||
|
||||
emit changed();
|
||||
}
|
||||
}
|
||||
|
||||
void SyncProcessManager::init( QSync::Environment *environment )
|
||||
{
|
||||
QSync::Environment::GroupIterator it( environment->groupBegin() );
|
||||
for ( ; it != environment->groupEnd(); ++it ) {
|
||||
/**
|
||||
* 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;
|
||||
int count = group.memberCount();
|
||||
|
||||
bool isValid = true;
|
||||
for ( int i = 0; i < count; ++i ) {
|
||||
const QSync::Member member = group.memberAt( i );
|
||||
|
||||
if ( !member.isValid() ) {
|
||||
isValid = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( isValid )
|
||||
mProcesses.append( new SyncProcess( *it ) );
|
||||
}
|
||||
|
||||
emit changed();
|
||||
}
|
||||
|
||||
QSync::Result SyncProcessManager::addMember( SyncProcess *process,
|
||||
const QSync::Plugin &plugin )
|
||||
{
|
||||
Q_ASSERT( process );
|
||||
|
||||
QSync::Result result = process->addMember( plugin );
|
||||
if ( !result.isError() ) {
|
||||
process->group().save();
|
||||
emit syncProcessChanged( process );
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#include "syncprocessmanager.moc"
|
@ -1,101 +0,0 @@
|
||||
/*
|
||||
This file is part of KitchenSync.
|
||||
|
||||
Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
USA.
|
||||
*/
|
||||
#ifndef SYNCPROCESSMANAGER_H
|
||||
#define SYNCPROCESSMANAGER_H
|
||||
|
||||
#include <tqobject.h>
|
||||
|
||||
#include <libqopensync/group.h>
|
||||
|
||||
namespace QSync {
|
||||
class Environment;
|
||||
}
|
||||
|
||||
class SyncProcess;
|
||||
|
||||
class SyncProcessManager : public TQObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
static SyncProcessManager *self();
|
||||
|
||||
/**
|
||||
Destroys the SyncProcessList.
|
||||
*/
|
||||
~SyncProcessManager();
|
||||
|
||||
/**
|
||||
Return OpenSync Environment.
|
||||
*/
|
||||
QSync::Environment *environment() const { return mEnvironment; }
|
||||
|
||||
/**
|
||||
Returns the number of SyncProcesses.
|
||||
*/
|
||||
int count() const;
|
||||
|
||||
/**
|
||||
Returns the SyncProcess at position @param pos.
|
||||
*/
|
||||
SyncProcess* at( int pos ) const;
|
||||
|
||||
/**
|
||||
Returns the SyncProcess with the given @param group.
|
||||
*/
|
||||
SyncProcess* byGroup( const QSync::Group &group );
|
||||
|
||||
/**
|
||||
Returns the SyncProcess with the given group @param name.
|
||||
*/
|
||||
SyncProcess* byGroupName( const TQString &name );
|
||||
|
||||
/**
|
||||
Adds a group with given @param name.
|
||||
*/
|
||||
void addGroup( const TQString &name );
|
||||
|
||||
/**
|
||||
Removes the given @param sync process.
|
||||
*/
|
||||
void remove( SyncProcess *syncProcess );
|
||||
|
||||
/**
|
||||
Adds @param plugin instance as member to the group of @param process.
|
||||
*/
|
||||
QSync::Result addMember( SyncProcess *process, const QSync::Plugin &plugin );
|
||||
|
||||
signals:
|
||||
void changed();
|
||||
void syncProcessChanged( SyncProcess *process );
|
||||
|
||||
private:
|
||||
SyncProcessManager();
|
||||
|
||||
void init( QSync::Environment *environment );
|
||||
|
||||
TQValueList<SyncProcess*> mProcesses;
|
||||
QSync::Environment *mEnvironment;
|
||||
|
||||
static SyncProcessManager *mSelf;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,166 +0,0 @@
|
||||
/*
|
||||
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 TQString &left, const TQString &right )
|
||||
{
|
||||
if ( left.isEmpty() && right.isEmpty() )
|
||||
return true;
|
||||
else
|
||||
return left == right;
|
||||
}
|
||||
#endif
|
||||
|
||||
XmlDiffAlgo::XmlDiffAlgo( const TQString &leftXml, const TQString &rightXml )
|
||||
{
|
||||
kdDebug() << __func__ << " " << __LINE__ << endl;
|
||||
|
||||
mLeftXml.setContent( leftXml );
|
||||
mRightXml.setContent( rightXml );
|
||||
|
||||
}
|
||||
|
||||
XmlDiffAlgo::XmlDiffAlgo( const TQDomDocument &leftXml, const TQDomDocument &rightXml )
|
||||
: mLeftXml( leftXml ), mRightXml( rightXml )
|
||||
{
|
||||
kdDebug() << __func__ << " " << __LINE__ << endl;
|
||||
}
|
||||
|
||||
void XmlDiffAlgo::appendSingleNodes(TQDomElement &element, bool isLeft)
|
||||
{
|
||||
TQDomNode node;
|
||||
|
||||
for ( node = element.firstChild(); !node.isNull(); node = node.nextSibling() ) {
|
||||
TQDomElement child = node.toElement();
|
||||
|
||||
if (isLeft)
|
||||
additionalLeftField( node.nodeName(), child.text() );
|
||||
else
|
||||
additionalRightField( node.nodeName(), child.text() );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void XmlDiffAlgo::appendConflictNodes(TQDomElement &leftElement, TQDomElement &rightElement)
|
||||
{
|
||||
TQDomNode left, right;
|
||||
TQDomElement 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;
|
||||
|
||||
TQString 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(TQDomElement &leftElement, TQDomElement &rightElement)
|
||||
{
|
||||
TQDomNode left, right;
|
||||
TQDomElement leftChild, rightChild;
|
||||
TQDomNodeList 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() ) {
|
||||
TQString 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();
|
||||
|
||||
TQDomElement leftElement = mLeftXml.documentElement();
|
||||
TQDomElement rightElement = mRightXml.documentElement();
|
||||
|
||||
compareNode( leftElement, rightElement );
|
||||
|
||||
end();
|
||||
}
|
||||
|
@ -1,54 +0,0 @@
|
||||
/*
|
||||
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 <tqdom.h>
|
||||
|
||||
#include <libtdepim/diffalgo.h>
|
||||
|
||||
using namespace KPIM;
|
||||
|
||||
namespace KSync {
|
||||
|
||||
class XmlDiffAlgo : public DiffAlgo
|
||||
{
|
||||
public:
|
||||
XmlDiffAlgo( const TQString &leftXml, const TQString &rightXml );
|
||||
XmlDiffAlgo( const TQDomDocument &leftXml, const TQDomDocument &rightXml );
|
||||
|
||||
void run();
|
||||
|
||||
private:
|
||||
void appendConflictNodes(TQDomElement &leftElement, TQDomElement &rightElement);
|
||||
void appendSingleNodes(TQDomElement &element, bool isLeft);
|
||||
|
||||
|
||||
void compareNode(TQDomElement &leftElement, TQDomElement &rightElement);
|
||||
|
||||
TQDomDocument mLeftXml;
|
||||
TQDomDocument mRightXml;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -1,14 +0,0 @@
|
||||
INCLUDES = -I$(top_srcdir)/kontact/interfaces $(all_includes)
|
||||
|
||||
kde_module_LTLIBRARIES = libkontact_kitchensync.la
|
||||
libkontact_kitchensync_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN)
|
||||
libkontact_kitchensync_la_LIBADD = $(top_builddir)/kontact/interfaces/libkpinterfaces.la
|
||||
|
||||
libkontact_kitchensync_la_SOURCES = kitchensync_plugin.cpp
|
||||
|
||||
METASOURCES = AUTO
|
||||
|
||||
servicedir = $(kde_servicesdir)/kontact
|
||||
service_DATA = kitchensync.desktop
|
||||
|
||||
kitchensynciface_DIR = $(top_srcdir)/kitchensync
|
@ -1,17 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Type=Service
|
||||
Icon=kitchensync
|
||||
X-TDE-ServiceTypes=Kontact/Plugin,KPluginInfo
|
||||
|
||||
X-TDE-Library=libkontact_kitchensync
|
||||
X-TDE-KontactPluginVersion=6
|
||||
X-TDE-KontactPartLibraryName=libkitchensyncpart
|
||||
|
||||
X-TDE-PluginInfo-Name=kontact_kitchensync
|
||||
X-TDE-PluginInfo-Version=0.1
|
||||
X-TDE-PluginInfo-License=GPL
|
||||
X-TDE-PluginInfo-EnabledByDefault=false
|
||||
|
||||
Name=Sync
|
||||
|
||||
Comment=Synchronization Component (Kitchensynk Plugin)
|
@ -1,67 +0,0 @@
|
||||
/*
|
||||
This file is part of Kontact.
|
||||
|
||||
Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
As a special exception, permission is given to link this program
|
||||
with any edition of TQt, and distribute the resulting executable,
|
||||
without including the source code for TQt in the source distribution.
|
||||
*/
|
||||
|
||||
#include <tqwidget.h>
|
||||
|
||||
#include <tdeaboutdata.h>
|
||||
#include <tdeaction.h>
|
||||
#include <tdeapplication.h>
|
||||
#include <kdebug.h>
|
||||
#include <kgenericfactory.h>
|
||||
#include <kiconloader.h>
|
||||
#include <tdemessagebox.h>
|
||||
#include <tdeparts/componentfactory.h>
|
||||
|
||||
#include "core.h"
|
||||
#include "plugin.h"
|
||||
|
||||
#include "kitchensync_plugin.h"
|
||||
|
||||
typedef KGenericFactory< KitchenSyncPlugin, Kontact::Core > KitchenSyncPluginFactory;
|
||||
K_EXPORT_COMPONENT_FACTORY( libkontact_kitchensync,
|
||||
KitchenSyncPluginFactory( "kontact_kitchensync" ) )
|
||||
|
||||
KitchenSyncPlugin::KitchenSyncPlugin( Kontact::Core *core, const char *, const TQStringList& )
|
||||
: Kontact::Plugin( core, TQT_TQOBJECT(core), "KitchenSync" )
|
||||
{
|
||||
setInstance( KitchenSyncPluginFactory::instance() );
|
||||
}
|
||||
|
||||
KitchenSyncPlugin::~KitchenSyncPlugin()
|
||||
{
|
||||
}
|
||||
|
||||
KParts::ReadOnlyPart* KitchenSyncPlugin::createPart()
|
||||
{
|
||||
return loadPart();
|
||||
}
|
||||
|
||||
TQStringList KitchenSyncPlugin::configModules() const
|
||||
{
|
||||
TQStringList modules;
|
||||
modules << "PIM/kitchensync.desktop";
|
||||
return modules;
|
||||
}
|
||||
|
||||
#include "kitchensync_plugin.moc"
|
@ -1,51 +0,0 @@
|
||||
/*
|
||||
This file is part of Kontact.
|
||||
|
||||
Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
As a special exception, permission is given to link this program
|
||||
with any edition of TQt, and distribute the resulting executable,
|
||||
without including the source code for TQt in the source distribution.
|
||||
*/
|
||||
|
||||
#ifndef KITCHENSYNC_PLUGIN_H
|
||||
#define KITCHENSYNC_PLUGIN_H
|
||||
|
||||
#include <tdelocale.h>
|
||||
#include <tdeparts/part.h>
|
||||
|
||||
#include "plugin.h"
|
||||
|
||||
class TDEAboutData;
|
||||
|
||||
class KitchenSyncPlugin : public Kontact::Plugin
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
KitchenSyncPlugin( Kontact::Core *core, const char *name,
|
||||
const TQStringList & );
|
||||
virtual ~KitchenSyncPlugin();
|
||||
|
||||
int weight() const { return 800; }
|
||||
|
||||
virtual TQStringList configModules() const;
|
||||
protected:
|
||||
KParts::ReadOnlyPart *createPart();
|
||||
};
|
||||
|
||||
#endif
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: af\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Sinkronisasie"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: bg\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Синхронизация"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: ca\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Sincronització"
|
@ -1,28 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# Slávek Banko <slavek.banko@axis.cz>, 2020.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: 2020-09-20 18:30+0000\n"
|
||||
"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
|
||||
"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
|
||||
"tdepim/kitchensync-kitchensyncdesktop/cs/>\n"
|
||||
"Language: cs\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.2.2\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr "KitchenSync"
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Synchronizace"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: cy\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Cydamseriad"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: da\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Synkronisering"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Abgleich"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: el\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Συγχρονισμός"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: eo\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Sinkronigo"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Sincronización"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: et\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Sünkroniseerimine"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: eu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Sinkronizazioa"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fa\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "همگامی"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Synkronointi"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Synchronisation"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fy\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Syngronisaasje"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: ga\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Sioncrónú"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: gl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Sincronización"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: he\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "סינכרון"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: hu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Szinkronizáció"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: is\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Samstilling"
|
@ -1,28 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: 2020-11-22 12:59+0000\n"
|
||||
"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
|
||||
"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
|
||||
"projects/tdepim/kitchensync-kitchensyncdesktop/it/>\n"
|
||||
"Language: it\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.3.2\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr "KitchenSync"
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Sincronizzazione"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: ja\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "同期"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr ""
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: kk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Қадамдастыру"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: km\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "ការធ្វើសមកាលកម្ម"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: lt\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Sinchronizacija"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: ms\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Segerakan"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: nb\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Synkronisering"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: nds\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Synkroniseren"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: nl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Synchronisatie"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: nn\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Synkronisering"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: pl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Synchronizacja"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: pt\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr "KitchenSyncFilter"
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Sincronização"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: pt_BR\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Gerenciador de Sincronização"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: ru\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Синхронизация"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: sk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Synchronizácia"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: sl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Usklajevanje"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: sr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Синхронизација"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: sr@Latn\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Sinhronizacija"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: sv\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr "Kitchensync"
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Synkronisering"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: ta\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "கூட்டிணைப்பு"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: tr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Senkronizasyon"
|
@ -1,29 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# Roman Savochenko <roman@oscada.org>, 2020.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: 2020-08-19 19:59+0000\n"
|
||||
"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
|
||||
"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
|
||||
"projects/tdepim/kitchensync-kitchensyncdesktop/uk/>\n"
|
||||
"Language: uk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.1.1\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr "KitchenSync"
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "Синхронізація"
|
@ -1,27 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# This file is put in the public domain.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-07-09 19:58+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: zh_CN\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Name
|
||||
#: kitchensync.desktop:2
|
||||
msgid "KitchenSync"
|
||||
msgstr ""
|
||||
|
||||
#. GenericName
|
||||
#: kitchensync.desktop:4
|
||||
msgid "Synchronization"
|
||||
msgstr "同步"
|