-rw-r--r-- | kabc/plugins/olaccess/olaccess.pro | 1 | ||||
-rw-r--r-- | kabc/plugins/olaccess/resourceolaccess.cpp | 5 | ||||
-rw-r--r-- | microkde/kresources/factory.cpp | 2 | ||||
-rw-r--r-- | variables.pri | 2 |
4 files changed, 6 insertions, 4 deletions
diff --git a/kabc/plugins/olaccess/olaccess.pro b/kabc/plugins/olaccess/olaccess.pro index 4416d0c..9b95015 100644 --- a/kabc/plugins/olaccess/olaccess.pro +++ b/kabc/plugins/olaccess/olaccess.pro @@ -1,34 +1,35 @@ 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 INTERFACES = \ +DESTDIR = ../../../bin 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/resourceolaccess.cpp b/kabc/plugins/olaccess/resourceolaccess.cpp index 7113e0e..c7c9874 100644 --- a/kabc/plugins/olaccess/resourceolaccess.cpp +++ b/kabc/plugins/olaccess/resourceolaccess.cpp @@ -1,190 +1,191 @@ /* 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 <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 <libkdepim/ksyncprofile.h> #include "resourceolaccessconfig.h" #include "resourceolaccess.h" #include "stdaddressbook.h" #include "olaccessconverter.h" //#define ALLOW_LOCKING using namespace KABC; extern "C" -{ +__declspec(dllexport) + void *init_microkabc_olaccess() { return new KRES::PluginFactory<Resourceolaccess,ResourceolaccessConfig>(); } -} + 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(); init( fileName ); } Resourceolaccess::Resourceolaccess( const QString &fileName ) : Resource( 0 ) { //mAccess = 0; init( fileName ); } void Resourceolaccess::init( const QString &fileName ) { if (mConverter == 0) { 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 ); } Resourceolaccess::~Resourceolaccess() { if (mConverter != 0) delete mConverter; //if(mAccess != 0) //delete mAccess; } void Resourceolaccess::writeConfig( KConfig *config ) { Resource::writeConfig( config ); } Ticket *Resourceolaccess::requestSaveTicket() { qDebug("Resourceolaccess::requestSaveTicket: %s", fileName().latin1()); if ( !addressBook() ) return 0; return createTicket( this ); } bool Resourceolaccess::doOpen() { if (!mConverter) return false; return true; } void Resourceolaccess::doClose() { return; } bool Resourceolaccess::load() { if (!mConverter) return false; QString fileN ;//= SlZDataBase::addressbookFileName(); #if 0 if ( ! mAccess ) { mAccess = new SlZDataBase(fileN, SlZDataBase::addressbookItems(), 0, true); } if(mAccess == 0) return false; 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 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("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; diff --git a/microkde/kresources/factory.cpp b/microkde/kresources/factory.cpp index 4843ce0..86b22b2 100644 --- a/microkde/kresources/factory.cpp +++ b/microkde/kresources/factory.cpp @@ -20,257 +20,257 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include <kdebug.h> #include <klocale.h> #include <ksimpleconfig.h> #include <kstandarddirs.h> #include <kstaticdeleter.h> //#ifndef DESKTOP_VERSION #include <klibloader.h> //#endif #include <qfile.h> #include "resource.h" #include "factory.h" #ifdef STATIC_RESOURCES #include <file/resourcefile.h> #include <dir/resourcedir.h> #include <qtopia/resourceqtopia.h> #endif using namespace KRES; QDict<Factory> *Factory::mSelves = 0; static KStaticDeleter< QDict<Factory> > staticDeleter; Factory *Factory::self( const QString& resourceFamily) { Factory *factory = 0; if ( !mSelves ) { mSelves = staticDeleter.setObject( new QDict<Factory> ); } factory = mSelves->find( resourceFamily ); if ( !factory ) { factory = new Factory( resourceFamily); mSelves->insert( resourceFamily, factory ); } return factory; } Factory::Factory( const QString& resourceFamily) : mResourceFamily( resourceFamily ) { //US so far we have three types available for resourceFamily "contact" // and that are "file", "dir", "ldap" /*US KTrader::OfferList plugins = KTrader::self()->query( "KResources/Plugin", QString( "[X-KDE-ResourceFamily] == '%1'" ) .arg( resourceFamily ) ); KTrader::OfferList::ConstIterator it; for ( it = plugins.begin(); it != plugins.end(); ++it ) { QVariant type = (*it)->property( "X-KDE-ResourceType" ); if ( !type.toString().isEmpty() ) mTypeMap.insert( type.toString(), *it ); } */ //US new PluginInfo* info = new PluginInfo; info->library = "microkabc_file"; info->nameLabel = i18n( "file" ); info->descriptionLabel = i18n( "One file" ); mTypeMap.insert( "file", info ); info = new PluginInfo; info->library = "microkabc_dir"; info->nameLabel = i18n( "dir" ); info->descriptionLabel = i18n( "A directory with many files" ); mTypeMap.insert( "dir", info ); info = new PluginInfo; info->library = "microkabc_ldap"; info->nameLabel = i18n( "ldap" ); info->descriptionLabel = i18n( "Connect to a directory server" ); mTypeMap.insert( "ldap", info ); //US add opie plugin only, if the library exists. /*US QString libname = "microkabc_opie"; QString path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); if ( !path.isEmpty() ) { info = new PluginInfo; info->library = libname; info->nameLabel = i18n( "opie" ); info->descriptionLabel = i18n( "Opie PIM Addressbook." ); mTypeMap.insert( "opie", info ); } */ //US add qtopia plugin only, if the library exists. QString libname = "microkabc_qtopia"; QString path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); if ( !path.isEmpty() ) { info = new PluginInfo; info->library = libname; info->nameLabel = i18n( "qtopia" ); info->descriptionLabel = i18n( "Qtopia PIM Addressbook." ); mTypeMap.insert( "qtopia", info ); } //US add sharp plugin only, if the library exists. libname = "microkabc_sharpdtm"; path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); if ( !path.isEmpty() ) { info = new PluginInfo; info->library = libname; info->nameLabel = i18n( "sharp" ); info->descriptionLabel = i18n( "Sharp DTM Addressbook." ); mTypeMap.insert( "sharp", info ); } //LR add ol plugin only, if the library exists. libname = "microkabc_olaccess"; path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); if ( !path.isEmpty() ) { info = new PluginInfo; info->library = libname; - info->nameLabel = i18n( "sharp" ); + info->nameLabel = i18n( "olaccess" ); info->descriptionLabel = i18n( "Outlook Addressbook." ); mTypeMap.insert( "olaccess", info ); } } Factory::~Factory() { } QStringList Factory::typeNames() const { //US method QMap::keys() not available yet. SO collect the data manually //US return mTypeMap.keys(); QStringList result; QMap<QString, PluginInfo*>::ConstIterator it; for( it = mTypeMap.begin(); it != mTypeMap.end(); ++it ) { result << it.key().latin1(); // qDebug("Factory::typeNames() : %s ", it.key().latin1()); } return result; } ConfigWidget *Factory::configWidget( const QString& type, QWidget *parent ) { if ( type.isEmpty() || !mTypeMap.contains( type ) ) return 0; //US KService::Ptr ptr = mTypeMap[ type ]; //US KLibFactory *factory = KLibLoader::self()->factory( ptr->library().latin1() ); PluginInfo* pi = mTypeMap[ type ]; KLibFactory *factory = (KLibFactory *)KLibLoader::self()->factory( pi->library.latin1() ); if ( !factory ) { qDebug("KRES::Factory::configWidget(): Factory creation failed for library %s", pi->library.latin1()); kdDebug() << "KRES::Factory::configWidget(): Factory creation failed" << endl; return 0; } PluginFactoryBase *pluginFactory = static_cast<PluginFactoryBase *>( factory ); if ( !pluginFactory ) { qDebug("KRES::Factory::configWidget(): no plugin factory for library %s", pi->library.latin1()); kdDebug() << "KRES::Factory::configWidget(): no plugin factory." << endl; return 0; } ConfigWidget *wdg = pluginFactory->configWidget( parent ); if ( !wdg ) { //US kdDebug() << "'" << ptr->library() << "' is not a " + mResourceFamily + " plugin." << endl; qDebug("%s is not a %s plugin.", pi->library.latin1(), mResourceFamily.latin1()); return 0; } return wdg; } QString Factory::typeName( const QString &type ) const { if ( type.isEmpty() || !mTypeMap.contains( type ) ) return QString(); //US KService::Ptr ptr = mTypeMap[ type ]; //US return ptr->name(); PluginInfo* pi = mTypeMap[ type ]; return pi->nameLabel; } QString Factory::typeDescription( const QString &type ) const { if ( type.isEmpty() || !mTypeMap.contains( type ) ) return QString(); //US KService::Ptr ptr = mTypeMap[ type ]; //US return ptr->comment(); PluginInfo* pi = mTypeMap[ type ]; return pi->descriptionLabel; } Resource *Factory::resource( const QString& type, const KConfig *config ) { if ( type.isEmpty() || !mTypeMap.contains( type ) ) return 0; #ifdef STATIC_RESOURCES qDebug("NEW STATIC RESOURCE %s", type.latin1()); Resource *resource = 0; if ( type == "file" ) { resource = (Resource *) new KABC::ResourceFile( config ); } else if ( type == "dir" ) { resource = new KABC::ResourceDir( config ); } else if ( type == "qtopia" ) { resource = new KABC::ResourceQtopia( config ); } if ( !resource) qDebug("Factory::resource:: resources are statically linked. resource type %s is not supported ",type.latin1() ); else resource->setType( type ); return resource; #else /*US load the lib not dynamicly. !! KService::Ptr ptr = mTypeMap[ type ]; KLibFactory *factory = KLibLoader::self()->factory( ptr->library().latin1() ); if ( !factory ) { kdDebug() << "KRES::Factory::resource(): Factory creation failed" << endl; return 0; } */ PluginInfo* pi = mTypeMap[ type ]; KLibFactory *factory = (KLibFactory *)KLibLoader::self()->factory( pi->library.latin1() ); if ( !factory ) { qDebug("KRES::Factory::resource(): Factory creation failed for library %s", pi->library.latin1()); kdDebug() << "KRES::Factory::resource(): Factory creation failed" << endl; return 0; } PluginFactoryBase *pluginFactory = static_cast<PluginFactoryBase *>( factory ); diff --git a/variables.pri b/variables.pri index 9975cf0..5d3b6cb 100644 --- a/variables.pri +++ b/variables.pri @@ -1,14 +1,14 @@ # variables settings for compilation for Linux desktop and Qt 3.x.x unix { #for statically linking #CONFIG += staticlib } win32 { #disable importol to make it running on windows ME/98 -#CONFIG += importol +CONFIG += importol } CONFIG += thread CONFIG += release |