00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KABC_RESOURCEFACTORY_H
00022 #define KABC_RESOURCEFACTORY_H
00023
00024 #include <qdict.h>
00025 #include <qstring.h>
00026
00027 #include <kconfig.h>
00028 #include <klibloader.h>
00029
00030 #include "resource.h"
00031 #include "resourceconfigwidget.h"
00032
00033 namespace KABC {
00034
00035 struct ResourceInfo {
00036 QString library;
00037 QString nameLabel;
00038 QString descriptionLabel;
00039 };
00040
00058 class ResourceFactory
00059 {
00060 public:
00061
00065 static ResourceFactory *self();
00066
00074 ResourceConfigWidget *configWidget( const QString& type, QWidget *parent = 0 );
00075
00084 Resource *resource( const QString& type, AddressBook *ab, const KConfig *config );
00085
00089 QStringList resources();
00090
00094 ResourceInfo *info( const QString &type );
00095
00096 protected:
00097 ResourceFactory();
00098 ~ResourceFactory();
00099
00100 private:
00101 KLibrary *openLibrary( const QString& libName );
00102
00103 static ResourceFactory *mSelf;
00104
00105 QDict<ResourceInfo> mResourceList;
00106 };
00107
00108 }
00109 #endif