summaryrefslogtreecommitdiffabout
path: root/microkde/kresources
Unidiff
Diffstat (limited to 'microkde/kresources') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kresources/factory.cpp26
-rw-r--r--microkde/kresources/managerimpl.cpp2
2 files changed, 28 insertions, 0 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
@@ -1,256 +1,282 @@
1/* 1/*
2 This file is part of libkresources. 2 This file is part of libkresources.
3 3
4 Copyright (c) 2002 Tobias Koenig <tokoe@kde.org> 4 Copyright (c) 2002 Tobias Koenig <tokoe@kde.org>
5 Copyright (c) 2002 Jan-Pascal van Best <janpascal@vanbest.org> 5 Copyright (c) 2002 Jan-Pascal van Best <janpascal@vanbest.org>
6 Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org> 6 Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org>
7 7
8 This library is free software; you can redistribute it and/or 8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Library General Public 9 modify it under the terms of the GNU Library General Public
10 License as published by the Free Software Foundation; either 10 License as published by the Free Software Foundation; either
11 version 2 of the License, or (at your option) any later version. 11 version 2 of the License, or (at your option) any later version.
12 12
13 This library is distributed in the hope that it will be useful, 13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Library General Public License for more details. 16 Library General Public License for more details.
17 17
18 You should have received a copy of the GNU Library General Public License 18 You should have received a copy of the GNU Library General Public License
19 along with this library; see the file COPYING.LIB. If not, write to 19 along with this library; see the file COPYING.LIB. If not, write to
20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 Boston, MA 02111-1307, USA. 21 Boston, MA 02111-1307, USA.
22*/ 22*/
23 23
24#include <kdebug.h> 24#include <kdebug.h>
25#include <klocale.h> 25#include <klocale.h>
26#include <ksimpleconfig.h> 26#include <ksimpleconfig.h>
27#include <kstandarddirs.h> 27#include <kstandarddirs.h>
28#include <kstaticdeleter.h> 28#include <kstaticdeleter.h>
29//#ifndef DESKTOP_VERSION 29//#ifndef DESKTOP_VERSION
30#include <klibloader.h> 30#include <klibloader.h>
31//#endif 31//#endif
32#include <qfile.h> 32#include <qfile.h>
33 33
34#include "resource.h" 34#include "resource.h"
35#include "factory.h" 35#include "factory.h"
36 36
37#ifdef STATIC_RESOURCES
38#include <file/resourcefile.h>
39#include <dir/resourcedir.h>
40#include <qtopia/resourceqtopia.h>
41#endif
37using namespace KRES; 42using namespace KRES;
38 43
39QDict<Factory> *Factory::mSelves = 0; 44QDict<Factory> *Factory::mSelves = 0;
40static KStaticDeleter< QDict<Factory> > staticDeleter; 45static KStaticDeleter< QDict<Factory> > staticDeleter;
41 46
42Factory *Factory::self( const QString& resourceFamily) 47Factory *Factory::self( const QString& resourceFamily)
43{ 48{
44 49
45 50
46 Factory *factory = 0; 51 Factory *factory = 0;
47 if ( !mSelves ) 52 if ( !mSelves )
48 { 53 {
49 mSelves = staticDeleter.setObject( new QDict<Factory> ); 54 mSelves = staticDeleter.setObject( new QDict<Factory> );
50 } 55 }
51 56
52 factory = mSelves->find( resourceFamily ); 57 factory = mSelves->find( resourceFamily );
53 58
54 if ( !factory ) { 59 if ( !factory ) {
55 factory = new Factory( resourceFamily); 60 factory = new Factory( resourceFamily);
56 mSelves->insert( resourceFamily, factory ); 61 mSelves->insert( resourceFamily, factory );
57 } 62 }
58 63
59 return factory; 64 return factory;
60} 65}
61 66
62Factory::Factory( const QString& resourceFamily) : 67Factory::Factory( const QString& resourceFamily) :
63 mResourceFamily( resourceFamily ) 68 mResourceFamily( resourceFamily )
64{ 69{
65//US so far we have three types available for resourceFamily "contact" 70//US so far we have three types available for resourceFamily "contact"
66// and that are "file", "dir", "ldap" 71// and that are "file", "dir", "ldap"
67/*US 72/*US
68 73
69 KTrader::OfferList plugins = KTrader::self()->query( "KResources/Plugin", QString( "[X-KDE-ResourceFamily] == '%1'" ) 74 KTrader::OfferList plugins = KTrader::self()->query( "KResources/Plugin", QString( "[X-KDE-ResourceFamily] == '%1'" )
70 .arg( resourceFamily ) ); 75 .arg( resourceFamily ) );
71 KTrader::OfferList::ConstIterator it; 76 KTrader::OfferList::ConstIterator it;
72 for ( it = plugins.begin(); it != plugins.end(); ++it ) { 77 for ( it = plugins.begin(); it != plugins.end(); ++it ) {
73 QVariant type = (*it)->property( "X-KDE-ResourceType" ); 78 QVariant type = (*it)->property( "X-KDE-ResourceType" );
74 if ( !type.toString().isEmpty() ) 79 if ( !type.toString().isEmpty() )
75 mTypeMap.insert( type.toString(), *it ); 80 mTypeMap.insert( type.toString(), *it );
76 } 81 }
77*/ 82*/
78 83
79//US new 84//US new
80 PluginInfo* info = new PluginInfo; 85 PluginInfo* info = new PluginInfo;
81 info->library = "microkabc_file"; 86 info->library = "microkabc_file";
82 info->nameLabel = i18n( "file" ); 87 info->nameLabel = i18n( "file" );
83 info->descriptionLabel = i18n( "One file" ); 88 info->descriptionLabel = i18n( "One file" );
84 mTypeMap.insert( "file", info ); 89 mTypeMap.insert( "file", info );
85 90
86 info = new PluginInfo; 91 info = new PluginInfo;
87 info->library = "microkabc_dir"; 92 info->library = "microkabc_dir";
88 info->nameLabel = i18n( "dir" ); 93 info->nameLabel = i18n( "dir" );
89 info->descriptionLabel = i18n( "A directory with many files" ); 94 info->descriptionLabel = i18n( "A directory with many files" );
90 mTypeMap.insert( "dir", info ); 95 mTypeMap.insert( "dir", info );
91 96
92 info = new PluginInfo; 97 info = new PluginInfo;
93 info->library = "microkabc_ldap"; 98 info->library = "microkabc_ldap";
94 info->nameLabel = i18n( "ldap" ); 99 info->nameLabel = i18n( "ldap" );
95 info->descriptionLabel = i18n( "Connect to a directory server" ); 100 info->descriptionLabel = i18n( "Connect to a directory server" );
96 mTypeMap.insert( "ldap", info ); 101 mTypeMap.insert( "ldap", info );
97 102
98 //US add opie plugin only, if the library exists. 103 //US add opie plugin only, if the library exists.
99 /*US 104 /*US
100 QString libname = "microkabc_opie"; 105 QString libname = "microkabc_opie";
101 QString path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); 106 QString path = KLibLoader::findLibrary( QFile::encodeName( libname ) );
102 if ( !path.isEmpty() ) 107 if ( !path.isEmpty() )
103 { 108 {
104 info = new PluginInfo; 109 info = new PluginInfo;
105 info->library = libname; 110 info->library = libname;
106 info->nameLabel = i18n( "opie" ); 111 info->nameLabel = i18n( "opie" );
107 info->descriptionLabel = i18n( "Opie PIM Addressbook." ); 112 info->descriptionLabel = i18n( "Opie PIM Addressbook." );
108 mTypeMap.insert( "opie", info ); 113 mTypeMap.insert( "opie", info );
109 } 114 }
110 */ 115 */
111 //US add qtopia plugin only, if the library exists. 116 //US add qtopia plugin only, if the library exists.
112 QString libname = "microkabc_qtopia"; 117 QString libname = "microkabc_qtopia";
113 QString path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); 118 QString path = KLibLoader::findLibrary( QFile::encodeName( libname ) );
114 if ( !path.isEmpty() ) 119 if ( !path.isEmpty() )
115 { 120 {
116 info = new PluginInfo; 121 info = new PluginInfo;
117 info->library = libname; 122 info->library = libname;
118 info->nameLabel = i18n( "qtopia" ); 123 info->nameLabel = i18n( "qtopia" );
119 info->descriptionLabel = i18n( "Qtopia PIM Addressbook." ); 124 info->descriptionLabel = i18n( "Qtopia PIM Addressbook." );
120 mTypeMap.insert( "qtopia", info ); 125 mTypeMap.insert( "qtopia", info );
121 } 126 }
122 127
123 //US add sharp plugin only, if the library exists. 128 //US add sharp plugin only, if the library exists.
124 libname = "microkabc_sharpdtm"; 129 libname = "microkabc_sharpdtm";
125 path = KLibLoader::findLibrary( QFile::encodeName( libname ) ); 130 path = KLibLoader::findLibrary( QFile::encodeName( libname ) );
126 if ( !path.isEmpty() ) 131 if ( !path.isEmpty() )
127 { 132 {
128 info = new PluginInfo; 133 info = new PluginInfo;
129 info->library = libname; 134 info->library = libname;
130 info->nameLabel = i18n( "sharp" ); 135 info->nameLabel = i18n( "sharp" );
131 info->descriptionLabel = i18n( "Sharp DTM Addressbook." ); 136 info->descriptionLabel = i18n( "Sharp DTM Addressbook." );
132 mTypeMap.insert( "sharp", info ); 137 mTypeMap.insert( "sharp", info );
133 } 138 }
134 139
135 140
136} 141}
137 142
138Factory::~Factory() 143Factory::~Factory()
139{ 144{
140} 145}
141 146
142QStringList Factory::typeNames() const 147QStringList Factory::typeNames() const
143{ 148{
144//US method QMap::keys() not available yet. SO collect the data manually 149//US method QMap::keys() not available yet. SO collect the data manually
145//US return mTypeMap.keys(); 150//US return mTypeMap.keys();
146 151
147 QStringList result; 152 QStringList result;
148 153
149 QMap<QString, PluginInfo*>::ConstIterator it; 154 QMap<QString, PluginInfo*>::ConstIterator it;
150 for( it = mTypeMap.begin(); it != mTypeMap.end(); ++it ) { 155 for( it = mTypeMap.begin(); it != mTypeMap.end(); ++it ) {
151 result << it.key().latin1(); 156 result << it.key().latin1();
152// qDebug("Factory::typeNames() : %s ", it.key().latin1()); 157// qDebug("Factory::typeNames() : %s ", it.key().latin1());
153 158
154 } 159 }
155 return result; 160 return result;
156} 161}
157 162
158ConfigWidget *Factory::configWidget( const QString& type, QWidget *parent ) 163ConfigWidget *Factory::configWidget( const QString& type, QWidget *parent )
159{ 164{
160 if ( type.isEmpty() || !mTypeMap.contains( type ) ) 165 if ( type.isEmpty() || !mTypeMap.contains( type ) )
161 return 0; 166 return 0;
162 167
163//US KService::Ptr ptr = mTypeMap[ type ]; 168//US KService::Ptr ptr = mTypeMap[ type ];
164//US KLibFactory *factory = KLibLoader::self()->factory( ptr->library().latin1() ); 169//US KLibFactory *factory = KLibLoader::self()->factory( ptr->library().latin1() );
165 PluginInfo* pi = mTypeMap[ type ]; 170 PluginInfo* pi = mTypeMap[ type ];
166 KLibFactory *factory = (KLibFactory *)KLibLoader::self()->factory( pi->library.latin1() ); 171 KLibFactory *factory = (KLibFactory *)KLibLoader::self()->factory( pi->library.latin1() );
167 if ( !factory ) { 172 if ( !factory ) {
168 qDebug("KRES::Factory::configWidget(): Factory creation failed for library %s", pi->library.latin1()); 173 qDebug("KRES::Factory::configWidget(): Factory creation failed for library %s", pi->library.latin1());
169 kdDebug() << "KRES::Factory::configWidget(): Factory creation failed" << endl; 174 kdDebug() << "KRES::Factory::configWidget(): Factory creation failed" << endl;
170 return 0; 175 return 0;
171 } 176 }
172 177
173 PluginFactoryBase *pluginFactory = static_cast<PluginFactoryBase *>( factory ); 178 PluginFactoryBase *pluginFactory = static_cast<PluginFactoryBase *>( factory );
174 179
175 if ( !pluginFactory ) { 180 if ( !pluginFactory ) {
176 qDebug("KRES::Factory::configWidget(): no plugin factory for library %s", pi->library.latin1()); 181 qDebug("KRES::Factory::configWidget(): no plugin factory for library %s", pi->library.latin1());
177 kdDebug() << "KRES::Factory::configWidget(): no plugin factory." << endl; 182 kdDebug() << "KRES::Factory::configWidget(): no plugin factory." << endl;
178 return 0; 183 return 0;
179 } 184 }
180 185
181 ConfigWidget *wdg = pluginFactory->configWidget( parent ); 186 ConfigWidget *wdg = pluginFactory->configWidget( parent );
182 if ( !wdg ) { 187 if ( !wdg ) {
183//US kdDebug() << "'" << ptr->library() << "' is not a " + mResourceFamily + " plugin." << endl; 188//US kdDebug() << "'" << ptr->library() << "' is not a " + mResourceFamily + " plugin." << endl;
184 qDebug("%s is not a %s plugin.", pi->library.latin1(), mResourceFamily.latin1()); 189 qDebug("%s is not a %s plugin.", pi->library.latin1(), mResourceFamily.latin1());
185 return 0; 190 return 0;
186 } 191 }
187 return wdg; 192 return wdg;
188 193
189} 194}
190 195
191QString Factory::typeName( const QString &type ) const 196QString Factory::typeName( const QString &type ) const
192{ 197{
193 if ( type.isEmpty() || !mTypeMap.contains( type ) ) 198 if ( type.isEmpty() || !mTypeMap.contains( type ) )
194 return QString(); 199 return QString();
195 200
196 201
197//US KService::Ptr ptr = mTypeMap[ type ]; 202//US KService::Ptr ptr = mTypeMap[ type ];
198//US return ptr->name(); 203//US return ptr->name();
199 PluginInfo* pi = mTypeMap[ type ]; 204 PluginInfo* pi = mTypeMap[ type ];
200 return pi->nameLabel; 205 return pi->nameLabel;
201 206
202} 207}
203 208
204QString Factory::typeDescription( const QString &type ) const 209QString Factory::typeDescription( const QString &type ) const
205{ 210{
206 if ( type.isEmpty() || !mTypeMap.contains( type ) ) 211 if ( type.isEmpty() || !mTypeMap.contains( type ) )
207 return QString(); 212 return QString();
208 213
209//US KService::Ptr ptr = mTypeMap[ type ]; 214//US KService::Ptr ptr = mTypeMap[ type ];
210//US return ptr->comment(); 215//US return ptr->comment();
211 PluginInfo* pi = mTypeMap[ type ]; 216 PluginInfo* pi = mTypeMap[ type ];
212 return pi->descriptionLabel; 217 return pi->descriptionLabel;
213} 218}
214 219
215Resource *Factory::resource( const QString& type, const KConfig *config ) 220Resource *Factory::resource( const QString& type, const KConfig *config )
216{ 221{
217 222
218 223
219 if ( type.isEmpty() || !mTypeMap.contains( type ) ) 224 if ( type.isEmpty() || !mTypeMap.contains( type ) )
220 return 0; 225 return 0;
221 226
227#ifdef STATIC_RESOURCES
228 qDebug("NEW STATIC RESOURCE %s", type.latin1());
229 Resource *resource = 0;
230 if ( type == "file" ) {
231 resource = (Resource *) new KABC::ResourceFile( config );
232 } else if ( type == "dir" ) {
233 resource = new KABC::ResourceDir( config );
234 } else if ( type == "qtopia" ) {
235 resource = new KABC::ResourceQtopia( config );
236 }
237 if ( !resource)
238 qDebug("Factory::resource:: resources are statically linked. resource type %s is not supported ",type.latin1() );
239 else
240 resource->setType( type );
241 return resource;
242#else
243
244
245
222/*US load the lib not dynamicly. !! 246/*US load the lib not dynamicly. !!
223 KService::Ptr ptr = mTypeMap[ type ]; 247 KService::Ptr ptr = mTypeMap[ type ];
224 KLibFactory *factory = KLibLoader::self()->factory( ptr->library().latin1() ); 248 KLibFactory *factory = KLibLoader::self()->factory( ptr->library().latin1() );
225 if ( !factory ) { 249 if ( !factory ) {
226 kdDebug() << "KRES::Factory::resource(): Factory creation failed" << endl; 250 kdDebug() << "KRES::Factory::resource(): Factory creation failed" << endl;
227 return 0; 251 return 0;
228 } 252 }
229*/ 253*/
230 PluginInfo* pi = mTypeMap[ type ]; 254 PluginInfo* pi = mTypeMap[ type ];
231 KLibFactory *factory = (KLibFactory *)KLibLoader::self()->factory( pi->library.latin1() ); 255 KLibFactory *factory = (KLibFactory *)KLibLoader::self()->factory( pi->library.latin1() );
232 if ( !factory ) { 256 if ( !factory ) {
233 qDebug("KRES::Factory::resource(): Factory creation failed for library %s", pi->library.latin1()); 257 qDebug("KRES::Factory::resource(): Factory creation failed for library %s", pi->library.latin1());
234 kdDebug() << "KRES::Factory::resource(): Factory creation failed" << endl; 258 kdDebug() << "KRES::Factory::resource(): Factory creation failed" << endl;
235 return 0; 259 return 0;
236 } 260 }
237 261
238 PluginFactoryBase *pluginFactory = static_cast<PluginFactoryBase *>( factory ); 262 PluginFactoryBase *pluginFactory = static_cast<PluginFactoryBase *>( factory );
239 263
240 if ( !pluginFactory ) { 264 if ( !pluginFactory ) {
241 qDebug("KRES::Factory::resource(): no plugin factory for library %s", pi->library.latin1()); 265 qDebug("KRES::Factory::resource(): no plugin factory for library %s", pi->library.latin1());
242 kdDebug() << "KRES::Factory::resource(): no plugin factory." << endl; 266 kdDebug() << "KRES::Factory::resource(): no plugin factory." << endl;
243 return 0; 267 return 0;
244 } 268 }
245 269
246 Resource *resource = pluginFactory->resource( config ); 270 Resource *resource = pluginFactory->resource( config );
247 if ( !resource ) { 271 if ( !resource ) {
248//US kdDebug() << "'" << ptr->library() << "' is not a " + mResourceFamily + " plugin." << endl; 272//US kdDebug() << "'" << ptr->library() << "' is not a " + mResourceFamily + " plugin." << endl;
249 qDebug("%s is not a %s plugin.", pi->library.latin1(), mResourceFamily.latin1()); 273 qDebug("%s is not a %s plugin.", pi->library.latin1(), mResourceFamily.latin1());
250 return 0; 274 return 0;
251 } 275 }
252 276
253 resource->setType( type ); 277 resource->setType( type );
254 278
255 return resource; 279 return resource;
280
281#endif
256} 282}
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
@@ -1,138 +1,140 @@
1/* 1/*
2 This file is part of libkresources. 2 This file is part of libkresources.
3 3
4 Copyright (c) 2002 Tobias Koenig <tokoe@kde.org> 4 Copyright (c) 2002 Tobias Koenig <tokoe@kde.org>
5 Copyright (c) 2002 Jan-Pascal van Best <janpascal@vanbest.org> 5 Copyright (c) 2002 Jan-Pascal van Best <janpascal@vanbest.org>
6 Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org> 6 Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org>
7 7
8 This library is free software; you can redistribute it and/or 8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Library General Public 9 modify it under the terms of the GNU Library General Public
10 License as published by the Free Software Foundation; either 10 License as published by the Free Software Foundation; either
11 version 2 of the License, or (at your option) any later version. 11 version 2 of the License, or (at your option) any later version.
12 12
13 This library is distributed in the hope that it will be useful, 13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Library General Public License for more details. 16 Library General Public License for more details.
17 17
18 You should have received a copy of the GNU Library General Public License 18 You should have received a copy of the GNU Library General Public License
19 along with this library; see the file COPYING.LIB. If not, write to 19 along with this library; see the file COPYING.LIB. If not, write to
20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 Boston, MA 02111-1307, USA. 21 Boston, MA 02111-1307, USA.
22*/ 22*/
23 23
24/* 24/*
25Enhanced Version of the file for platform independent KDE tools. 25Enhanced Version of the file for platform independent KDE tools.
26Copyright (c) 2004 Ulf Schenk 26Copyright (c) 2004 Ulf Schenk
27 27
28$Id$ 28$Id$
29*/ 29*/
30 30
31#include <kglobal.h> 31#include <kglobal.h>
32 32
33#include <kapplication.h> 33#include <kapplication.h>
34#include <kdebug.h> 34#include <kdebug.h>
35#include <kconfig.h> 35#include <kconfig.h>
36#include <kstandarddirs.h> 36#include <kstandarddirs.h>
37#include <qfile.h> 37#include <qfile.h>
38 38
39#include "resource.h" 39#include "resource.h"
40#include "factory.h" 40#include "factory.h"
41#include "managerimpl.h" 41#include "managerimpl.h"
42 42
43
44
43using namespace KRES; 45using namespace KRES;
44 46
45ManagerImpl::ManagerImpl( const QString &family ) 47ManagerImpl::ManagerImpl( const QString &family )
46 : mFamily( family ), mConfig( 0 ), mStdConfig( 0 ), mStandard( 0 ), 48 : mFamily( family ), mConfig( 0 ), mStdConfig( 0 ), mStandard( 0 ),
47 mFactory( 0 ) 49 mFactory( 0 )
48 50
49{ 51{
50 kdDebug(5650) << "ManagerImpl::ManagerImpl()" << endl; 52 kdDebug(5650) << "ManagerImpl::ManagerImpl()" << endl;
51 53
52 54
53} 55}
54 56
55ManagerImpl::~ManagerImpl() 57ManagerImpl::~ManagerImpl()
56{ 58{
57 kdDebug(5650) << "ManagerImpl::~ManagerImpl()" << endl; 59 kdDebug(5650) << "ManagerImpl::~ManagerImpl()" << endl;
58 60
59 Resource::List::ConstIterator it; 61 Resource::List::ConstIterator it;
60 for ( it = mResources.begin(); it != mResources.end(); ++it ) { 62 for ( it = mResources.begin(); it != mResources.end(); ++it ) {
61 delete *it; 63 delete *it;
62 } 64 }
63 65
64 delete mStdConfig; 66 delete mStdConfig;
65} 67}
66 68
67void ManagerImpl::createStandardConfig() 69void ManagerImpl::createStandardConfig()
68{ 70{
69 if ( !mStdConfig ) { 71 if ( !mStdConfig ) {
70 QString file = locateLocal( "data", KGlobal::getAppName() 72 QString file = locateLocal( "data", KGlobal::getAppName()
71 + "/kresources/" + mFamily + "rc" ); 73 + "/kresources/" + mFamily + "rc" );
72 if ( mFamily == "tmpcontact" ) { 74 if ( mFamily == "tmpcontact" ) {
73 if (QFile::exists ( file ) ){ 75 if (QFile::exists ( file ) ){
74 QFile::remove ( file ); 76 QFile::remove ( file );
75 qDebug("removed tmp rc file: %s ", file.latin1()); 77 qDebug("removed tmp rc file: %s ", file.latin1());
76 } 78 }
77 } 79 }
78 mStdConfig = new KConfig( file ); 80 mStdConfig = new KConfig( file );
79 } 81 }
80 82
81 mConfig = mStdConfig; 83 mConfig = mStdConfig;
82} 84}
83 85
84void ManagerImpl::readConfig( KConfig *cfg ) 86void ManagerImpl::readConfig( KConfig *cfg )
85{ 87{
86 kdDebug(5650) << "ManagerImpl::readConfig()" << endl; 88 kdDebug(5650) << "ManagerImpl::readConfig()" << endl;
87 89
88 delete mFactory; 90 delete mFactory;
89 mFactory = Factory::self( mFamily ); 91 mFactory = Factory::self( mFamily );
90 92
91 if ( !cfg ) { 93 if ( !cfg ) {
92 createStandardConfig(); 94 createStandardConfig();
93 } else { 95 } else {
94 mConfig = cfg; 96 mConfig = cfg;
95 } 97 }
96 98
97 mStandard = 0; 99 mStandard = 0;
98 100
99 mConfig->setGroup( "General" ); 101 mConfig->setGroup( "General" );
100 102
101 QStringList keys = mConfig->readListEntry( "ResourceKeys" ); 103 QStringList keys = mConfig->readListEntry( "ResourceKeys" );
102 keys += mConfig->readListEntry( "PassiveResourceKeys" ); 104 keys += mConfig->readListEntry( "PassiveResourceKeys" );
103 105
104 QString standardKey = mConfig->readEntry( "Standard" ); 106 QString standardKey = mConfig->readEntry( "Standard" );
105 107
106 for ( QStringList::Iterator it = keys.begin(); it != keys.end(); ++it ) { 108 for ( QStringList::Iterator it = keys.begin(); it != keys.end(); ++it ) {
107 readResourceConfig( *it, false ); 109 readResourceConfig( *it, false );
108 } 110 }
109 111
110} 112}
111 113
112void ManagerImpl::writeConfig( KConfig *cfg ) 114void ManagerImpl::writeConfig( KConfig *cfg )
113{ 115{
114//USqDebug("ManagerImpl::writeConfig begin this= %ul cfg=%ul", this, cfg); 116//USqDebug("ManagerImpl::writeConfig begin this= %ul cfg=%ul", this, cfg);
115 117
116 118
117 kdDebug(5650) << "ManagerImpl::writeConfig()" << endl; 119 kdDebug(5650) << "ManagerImpl::writeConfig()" << endl;
118 120
119 if ( !cfg ) { 121 if ( !cfg ) {
120 createStandardConfig(); 122 createStandardConfig();
121 } else { 123 } else {
122 mConfig = cfg; 124 mConfig = cfg;
123 } 125 }
124 126
125 QStringList activeKeys; 127 QStringList activeKeys;
126 QStringList passiveKeys; 128 QStringList passiveKeys;
127 129
128 // First write all keys, collect active and passive keys on the way 130 // First write all keys, collect active and passive keys on the way
129 Resource::List::Iterator it; 131 Resource::List::Iterator it;
130 for ( it = mResources.begin(); it != mResources.end(); ++it ) { 132 for ( it = mResources.begin(); it != mResources.end(); ++it ) {
131 writeResourceConfig( *it, false ); 133 writeResourceConfig( *it, false );
132 134
133 QString key = (*it)->identifier(); 135 QString key = (*it)->identifier();
134 if( (*it)->isActive() ) 136 if( (*it)->isActive() )
135 activeKeys.append( key ); 137 activeKeys.append( key );
136 else 138 else
137 passiveKeys.append( key ); 139 passiveKeys.append( key );
138 } 140 }