00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#include "localkonnector.h"
00023
00024
#include "localkonnectorconfig.h"
00025
00026
#include <calendarsyncee.h>
00027
#include <addressbooksyncee.h>
00028
#include <bookmarksyncee.h>
00029
00030
#include <kabc/resourcefile.h>
00031
00032
#include <konnectorinfo.h>
00033
#include <kapabilities.h>
00034
00035
#include <kconfig.h>
00036
#include <kgenericfactory.h>
00037
00038
using namespace KSync;
00039
00040
extern "C"
00041 {
00042
void *init_liblocalkonnector()
00043 {
00044
return new KRES::PluginFactory<LocalKonnector,LocalKonnectorConfig>();
00045 }
00046 }
00047
00048
00049 LocalKonnector::LocalKonnector(
const KConfig *config )
00050 :
Konnector( config ), mConfigWidget( 0 )
00051 {
00052
if ( config ) {
00053 mCalendarFile = config->readPathEntry(
"CalendarFile" );
00054 mAddressBookFile = config->readPathEntry(
"AddressBookFile" );
00055 mBookmarkFile = config->readPathEntry(
"BookmarkFile" );
00056 }
00057
00058 mAddressBookSyncee =
new AddressBookSyncee( &mAddressBook );
00059 mAddressBookSyncee->setSource( i18n(
"Local" ) );
00060 mCalendarSyncee =
new CalendarSyncee( &mCalendar );
00061 mCalendarSyncee->setSource( i18n(
"Local" ) );
00062
00063 mSyncees.append( mCalendarSyncee );
00064 mSyncees.append( mAddressBookSyncee );
00065 mSyncees.append(
new BookmarkSyncee( &mBookmarkManager ) );
00066
00067 mAddressBookResourceFile =
new KABC::ResourceFile( mAddressBookFile );
00068 mAddressBook.addResource( mAddressBookResourceFile );
00069 }
00070
00071 LocalKonnector::~LocalKonnector()
00072 {
00073 }
00074
00075
void LocalKonnector::writeConfig( KConfig *config )
00076 {
00077
Konnector::writeConfig( config );
00078
00079 config->writePathEntry(
"CalendarFile", mCalendarFile );
00080 config->writeEntry(
"AddressBookFile", mAddressBookFile );
00081 config->writeEntry(
"BookmarkFile", mAddressBookFile );
00082 }
00083
00084 KSync::Kapabilities LocalKonnector::capabilities()
00085 {
00086 KSync::Kapabilities caps;
00087
00088 caps.setSupportMetaSyncing(
false );
00089 caps.setSupportsPushSync(
false );
00090 caps.setNeedsConnection(
false );
00091 caps.setSupportsListDir(
false );
00092 caps.setNeedsIPs(
false );
00093 caps.setNeedsSrcIP(
false );
00094 caps.setNeedsDestIP(
false );
00095 caps.setAutoHandle(
false );
00096 caps.setNeedAuthentication(
false );
00097 caps.setNeedsModelName(
false );
00098
00099
return caps;
00100 }
00101
00102
void LocalKonnector::setCapabilities(
const KSync::Kapabilities& )
00103 {
00104 }
00105
00106
bool LocalKonnector::readSyncees()
00107 {
00108 kdDebug() <<
"LocalKonnector::readSyncee()" << endl;
00109
00110
if ( !mCalendarFile.isEmpty() ) {
00111 kdDebug() <<
"LocalKonnector::readSyncee(): calendar: " << mCalendarFile
00112 << endl;
00113 mCalendar.close();
00114
if ( mCalendar.load( mCalendarFile ) ) {
00115 kdDebug() <<
"Read succeeded." << endl;
00116 mCalendarSyncee->reset();
00117 mCalendarSyncee->setIdentifier( mCalendarFile );
00118 kdDebug() <<
"IDENTIFIER: " << mCalendarSyncee->identifier() << endl;
00119 }
else {
00120 kdDebug() <<
"Read failed." << endl;
00121
return false;
00122 }
00123 }
00124
00125
if ( !mAddressBookFile.isEmpty() ) {
00126 kdDebug() <<
"LocalKonnector::readSyncee(): addressbook: "
00127 << mAddressBookFile << endl;
00128
00129 mAddressBookResourceFile->setFileName( mAddressBookFile );
00130
if ( !mAddressBook.load() ) {
00131 kdDebug() <<
"Read failed." << endl;
00132
return false;
00133 }
00134
00135 kdDebug() <<
"Read succeeded." << endl;
00136
00137 mAddressBookSyncee->reset();
00138 mAddressBookSyncee->setIdentifier( mAddressBook.identifier() );
00139
00140 KABC::AddressBook::Iterator it;
00141
for ( it = mAddressBook.begin(); it != mAddressBook.end(); ++it ) {
00142 KSync::AddressBookSyncEntry entry( *it, mAddressBookSyncee );
00143 mAddressBookSyncee->addEntry( &entry );
00144 }
00145 }
00146
00147
00148
00149 emit synceesRead(
this );
00150
00151
return true;
00152 }
00153
00154
bool LocalKonnector::connectDevice()
00155 {
00156
return true;
00157 }
00158
00159
bool LocalKonnector::disconnectDevice()
00160 {
00161
return true;
00162 }
00163
00164
KSync::KonnectorInfo LocalKonnector::info()
const
00165
{
00166
return KonnectorInfo( i18n(
"Dummy Konnector"),
00167
QIconSet(),
00168 QString::fromLatin1(
"LocalKonnector"),
00169
"Dummy Konnector",
00170
"agenda",
00171
false );
00172 }
00173
00174
void LocalKonnector::download(
const QString& )
00175 {
00176 error( StdError::downloadNotSupported() );
00177 }
00178
00179
bool LocalKonnector::writeSyncees()
00180 {
00181
if ( !mCalendarFile.isEmpty() ) {
00182
if ( !mCalendar.save( mCalendarFile ) )
return false;
00183 }
00184
00185
if ( !mAddressBookFile.isEmpty() ) {
00186 KABC::Ticket *ticket;
00187 ticket = mAddressBook.requestSaveTicket( mAddressBookResourceFile );
00188
if ( !ticket ) {
00189 kdWarning() <<
"LocalKonnector::writeSyncees(). Couldn't get ticket for "
00190 <<
"addressbook." << endl;
00191
return false;
00192 }
00193
if ( !mAddressBook.save( ticket ) )
return false;
00194 }
00195
00196
00197
00198 emit synceesWritten(
this );
00199
00200
return true;
00201 }
00202
00203
00204
#include "localkonnector.moc"