-rw-r--r-- | microkde/kresources/factory.cpp | 26 | ||||
-rw-r--r-- | microkde/kresources/managerimpl.cpp | 2 | ||||
-rw-r--r-- | microkde/microkde.pro | 8 |
3 files changed, 35 insertions, 1 deletions
diff --git a/microkde/kresources/factory.cpp b/microkde/kresources/factory.cpp index a3b7fff..5fbfa68 100644 --- a/microkde/kresources/factory.cpp +++ b/microkde/kresources/factory.cpp @@ -21,32 +21,37 @@ 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 ); @@ -206,32 +211,51 @@ 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; } @@ -240,17 +264,19 @@ Resource *Factory::resource( const QString& type, const KConfig *config ) if ( !pluginFactory ) { qDebug("KRES::Factory::resource(): no plugin factory for library %s", pi->library.latin1()); kdDebug() << "KRES::Factory::resource(): no plugin factory." << endl; return 0; } Resource *resource = pluginFactory->resource( config ); if ( !resource ) { //US kdDebug() << "'" << ptr->library() << "' is not a " + mResourceFamily + " plugin." << endl; qDebug("%s is not a %s plugin.", pi->library.latin1(), mResourceFamily.latin1()); return 0; } resource->setType( type ); return resource; + +#endif } diff --git a/microkde/kresources/managerimpl.cpp b/microkde/kresources/managerimpl.cpp index 566b8f4..a6d2007 100644 --- a/microkde/kresources/managerimpl.cpp +++ b/microkde/kresources/managerimpl.cpp @@ -27,32 +27,34 @@ Copyright (c) 2004 Ulf Schenk $Id$ */ #include <kglobal.h> #include <kapplication.h> #include <kdebug.h> #include <kconfig.h> #include <kstandarddirs.h> #include <qfile.h> #include "resource.h" #include "factory.h" #include "managerimpl.h" + + using namespace KRES; ManagerImpl::ManagerImpl( const QString &family ) : mFamily( family ), mConfig( 0 ), mStdConfig( 0 ), mStandard( 0 ), mFactory( 0 ) { kdDebug(5650) << "ManagerImpl::ManagerImpl()" << endl; } ManagerImpl::~ManagerImpl() { kdDebug(5650) << "ManagerImpl::~ManagerImpl()" << endl; diff --git a/microkde/microkde.pro b/microkde/microkde.pro index 9016260..783ec34 100644 --- a/microkde/microkde.pro +++ b/microkde/microkde.pro @@ -1,36 +1,42 @@ TEMPLATE = lib CONFIG += qt warn_on +include( ../variables.pri ) #INCLUDEPATH += $(QTDIR)/include . #DEPENDPATH += $(QTDIR)/include INCLUDEPATH += . ../ ../kabc ./kdecore ./kdeui ./kio/kfile ./kio/kio #LIBS += -lqtcompat TARGET = microkde DESTDIR= ../bin DEFINES += DESKTOP_VERSION KDE_QT_ONLY unix : { +staticlib: { +INCLUDEPATH += ../kabc/plugins +DEFINES += STATIC_RESOURCES +} + + OBJECTS_DIR = obj/unix MOC_DIR = moc/unix } win32: { DEFINES += _WIN32_ OBJECTS_DIR = obj/win MOC_DIR = moc/win } -include( ../variables.pri ) HEADERS = \ qlayoutengine_p.h \ KDGanttMinimizeSplitter.h \ kapplication.h \ kaudioplayer.h \ kcalendarsystem.h \ kcalendarsystemgregorian.h \ kcolorbutton.h \ kcolordialog.h \ kcombobox.h \ kconfig.h \ kdatetbl.h \ kdebug.h \ |