-rw-r--r-- | kabc/plugins/olaccess/olaccess.pro | 2 | ||||
-rw-r--r-- | kabc/plugins/olaccess/olaccessconverter.cpp | 54 | ||||
-rw-r--r-- | kabc/plugins/olaccess/olaccessconverter.h | 20 | ||||
-rw-r--r-- | kabc/plugins/olaccess/resourceolaccess.cpp | 69 | ||||
-rw-r--r-- | kabc/plugins/olaccess/resourceolaccess.h | 21 | ||||
-rw-r--r-- | kabc/plugins/olaccess/resourceolaccessconfig.cpp | 24 | ||||
-rw-r--r-- | kabc/plugins/olaccess/resourceolaccessconfig.h | 4 |
7 files changed, 94 insertions, 100 deletions
diff --git a/kabc/plugins/olaccess/olaccess.pro b/kabc/plugins/olaccess/olaccess.pro index ca0a6a8..4416d0c 100644 --- a/kabc/plugins/olaccess/olaccess.pro +++ b/kabc/plugins/olaccess/olaccess.pro @@ -1,34 +1,34 @@ TEMPLATE = lib CONFIG += qt warn_on TARGET = microkabc_olaccess include( ../../../variables.pri ) -INCLUDEPATH += ../.. ../../../microkde ../../../microkde/kdecore ../../../microkde/kio/kfile ../../../microkde/kio/kio ../../../microkde/kresources ../../../qtcompat +INCLUDEPATH += ../../.. ../.. ../../../microkde ../../../microkde/kdecore ../../../microkde/kio/kfile ../../../microkde/kio/kio ../../../microkde/kresources ../../../qtcompat INTERFACES = \ HEADERS = \ resourceolaccess.h \ resourceolaccessconfig.h \ olaccessconverter.h SOURCES = \ resourceolaccess.cpp \ resourceolaccessconfig.cpp \ olaccessconverter.cpp unix : { OBJECTS_DIR = obj/unix MOC_DIR = moc/unix } win32: { CONFIG += dll DEFINES += _WIN32_ OBJECTS_DIR = obj/win MOC_DIR = moc/win LIBS += ../../../bin/microkdepim.lib LIBS += ../../../bin/microkcal.lib LIBS += ../../../bin/microkde.lib LIBS += ../../../bin/microkabc.lib } diff --git a/kabc/plugins/olaccess/olaccessconverter.cpp b/kabc/plugins/olaccess/olaccessconverter.cpp index 4adcae4..e95f3cb 100644 --- a/kabc/plugins/olaccess/olaccessconverter.cpp +++ b/kabc/plugins/olaccess/olaccessconverter.cpp @@ -1,444 +1,446 @@ /* This file is part of libkabc. Copyright (c) 2002 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Enhanced Version of the file for platform independent KDE tools. Copyright (c) 2004 Ulf Schenk $Id$ */ #include "kglobal.h" #include <qregexp.h> -#include "sharpdtmconverter.h" +#include "olaccessconverter.h" -#include <sl/slcategories.h> #include <libkdepim/ksyncprofile.h> //US #include <qpe/categoryselect.h> using namespace KABC; -using namespace SlCategory; -SharpDTMConverter::SharpDTMConverter() : catDB(0) +OlaccessConverter::OlaccessConverter() { } -SharpDTMConverter::~SharpDTMConverter() +OlaccessConverter::~OlaccessConverter() { deinit(); } -bool SharpDTMConverter::init() +bool OlaccessConverter::init() { +#if 0 catDB = new SlCategory::SlCategories(); if (!catDB) return false; // catDB->load( categoryFileName() ); +#endif return true; } -void SharpDTMConverter::deinit() +void OlaccessConverter::deinit() { +#if 0 if (catDB) { delete catDB; catDB = 0; } +#endif } - -bool SharpDTMConverter::sharpToAddressee( const CardId &contact, const SlZDataBase* database, Addressee &addr ) +#if 0 +bool OlaccessConverter::sharpToAddressee( const CardId &contact, const SlZDataBase* database, Addressee &addr ) { SlZDataBase* db = (SlZDataBase*)database; // for syncing: we need setting of the two fields addr.setExternalUID( QString::number( contact ) ); addr.setOriginalExternalUID( QString::number( contact ) ); addr.setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL ); // name - //qDebug("SharpDTMConverter::sharpToAddressee check if the fileAs transformation works!!"); + //qDebug("OlaccessConverter::sharpToAddressee check if the fileAs transformation works!!"); addr.setFormattedName(db->readField(ZdbAdrs::FileAs)); //addr.setName(db->readField(ZdbAdrs::FullName)); addr.setFamilyName( db->readField(ZdbAdrs::LastName) ); addr.setGivenName( db->readField(ZdbAdrs::FirstName) ); addr.setAdditionalName( db->readField(ZdbAdrs::MiddleName) ); addr.setPrefix( db->readField(ZdbAdrs::Title) ); addr.setSuffix( db->readField(ZdbAdrs::Suffix) ); QString emailstr = db->readField(ZdbAdrs::Emails); emailstr.replace( QRegExp(","), " " ); emailstr.replace( QRegExp(";"), " " ); emailstr.replace( QRegExp(":"), " " ); - //qDebug("SharpDTMConverter::sharpToAddressee whats the character to seperate the emailadresses? %s ", emailstr.latin1()); + //qDebug("OlaccessConverter::sharpToAddressee whats the character to seperate the emailadresses? %s ", emailstr.latin1()); QStringList emails = QStringList::split(" ", emailstr.simplifyWhiteSpace()); bool defE = false; bool found = false; for ( QStringList::Iterator it = emails.begin(); it != emails.end(); ++it ) { if (found ) defE = false; else found = defE = ((*it).lower() == db->readField(ZdbAdrs::DefaultEmail).lower()); addr.insertEmail( *it, defE ); } if ( ! found ) if (!db->readField(ZdbAdrs::DefaultEmail).isEmpty()) addr.insertEmail(db->readField(ZdbAdrs::DefaultEmail), true); // home if ((!db->readField(ZdbAdrs::HomeStreet).isEmpty()) || (!db->readField(ZdbAdrs::HomeCity).isEmpty()) || (!db->readField(ZdbAdrs::HomeState).isEmpty()) || (!db->readField(ZdbAdrs::HomeZip).isEmpty()) || (!db->readField(ZdbAdrs::HomeCountry).isEmpty())) { Address homeaddress; homeaddress.setType(Address::Home); //US homeaddress.setPostOfficeBox( "" ); //US homeaddress.setExtended( "" ); homeaddress.setStreet( db->readField(ZdbAdrs::HomeStreet).replace( QRegExp("\\r"), "")); homeaddress.setLocality( db->readField(ZdbAdrs::HomeCity) ); homeaddress.setRegion( db->readField(ZdbAdrs::HomeState) ); homeaddress.setPostalCode( db->readField(ZdbAdrs::HomeZip) ); homeaddress.setCountry( db->readField(ZdbAdrs::HomeCountry) ); addr.insertAddress( homeaddress ); } if (!db->readField(ZdbAdrs::HomePhone).isEmpty()) { PhoneNumber homephone; homephone.setType( PhoneNumber::Home ); homephone.setNumber( db->readField(ZdbAdrs::HomePhone) ); addr.insertPhoneNumber( homephone ); } if (!db->readField(ZdbAdrs::HomeFax).isEmpty()) { PhoneNumber homefax; homefax.setType( PhoneNumber::Home | PhoneNumber::Fax ); homefax.setNumber( db->readField(ZdbAdrs::HomeFax) ); addr.insertPhoneNumber( homefax ); } if (!db->readField(ZdbAdrs::HomeMobile).isEmpty()) { PhoneNumber homemobile; homemobile.setType( PhoneNumber::Home | PhoneNumber::Cell ); homemobile.setNumber( db->readField(ZdbAdrs::HomeMobile) ); addr.insertPhoneNumber( homemobile ); } addr.setUrl( db->readField(ZdbAdrs::HomeWebPage) ); // business if ((!db->readField(ZdbAdrs::BusinessStreet).isEmpty()) || (!db->readField(ZdbAdrs::BusinessCity).isEmpty()) || (!db->readField(ZdbAdrs::BusinessState).isEmpty()) || (!db->readField(ZdbAdrs::BusinessZip).isEmpty()) || (!db->readField(ZdbAdrs::BusinessCountry).isEmpty())) { Address businessaddress; businessaddress.setType(Address::Work); //US businessaddress.setPostOfficeBox( "" ); //US businessaddress.setExtended( "" ); businessaddress.setStreet( db->readField(ZdbAdrs::BusinessStreet).replace( QRegExp("\\r"), "") ); businessaddress.setLocality( db->readField(ZdbAdrs::BusinessCity) ); businessaddress.setRegion( db->readField(ZdbAdrs::BusinessState) ); businessaddress.setPostalCode( db->readField(ZdbAdrs::BusinessZip) ); businessaddress.setCountry( db->readField(ZdbAdrs::BusinessCountry) ); addr.insertAddress( businessaddress ); } if (!db->readField(ZdbAdrs::BusinessPhone).isEmpty()) { PhoneNumber businessphone; businessphone.setType( PhoneNumber::Work ); businessphone.setNumber( db->readField(ZdbAdrs::BusinessPhone) ); addr.insertPhoneNumber( businessphone ); } if (!db->readField(ZdbAdrs::BusinessFax).isEmpty()) { PhoneNumber businessfax; businessfax.setType( PhoneNumber::Work | PhoneNumber::Fax ); businessfax.setNumber( db->readField(ZdbAdrs::BusinessFax) ); addr.insertPhoneNumber( businessfax ); } if (!db->readField(ZdbAdrs::BusinessMobile).isEmpty()) { PhoneNumber businessmobile; businessmobile.setType( PhoneNumber::Work | PhoneNumber::Cell ); businessmobile.setNumber( db->readField(ZdbAdrs::BusinessMobile) ); addr.insertPhoneNumber( businessmobile ); } if (!db->readField(ZdbAdrs::BusinessPager).isEmpty()) { PhoneNumber businesspager; businesspager.setType( PhoneNumber::Work | PhoneNumber::Pager ); businesspager.setNumber( db->readField(ZdbAdrs::BusinessPager) ); addr.insertPhoneNumber( businesspager ); } addr.setRole( db->readField(ZdbAdrs::JobTitle) ); addr.setOrganization( db->readField(ZdbAdrs::Company) ); addr.insertCustom( "KADDRESSBOOK", "X-Profession", db->readField(ZdbAdrs::Profession) ); addr.insertCustom( "KADDRESSBOOK", "X-AssistantsName", db->readField(ZdbAdrs::Assistant) ); addr.insertCustom( "KADDRESSBOOK", "X-Department", db->readField(ZdbAdrs::Department) ); addr.insertCustom( "KADDRESSBOOK", "X-ManagersName", db->readField(ZdbAdrs::Manager) ); addr.insertCustom( "KADDRESSBOOK", "X-Office", db->readField(ZdbAdrs::Office) ); //personal addr.insertCustom( "KADDRESSBOOK", "X-SpousesName", db->readField(ZdbAdrs::Spouse) ); QString gen = db->readField(ZdbAdrs::Gender); - //qDebug("SharpDTMConverter::sharpToAddressee pleas check that gender works!! : Gender: %s", gen.latin1()); - //qDebug("SharpDTMConverter::sharpToAddressee: may be int db->readUshortField(\"ZdbAdrs::Gender\") is here better suited"); + //qDebug("OlaccessConverter::sharpToAddressee pleas check that gender works!! : Gender: %s", gen.latin1()); + //qDebug("OlaccessConverter::sharpToAddressee: may be int db->readUshortField(\"ZdbAdrs::Gender\") is here better suited"); if (gen == "1") addr.insertCustom( "KADDRESSBOOK", "X-Gender", "male"); else if (gen == "2") addr.insertCustom( "KADDRESSBOOK", "X-Gender", "female"); else addr.insertCustom( "KADDRESSBOOK", "X-Gender", "undef"); QDate ann = KGlobal::locale()->readDate( db->readField(ZdbAdrs::Anniversary) ); if (ann.isValid()) { QString dt = KGlobal::locale()->formatDate(ann, true, KLocale::ISODate); //qDebug("qtopiaToAddressee annyversary found:%s", dt.latin1()); addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt); } else addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", " "); addr.insertCustom( "KADDRESSBOOK", "X-Children", db->readField(ZdbAdrs::Children) ); QDate birthd = KGlobal::locale()->readDate( db->readField(ZdbAdrs::Birthday) ); //qDebug("birtd %s ", birthd.toString().latin1()); if (birthd.isValid()) addr.setBirthday( birthd ); addr.setNickName( db->readField(ZdbAdrs::Nickname) ); // others //US I put opies BusinessWebPage into Ka/Pi's notes block, because no other native field is available. //QString notes = db->readField(ZdbAdrs::Notes); //notes += "\nBusinessWebPage: " + db->readField(ZdbAdrs::BusinessWebPage) + "\n"; if ( addr.url().isEmpty() ) addr.setUrl( db->readField(ZdbAdrs::BusinessWebPage) ); addr.setNote( db->readField(ZdbAdrs::Notes).replace( QRegExp("\\r"), "")); //US QString groups() const { return find( Qtopia::Groups ); } //US QStringList groupList() const; - //qDebug("SharpDTMConverter::sharpToAddressee please check that the categories will be converted" ); + //qDebug("OlaccessConverter::sharpToAddressee please check that the categories will be converted" ); QArray<int> catArray = db->readCategories(); QString cat; for ( unsigned int i=0; i < catArray.size(); i++ ) { cat = catDB->label(catArray[i]); if ( cat.isEmpty() ) addr.insertCategory(QString::number(catArray[i])); else addr.insertCategory( cat ); } return true; } -bool SharpDTMConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* database , const CardId &contact ) +bool OlaccessConverter::addresseeToSharp( const Addressee &addr, SlZDataBase* database , const CardId &contact ) { bool cellHome = false, cellWork = false; // name database->writeField(ZdbAdrs::LastName, addr.familyName()); database->writeField(ZdbAdrs::FirstName, addr.givenName()); database->writeField(ZdbAdrs::MiddleName, addr.additionalName()); database->writeField(ZdbAdrs::Title, addr.prefix()); database->writeField(ZdbAdrs::Suffix, addr.suffix()); - //qDebug("SharpDTMConverter::addresseeToSharp check if the fileAs transformation works!!\n%s",addr.formattedName().latin1() ); + //qDebug("OlaccessConverter::addresseeToSharp check if the fileAs transformation works!!\n%s",addr.formattedName().latin1() ); QString formattedName = addr.formattedName(); if ( formattedName.isEmpty() ) { if ( !addr.familyName().isEmpty() ) { formattedName = addr.familyName(); if ( !addr.givenName().isEmpty() ) { formattedName += ", "; formattedName += addr.givenName(); } } else formattedName = addr.givenName(); } database->writeField(ZdbAdrs::FileAs, formattedName); database->writeField(ZdbAdrs::FullName, formattedName); // email - //qDebug("SharpDTMConverter::addresseeToSharp check which seperator we need here for the emails!!"); - //qDebug("SharpDTMConverter::addresseeToSharp its probably the same from sharpToAddressee"); + //qDebug("OlaccessConverter::addresseeToSharp check which seperator we need here for the emails!!"); + //qDebug("OlaccessConverter::addresseeToSharp its probably the same from sharpToAddressee"); QString emails = addr.emails().join(" "); database->writeField(ZdbAdrs::Emails, emails ); database->writeField(ZdbAdrs::DefaultEmail, addr.preferredEmail() ); // home const Address homeaddress = addr.address(Address::Home); database->writeField(ZdbAdrs::HomeStreet, homeaddress.street()); database->writeField(ZdbAdrs::HomeCity, homeaddress.locality()); database->writeField(ZdbAdrs::HomeState, homeaddress.region()); database->writeField(ZdbAdrs::HomeZip, homeaddress.postalCode()); database->writeField(ZdbAdrs::HomeCountry, homeaddress.country()); PhoneNumber homephone = addr.phoneNumber( PhoneNumber::Home ); database->writeField(ZdbAdrs::HomePhone, homephone.number()); PhoneNumber homefax = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Fax ); database->writeField(ZdbAdrs::HomeFax, homefax.number()); PhoneNumber homemobile = addr.phoneNumber( PhoneNumber::Home | PhoneNumber::Cell ); database->writeField(ZdbAdrs::HomeMobile, homemobile.number()); if (!homemobile.number().isEmpty()) { cellHome = true; } database->writeField(ZdbAdrs::HomeWebPage, addr.url().url()); // business const Address businessaddress = addr.address(Address::Work); //qDebug("write business address "); database->writeField(ZdbAdrs::BusinessStreet, businessaddress.street()); database->writeField(ZdbAdrs::BusinessCity, businessaddress.locality()); database->writeField(ZdbAdrs::BusinessState, businessaddress.region()); database->writeField(ZdbAdrs::BusinessZip, businessaddress.postalCode()); database->writeField(ZdbAdrs::BusinessCountry, businessaddress.country()); PhoneNumber businessphone = addr.phoneNumber( PhoneNumber::Work ); database->writeField(ZdbAdrs::BusinessPhone, businessphone.number()); PhoneNumber businessfax = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Fax ); database->writeField(ZdbAdrs::BusinessFax, businessfax.number()); PhoneNumber businessmobile = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Cell ); database->writeField(ZdbAdrs::BusinessMobile, businessmobile.number()); if (!businessmobile.number().isEmpty()) { cellWork = true; } PhoneNumber mobile = addr.phoneNumber( PhoneNumber::Cell ); if (! mobile.number().isEmpty()) { if ( ! cellHome ) database->writeField(ZdbAdrs::HomeMobile, mobile.number()); else if (! cellWork ) database->writeField(ZdbAdrs::BusinessMobile, mobile.number()); } PhoneNumber businesspager = addr.phoneNumber( PhoneNumber::Work | PhoneNumber::Pager ); database->writeField(ZdbAdrs::BusinessPager, businesspager.number()); database->writeField(ZdbAdrs::JobTitle, addr.role()); database->writeField(ZdbAdrs::Company, addr.organization()); database->writeField(ZdbAdrs::Profession, addr.custom( "KADDRESSBOOK", "X-Profession" )); database->writeField(ZdbAdrs::Assistant, addr.custom( "KADDRESSBOOK", "X-AssistantsName" )); database->writeField(ZdbAdrs::Department, addr.custom( "KADDRESSBOOK", "X-Department" )); database->writeField(ZdbAdrs::Manager, addr.custom( "KADDRESSBOOK", "X-ManagersName" )); database->writeField(ZdbAdrs::Office, addr.custom( "KADDRESSBOOK", "X-Office" )); //personal database->writeField(ZdbAdrs::Spouse, addr.custom( "KADDRESSBOOK", "X-Spouse" )); QString gt = addr.custom( "KADDRESSBOOK", "X-Gender" ); - //qDebug("SharpDTMConverter::addresseeToSharp please check that gender works!! : Gender: %s", gt.latin1()); - //qDebug("SharpDTMConverter::addresseeToSharp: may be writeField(\"ZdbAdrs::Gender\", ushort) is here better suited?"); - //qDebug("SharpDTMConverter::addresseeToSharp: check also the reverse functionality in sharpToAddressee"); + //qDebug("OlaccessConverter::addresseeToSharp please check that gender works!! : Gender: %s", gt.latin1()); + //qDebug("OlaccessConverter::addresseeToSharp: may be writeField(\"ZdbAdrs::Gender\", ushort) is here better suited?"); + //qDebug("OlaccessConverter::addresseeToSharp: check also the reverse functionality in sharpToAddressee"); if (gt == "male") database->writeField(ZdbAdrs::Gender, "1"); else if (gt == "female") database->writeField(ZdbAdrs::Gender, "2"); else database->writeField(ZdbAdrs::Gender, ""); QString dateS ; QDate dt = KGlobal::locale()->readDate(addr.custom("KADDRESSBOOK", "X-Anniversary" ), "%Y-%m-%d"); // = Qt::ISODate if ( dt.isValid() ) { dateS = KGlobal::locale()->formatDate(dt, true ); } database->writeField(ZdbAdrs::Anniversary, dateS ); database->writeField(ZdbAdrs::Children, addr.custom( "KADDRESSBOOK", "X-Children" )); dt = addr.birthday().date(); dateS = ""; if ( dt.isValid() ) { dateS = KGlobal::locale()->formatDate(dt, true ); } database->writeField(ZdbAdrs::Birthday, dateS); database->writeField(ZdbAdrs::Nickname, addr.nickName()); // other database->writeField(ZdbAdrs::Notes, addr.note()); //US QString groups() const { return find( Qtopia::Groups ); } //US QStringList groupList() const; - //qDebug("SharpDTMConverter::addresseeToSharp please check if category transformation works"); + //qDebug("OlaccessConverter::addresseeToSharp please check if category transformation works"); return true; } -bool SharpDTMConverter::setCategories( const Addressee &addr, SlZDataBase* database , const CardId &contact ) +bool OlaccessConverter::setCategories( const Addressee &addr, SlZDataBase* database , const CardId &contact ) { QStringList list = addr.categories(); QArray<int> ids(list.count()); uint index = 0; for(uint i=0; i<ids.size(); i++){ if(catDB->exists(list[i])){ ids[index] = catDB->id(list[i]); //qDebug("set exist cat %d %s ",ids[index] , list[i].latin1()); index++; } else { ids[index] = catDB->addCategory(list[i]); //qDebug("add new cat %d %s ",ids[index] , list[i].latin1()); index++; } } bool res ; if ( !(res = database->updateCategories(contact, ids) )) - qDebug("SharpDTMConverter::Error updating categories"); + qDebug("OlaccessConverter::Error updating categories"); return res; } - -QDate SharpDTMConverter::convertDate( QString s) +#endif +QDate OlaccessConverter::convertDate( QString s) { QDate dt = KGlobal::locale()->readDate( s ); return dt; return QDate (); } diff --git a/kabc/plugins/olaccess/olaccessconverter.h b/kabc/plugins/olaccess/olaccessconverter.h index db1bf2d..48a255d 100644 --- a/kabc/plugins/olaccess/olaccessconverter.h +++ b/kabc/plugins/olaccess/olaccessconverter.h @@ -1,88 +1,82 @@ /* This file is part of libkabc. Copyright (c) 2002 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Enhanced Version of the file for platform independent KDE tools. Copyright (c) 2004 Ulf Schenk $Id$ */ #ifndef KABC_SHARPDTMCONVERTER_H #define KABC_SHARPDTMCONVERTER_H #include <qstring.h> -#include <sl/slzdb.h> #include "addressee.h" -namespace SlCategory { - class SlCategories; -} - -class SlZDataBase; namespace KABC { -class SharpDTMConverter +class OlaccessConverter { public: /** * Constructor. */ - SharpDTMConverter(); + OlaccessConverter(); /** * Destructor. */ - virtual ~SharpDTMConverter(); + virtual ~OlaccessConverter(); bool init(); void deinit(); /** * Converts a given sharp card to an addressee. * * @param contact The sharp card id, eventhough it might be 0, if the contact is a new one. * @param database The sharp database pointer we use for the conversion * @param addr The addressee. */ - bool sharpToAddressee( const CardId &contact, const SlZDataBase* database, Addressee &addr ); + //bool sharpToAddressee( const CardId &contact, const SlZDataBase* database, Addressee &addr ); /** * Converts an addressee to a sharp dtm contact. * * @param addr The addressee. * @param database The sharp database pointer we use for the conversion * @param contact The sharp card id, eventhough it might be 0, if the contact is a new one. */ - bool addresseeToSharp( const Addressee &addr, SlZDataBase* database , const CardId &contact ); - bool setCategories( const Addressee &addr, SlZDataBase* database , const CardId &contact ); + //bool addresseeToSharp( const Addressee &addr, SlZDataBase* database , const CardId &contact ); + //bool setCategories( const Addressee &addr, SlZDataBase* database , const CardId &contact ); private: - SlCategory::SlCategories* catDB; + //SlCategory::SlCategories* catDB; QDate convertDate( QString ); }; } #endif diff --git a/kabc/plugins/olaccess/resourceolaccess.cpp b/kabc/plugins/olaccess/resourceolaccess.cpp index e8f8bdd..7113e0e 100644 --- a/kabc/plugins/olaccess/resourceolaccess.cpp +++ b/kabc/plugins/olaccess/resourceolaccess.cpp @@ -1,303 +1,304 @@ /* This file is part of libkabc. Copyright (c) 2004 Ulf Schenk 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Enhanced Version of the file for platform independent KDE tools. Copyright (c) 2004 Ulf Schenk $Id$ */ #include <sys/types.h> #include <sys/stat.h> -#include <unistd.h> #include <qdir.h> #include <qfile.h> #include <qfileinfo.h> #include <qregexp.h> //US #include <qtimer.h> #include <kapplication.h> #include <kconfig.h> #include <kdebug.h> #include <klocale.h> //US #include <ksavefile.h> #include <kstandarddirs.h> #include <kmessagebox.h> -#include <sl/slzdb.h> #include <libkdepim/ksyncprofile.h> -#include "resourcesharpdtmconfig.h" -#include "resourcesharpdtm.h" +#include "resourceolaccessconfig.h" +#include "resourceolaccess.h" #include "stdaddressbook.h" -#include "sharpdtmconverter.h" +#include "olaccessconverter.h" //#define ALLOW_LOCKING using namespace KABC; extern "C" { - void *init_microkabc_sharpdtm() + void *init_microkabc_olaccess() { - return new KRES::PluginFactory<ResourceSharpDTM,ResourceSharpDTMConfig>(); + return new KRES::PluginFactory<Resourceolaccess,ResourceolaccessConfig>(); } } -ResourceSharpDTM::ResourceSharpDTM( const KConfig *config ) +Resourceolaccess::Resourceolaccess( const KConfig *config ) : Resource( config ), mConverter (0) { // we can not choose the filename. Therefore use the default to display - mAccess = 0; - QString fileName = SlZDataBase::addressbookFileName(); + //mAccess = 0; + QString fileName;// = SlZDataBase::addressbookFileName(); init( fileName ); } -ResourceSharpDTM::ResourceSharpDTM( const QString &fileName ) +Resourceolaccess::Resourceolaccess( const QString &fileName ) : Resource( 0 ) { - mAccess = 0; + //mAccess = 0; init( fileName ); } -void ResourceSharpDTM::init( const QString &fileName ) +void Resourceolaccess::init( const QString &fileName ) { if (mConverter == 0) { - mConverter = new SharpDTMConverter(); + mConverter = new OlaccessConverter(); bool res = mConverter->init(); if ( !res ) { QString msg("Unable to initialize sharp converter. Most likely a problem with the category file"); qDebug(msg); return; } } setFileName( fileName ); } -ResourceSharpDTM::~ResourceSharpDTM() +Resourceolaccess::~Resourceolaccess() { if (mConverter != 0) delete mConverter; - if(mAccess != 0) - delete mAccess; + //if(mAccess != 0) + //delete mAccess; } -void ResourceSharpDTM::writeConfig( KConfig *config ) +void Resourceolaccess::writeConfig( KConfig *config ) { Resource::writeConfig( config ); } -Ticket *ResourceSharpDTM::requestSaveTicket() +Ticket *Resourceolaccess::requestSaveTicket() { - qDebug("ResourceSharpDTM::requestSaveTicket: %s", fileName().latin1()); + qDebug("Resourceolaccess::requestSaveTicket: %s", fileName().latin1()); if ( !addressBook() ) return 0; return createTicket( this ); } -bool ResourceSharpDTM::doOpen() +bool Resourceolaccess::doOpen() { if (!mConverter) return false; return true; } -void ResourceSharpDTM::doClose() +void Resourceolaccess::doClose() { return; } -bool ResourceSharpDTM::load() +bool Resourceolaccess::load() { if (!mConverter) return false; - QString fileN = SlZDataBase::addressbookFileName(); + QString fileN ;//= SlZDataBase::addressbookFileName(); +#if 0 if ( ! mAccess ) { mAccess = new SlZDataBase(fileN, SlZDataBase::addressbookItems(), 0, true); } if(mAccess == 0) return false; - qDebug("ResourceSharpDTM:: %x load: %s",this, fileName().latin1()); + qDebug("Resourceolaccess:: %x load: %s",this, fileName().latin1()); bool res = false; CardId id; for (bool res=mAccess->first(); res == true; res=mAccess->next()) { id = mAccess->cardId(); KABC::Addressee addressee; res = mConverter->sharpToAddressee( id, mAccess, addressee ); if ( !addressee.isEmpty() && res ) { addressee.setResource( this ); addressBook()->insertAddressee( addressee ); } } if(mAccess != 0) delete mAccess; mAccess = 0; - +#endif return true; } -bool ResourceSharpDTM::save( Ticket *ticket ) +bool Resourceolaccess::save( Ticket *ticket ) { +#if 0 if (!mConverter) return false; QString fileN = SlZDataBase::addressbookFileName(); if ( ! mAccess ) { mAccess = new SlZDataBase(fileN, SlZDataBase::addressbookItems(), 0, false); } if(mAccess == 0) return false; - qDebug("ResourceSharpDTM::save: %s", fileName().latin1()); + qDebug("Resourceolaccess::save: %s", fileName().latin1()); KABC::AddressBook::Iterator it; bool res; KABC::Addressee::List changedAddressees; typedef QMap<int,QString> AddresseeMap; AddresseeMap map; CardId id ; for ( it = addressBook()->begin(); it != addressBook()->end(); ++it ) { if ( (*it).tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) { QString uid = (*it).originalExternalUID(); bool res; if ( uid.isEmpty() ) id = 0; else id = uid.toUInt(); KABC::Addressee addressee = (*it); if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_ADDED_EXTERNAL ) { res = mAccess->startEditCard(id); if (res == true) { res = mConverter->addresseeToSharp( (*it), mAccess, id ); if (res == true) { res = mAccess->finishEditCard(&id);; mConverter->setCategories( (*it), mAccess, id ); map.insert(id,(*it).uid()); if (res == false) qDebug("Unable to append Contact: %s", addressee.formattedName().latin1()); } else { qDebug("Unable to convert Addressee: %s", addressee.formattedName().latin1()); mAccess->cancelEditCard(); } } } else if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_DELETE ) { res = mAccess->deleteCard(&id); if ( !res ) qDebug("delete error "); } else if ( (*it).tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) { //changed res = mAccess->startEditCard(id); if (res == true) { res = mConverter->addresseeToSharp( (*it), mAccess, id ); if (res == true) { res = mAccess->finishEditCard(&id); mConverter->setCategories( (*it), mAccess, id ); map.insert(id,(*it).uid()); if (res == false) qDebug("Unable to append Contact: %s", addressee.formattedName().latin1()); } else { qDebug("Unable to convert Addressee: %s", addressee.formattedName().latin1()); mAccess->cancelEditCard(); } } } } } AddresseeMap::Iterator itam; for ( res=mAccess->first(); res == true; res=mAccess->next()) { id = mAccess->cardId(); int idint = id; itam = map.find( idint ); if ( itam != map.end() ) { KABC::Addressee addressee; res = mConverter->sharpToAddressee( id, mAccess, addressee ); if ( !addressee.isEmpty() && res ) { addressee.setResource( this ); addressee.setUid( itam.data() ); addressee.setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); addressBook()->insertAddressee( addressee , false ); } } } delete ticket; if(mAccess != 0) delete mAccess; mAccess = 0; +#endif return true; } -bool ResourceSharpDTM::lock( const QString &lockfileName ) +bool Resourceolaccess::lock( const QString &lockfileName ) { return true; } -void ResourceSharpDTM::unlock( const QString &fileName ) +void Resourceolaccess::unlock( const QString &fileName ) { } -void ResourceSharpDTM::setFileName( const QString &newFileName ) +void Resourceolaccess::setFileName( const QString &newFileName ) { Resource::setFileName( newFileName ); } -void ResourceSharpDTM::fileChanged() +void Resourceolaccess::fileChanged() { } -void ResourceSharpDTM::removeAddressee( const Addressee &addr ) +void Resourceolaccess::removeAddressee( const Addressee &addr ) { } -void ResourceSharpDTM::cleanUp() +void Resourceolaccess::cleanUp() { } diff --git a/kabc/plugins/olaccess/resourceolaccess.h b/kabc/plugins/olaccess/resourceolaccess.h index 64d06f9..0066331 100644 --- a/kabc/plugins/olaccess/resourceolaccess.h +++ b/kabc/plugins/olaccess/resourceolaccess.h @@ -1,146 +1,145 @@ /* This file is part of libkabc. Copyright (c) 2004 Ulf Schenk 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Enhanced Version of the file for platform independent KDE tools. Copyright (c) 2004 Ulf Schenk $Id$ */ -#ifndef KABC_RESOURCESHARPDTM_H -#define KABC_RESOURCESHARPDTM_H + + +#ifndef KABC_RESOURCEolaccess_H +#define KABC_RESOURCEolaccess_H #include <kconfig.h> #include <kdirwatch.h> #include <sys/types.h> #include "resource.h" -class SlZDataBase; - namespace KABC { class ResourceConfigWidget; -class SharpDTMConverter; +class OlaccessConverter; /** @internal */ -class ResourceSharpDTM : public Resource +class Resourceolaccess : public Resource { Q_OBJECT public: /** Constructor. @param cfg The config object where custom resource settings are stored. */ - ResourceSharpDTM( const KConfig *cfg ); + Resourceolaccess( const KConfig *cfg ); /** Construct file resource on file @arg fileName using format @arg formatName. */ - ResourceSharpDTM( const QString &fileName ); + Resourceolaccess( const QString &fileName ); /** * Destructor. */ - ~ResourceSharpDTM(); + ~Resourceolaccess(); /** Writes the config back. */ virtual void writeConfig( KConfig *cfg ); /** * Tries to open the file and checks for the proper format. * This method should be called before @ref load(). */ virtual bool doOpen(); /** * Closes the file again. */ virtual void doClose(); /** * Requests a save ticket, that is used by @ref save() */ virtual Ticket *requestSaveTicket(); /** * Loads all addressees from file to the address book. * Returns true if all addressees could be loaded otherwise false. */ virtual bool load(); /** * Saves all addresses from address book to file. * Returns true if all addressees could be saved otherwise false. * * @param ticket The ticket returned by @ref requestSaveTicket() */ virtual bool save( Ticket *ticket ); /** * Remove a addressee from its source. * This method is mainly called by KABC::AddressBook. */ virtual void removeAddressee( const Addressee& addr ); /** * Set name of file to be used for saving. */ virtual void setFileName( const QString & ); /** * This method is called by an error handler if the application * crashed */ virtual void cleanUp(); protected slots: void fileChanged(); protected: void init( const QString &fileName ); bool lock( const QString &fileName ); void unlock( const QString &fileName ); private: - SlZDataBase* mAccess; - SharpDTMConverter* mConverter; + OlaccessConverter* mConverter; QString mLockUniqueName; KDirWatch mDirWatch; }; } #endif diff --git a/kabc/plugins/olaccess/resourceolaccessconfig.cpp b/kabc/plugins/olaccess/resourceolaccessconfig.cpp index 240f1d7..1fcf1b8 100644 --- a/kabc/plugins/olaccess/resourceolaccessconfig.cpp +++ b/kabc/plugins/olaccess/resourceolaccessconfig.cpp @@ -1,108 +1,106 @@ /* This file is part of libkabc. Copyright (c) 2002 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Enhanced Version of the file for platform independent KDE tools. Copyright (c) 2004 Ulf Schenk $Id$ */ #include <qlabel.h> #include <qlayout.h> #include <kdebug.h> #include <klocale.h> #include <kstandarddirs.h> #include <kdialog.h> -#include <unistd.h> #include <qdir.h> #include <qfile.h> -#include "resourcesharpdtm.h" +#include "resourceolaccess.h" -#include "resourcesharpdtmconfig.h" +#include "resourceolaccessconfig.h" -#include <sl/slzdb.h> using namespace KABC; -ResourceSharpDTMConfig::ResourceSharpDTMConfig( QWidget* parent, const char* name ) +ResourceolaccessConfig::ResourceolaccessConfig( QWidget* parent, const char* name ) : ConfigWidget( parent, name ) { QGridLayout *mainLayout = new QGridLayout( this, 1, 2, 0, KDialog::spacingHint() ); QLabel *label = new QLabel( i18n( "Location:" ), this ); mFileNameEdit = new KURLRequester( this ); connect( mFileNameEdit, SIGNAL( textChanged( const QString & ) ), SLOT( checkFilePermissions( const QString & ) ) ); mainLayout->addWidget( label, 0, 0 ); mainLayout->addWidget( mFileNameEdit, 0, 1 ); } -void ResourceSharpDTMConfig::loadSettings( KRES::Resource *res ) +void ResourceolaccessConfig::loadSettings( KRES::Resource *res ) { //US ResourceFile *resource = dynamic_cast<ResourceFile*>( res ); - ResourceSharpDTM *resource = (ResourceSharpDTM*)( res ); + Resourceolaccess *resource = (Resourceolaccess*)( res ); if ( !resource ) { - kdDebug(5700) << "ResourceSharpDTMConfig::loadSettings(): cast failed" << endl; + kdDebug(5700) << "ResourceolaccessConfig::loadSettings(): cast failed" << endl; return; } mFileNameEdit->setURL( resource->fileName() ); if ( mFileNameEdit->url().isEmpty() ) - mFileNameEdit->setURL( SlZDataBase::addressbookFileName() ); + ;//mFileNameEdit->setURL( SlZDataBase::addressbookFileName() ); //US Sharp DTM resources are ReadOnly by definition emit setPersistentReadOnly( true ); //US we can not choose the filename for the sharp backend => make it readonly. mFileNameEdit->setEnabled( false ); } -void ResourceSharpDTMConfig::saveSettings( KRES::Resource *res ) +void ResourceolaccessConfig::saveSettings( KRES::Resource *res ) { //US ResourceFile *resource = dynamic_cast<ResourceFile*>( res ); - ResourceSharpDTM *resource = (ResourceSharpDTM*)( res ); + Resourceolaccess *resource = (Resourceolaccess*)( res ); if ( !resource ) { - kdDebug(5700) << "ResourceSharpDTMConfig::saveSettings(): cast failed" << endl; + kdDebug(5700) << "ResourceolaccessConfig::saveSettings(): cast failed" << endl; return; } resource->setFileName( mFileNameEdit->url() ); } -void ResourceSharpDTMConfig::checkFilePermissions( const QString& fileName ) +void ResourceolaccessConfig::checkFilePermissions( const QString& fileName ) { // If file exist but is not writeable... /*US if ( access( QFile::encodeName( fileName ), F_OK ) == 0 ) emit setReadOnly( access( QFile::encodeName( fileName ), W_OK ) < 0 ); */ } diff --git a/kabc/plugins/olaccess/resourceolaccessconfig.h b/kabc/plugins/olaccess/resourceolaccessconfig.h index 29765c8..38d47ba 100644 --- a/kabc/plugins/olaccess/resourceolaccessconfig.h +++ b/kabc/plugins/olaccess/resourceolaccessconfig.h @@ -1,58 +1,58 @@ /* This file is part of libkabc. Copyright (c) 2002 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Enhanced Version of the file for platform independent KDE tools. Copyright (c) 2004 Ulf Schenk $Id$ */ #ifndef RESOURCESHARPDTMCONFIG_H #define RESOURCESHARPDTMCONFIG_H #include <kurlrequester.h> #include <kresources/configwidget.h> namespace KABC { -class ResourceSharpDTMConfig : public KRES::ConfigWidget +class ResourceolaccessConfig : public KRES::ConfigWidget { Q_OBJECT public: - ResourceSharpDTMConfig( QWidget* parent = 0, const char* name = 0 ); + ResourceolaccessConfig( QWidget* parent = 0, const char* name = 0 ); public slots: void loadSettings( KRES::Resource *resource ); void saveSettings( KRES::Resource *resource ); protected slots: void checkFilePermissions( const QString& fileName ); private: KURLRequester* mFileNameEdit; }; } #endif |