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 "同步"
|
|