Diffstat (limited to 'microkde/kresources/managerimpl.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | microkde/kresources/managerimpl.cpp | 70 |
1 files changed, 43 insertions, 27 deletions
diff --git a/microkde/kresources/managerimpl.cpp b/microkde/kresources/managerimpl.cpp index 785b6b4..3655f50 100644 --- a/microkde/kresources/managerimpl.cpp +++ b/microkde/kresources/managerimpl.cpp | |||
@@ -1,6 +1,6 @@ | |||
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> |
@@ -21,6 +21,13 @@ | |||
21 | Boston, MA 02111-1307, USA. | 21 | Boston, MA 02111-1307, USA. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | /* | ||
25 | Enhanced Version of the file for platform independent KDE tools. | ||
26 | Copyright (c) 2004 Ulf Schenk | ||
27 | |||
28 | $Id$ | ||
29 | */ | ||
30 | |||
24 | #include <kglobal.h> | 31 | #include <kglobal.h> |
25 | 32 | ||
26 | #include <kapplication.h> | 33 | #include <kapplication.h> |
@@ -34,14 +41,14 @@ | |||
34 | 41 | ||
35 | using namespace KRES; | 42 | using namespace KRES; |
36 | 43 | ||
37 | ManagerImpl::ManagerImpl( const QString &family ) | 44 | ManagerImpl::ManagerImpl( const QString &family, bool syncable ) |
38 | : mFamily( family ), mConfig( 0 ), mStdConfig( 0 ), mStandard( 0 ), | 45 | : mFamily( family ), mSyncable(syncable), mConfig( 0 ), mStdConfig( 0 ), mStandard( 0 ), |
39 | mFactory( 0 ) | 46 | mFactory( 0 ) |
40 | 47 | ||
41 | { | 48 | { |
42 | kdDebug(5650) << "ManagerImpl::ManagerImpl()" << endl; | 49 | kdDebug(5650) << "ManagerImpl::ManagerImpl()" << endl; |
43 | 50 | ||
44 | 51 | ||
45 | } | 52 | } |
46 | 53 | ||
47 | ManagerImpl::~ManagerImpl() | 54 | ManagerImpl::~ManagerImpl() |
@@ -52,18 +59,18 @@ ManagerImpl::~ManagerImpl() | |||
52 | for ( it = mResources.begin(); it != mResources.end(); ++it ) { | 59 | for ( it = mResources.begin(); it != mResources.end(); ++it ) { |
53 | delete *it; | 60 | delete *it; |
54 | } | 61 | } |
55 | 62 | ||
56 | delete mStdConfig; | 63 | delete mStdConfig; |
57 | } | 64 | } |
58 | 65 | ||
59 | void ManagerImpl::createStandardConfig() | 66 | void ManagerImpl::createStandardConfig() |
60 | { | 67 | { |
61 | if ( !mStdConfig ) { | 68 | if ( !mStdConfig ) { |
62 | QString file = locateLocal( "data", KGlobal::getAppName() | 69 | QString file = locateLocal( "data", KGlobal::getAppName() |
63 | + "/kresources/" + mFamily + "rc" ); | 70 | + "/kresources/" + mFamily + "rc" ); |
64 | mStdConfig = new KConfig( file ); | 71 | mStdConfig = new KConfig( file ); |
65 | } | 72 | } |
66 | 73 | ||
67 | mConfig = mStdConfig; | 74 | mConfig = mStdConfig; |
68 | } | 75 | } |
69 | 76 | ||
@@ -79,7 +86,7 @@ void ManagerImpl::readConfig( KConfig *cfg ) | |||
79 | } else { | 86 | } else { |
80 | mConfig = cfg; | 87 | mConfig = cfg; |
81 | } | 88 | } |
82 | 89 | ||
83 | mStandard = 0; | 90 | mStandard = 0; |
84 | 91 | ||
85 | mConfig->setGroup( "General" ); | 92 | mConfig->setGroup( "General" ); |
@@ -92,14 +99,14 @@ void ManagerImpl::readConfig( KConfig *cfg ) | |||
92 | for ( QStringList::Iterator it = keys.begin(); it != keys.end(); ++it ) { | 99 | for ( QStringList::Iterator it = keys.begin(); it != keys.end(); ++it ) { |
93 | readResourceConfig( *it, false ); | 100 | readResourceConfig( *it, false ); |
94 | } | 101 | } |
95 | 102 | ||
96 | } | 103 | } |
97 | 104 | ||
98 | void ManagerImpl::writeConfig( KConfig *cfg ) | 105 | void ManagerImpl::writeConfig( KConfig *cfg ) |
99 | { | 106 | { |
100 | //USqDebug("ManagerImpl::writeConfig begin this= %ul cfg=%ul", this, cfg); | 107 | //USqDebug("ManagerImpl::writeConfig begin this= %ul cfg=%ul", this, cfg); |
101 | 108 | ||
102 | 109 | ||
103 | kdDebug(5650) << "ManagerImpl::writeConfig()" << endl; | 110 | kdDebug(5650) << "ManagerImpl::writeConfig()" << endl; |
104 | 111 | ||
105 | if ( !cfg ) { | 112 | if ( !cfg ) { |
@@ -107,7 +114,7 @@ void ManagerImpl::writeConfig( KConfig *cfg ) | |||
107 | } else { | 114 | } else { |
108 | mConfig = cfg; | 115 | mConfig = cfg; |
109 | } | 116 | } |
110 | 117 | ||
111 | QStringList activeKeys; | 118 | QStringList activeKeys; |
112 | QStringList passiveKeys; | 119 | QStringList passiveKeys; |
113 | 120 | ||
@@ -129,22 +136,22 @@ void ManagerImpl::writeConfig( KConfig *cfg ) | |||
129 | mConfig->setGroup( "General" ); | 136 | mConfig->setGroup( "General" ); |
130 | mConfig->writeEntry( "ResourceKeys", activeKeys ); | 137 | mConfig->writeEntry( "ResourceKeys", activeKeys ); |
131 | mConfig->writeEntry( "PassiveResourceKeys", passiveKeys ); | 138 | mConfig->writeEntry( "PassiveResourceKeys", passiveKeys ); |
132 | if ( mStandard ) | 139 | if ( mStandard ) |
133 | mConfig->writeEntry( "Standard", mStandard->identifier() ); | 140 | mConfig->writeEntry( "Standard", mStandard->identifier() ); |
134 | else | 141 | else |
135 | mConfig->writeEntry( "Standard", "" ); | 142 | mConfig->writeEntry( "Standard", "" ); |
136 | 143 | ||
137 | mConfig->sync(); | 144 | mConfig->sync(); |
138 | kdDebug(5650) << "ManagerImpl::save() finished" << endl; | 145 | kdDebug(5650) << "ManagerImpl::save() finished" << endl; |
139 | 146 | ||
140 | //US qDebug("ManagerImpl::writeConfig end this= %ul cfg=%ul", this, cfg); | 147 | //US qDebug("ManagerImpl::writeConfig end this= %ul cfg=%ul", this, cfg); |
141 | 148 | ||
142 | } | 149 | } |
143 | 150 | ||
144 | void ManagerImpl::add( Resource *resource, bool useDCOP ) | 151 | void ManagerImpl::add( Resource *resource, bool useDCOP ) |
145 | { | 152 | { |
146 | qDebug("ManagerImpl::add begin this= %ul resource=%ul", this, resource); | 153 | qDebug("ManagerImpl::add begin this= %ul resource=%ul", this, resource); |
147 | 154 | ||
148 | resource->setActive( true ); | 155 | resource->setActive( true ); |
149 | 156 | ||
150 | if ( mResources.isEmpty() ) { | 157 | if ( mResources.isEmpty() ) { |
@@ -155,7 +162,7 @@ qDebug("ManagerImpl::add begin this= %ul resource=%ul", this, resource); | |||
155 | 162 | ||
156 | writeResourceConfig( resource, true ); | 163 | writeResourceConfig( resource, true ); |
157 | 164 | ||
158 | qDebug("ManagerImpl::add end this= %ul resource=%ul", this, resource); | 165 | qDebug("ManagerImpl::add end this= %ul resource=%ul", this, resource); |
159 | 166 | ||
160 | } | 167 | } |
161 | 168 | ||
@@ -178,12 +185,12 @@ void ManagerImpl::setActive( Resource *resource, bool active ) | |||
178 | } | 185 | } |
179 | } | 186 | } |
180 | 187 | ||
181 | Resource *ManagerImpl::standardResource() | 188 | Resource *ManagerImpl::standardResource() |
182 | { | 189 | { |
183 | return mStandard; | 190 | return mStandard; |
184 | } | 191 | } |
185 | 192 | ||
186 | void ManagerImpl::setStandardResource( Resource *resource ) | 193 | void ManagerImpl::setStandardResource( Resource *resource ) |
187 | { | 194 | { |
188 | mStandard = resource; | 195 | mStandard = resource; |
189 | } | 196 | } |
@@ -249,7 +256,7 @@ Resource* ManagerImpl::readResourceConfig( const QString& identifier, | |||
249 | bool checkActive ) | 256 | bool checkActive ) |
250 | { | 257 | { |
251 | kdDebug() << "ManagerImpl::readResourceConfig() " << identifier << endl; | 258 | kdDebug() << "ManagerImpl::readResourceConfig() " << identifier << endl; |
252 | 259 | ||
253 | // qDebug("ManagerImpl::readResourceConfig() %s", identifier.latin1()); | 260 | // qDebug("ManagerImpl::readResourceConfig() %s", identifier.latin1()); |
254 | 261 | ||
255 | mConfig->setGroup( "Resource_" + identifier ); | 262 | mConfig->setGroup( "Resource_" + identifier ); |
@@ -261,7 +268,7 @@ Resource* ManagerImpl::readResourceConfig( const QString& identifier, | |||
261 | #endif | 268 | #endif |
262 | QString type = mConfig->readEntry( "ResourceType" ); | 269 | QString type = mConfig->readEntry( "ResourceType" ); |
263 | QString name = mConfig->readEntry( "ResourceName" ); | 270 | QString name = mConfig->readEntry( "ResourceName" ); |
264 | Resource *resource = mFactory->resource( type, mConfig ); | 271 | Resource *resource = mFactory->resource( type, mConfig, mSyncable ); |
265 | if ( !resource ) { | 272 | if ( !resource ) { |
266 | qDebug("Failed to create resource with id %s ",identifier.latin1() ); | 273 | qDebug("Failed to create resource with id %s ",identifier.latin1() ); |
267 | return 0; | 274 | return 0; |
@@ -305,7 +312,7 @@ void ManagerImpl::writeResourceConfig( Resource *resource, | |||
305 | mConfig->writeEntry( "Standard", resource->identifier() ); | 312 | mConfig->writeEntry( "Standard", resource->identifier() ); |
306 | else if ( resource != mStandard && standardKey == key ) | 313 | else if ( resource != mStandard && standardKey == key ) |
307 | mConfig->writeEntry( "Standard", "" ); | 314 | mConfig->writeEntry( "Standard", "" ); |
308 | 315 | ||
309 | if ( checkActive ) { | 316 | if ( checkActive ) { |
310 | QStringList activeKeys = mConfig->readListEntry( "ResourceKeys" ); | 317 | QStringList activeKeys = mConfig->readListEntry( "ResourceKeys" ); |
311 | if ( resource->isActive() && !activeKeys.contains( key ) ) { | 318 | if ( resource->isActive() && !activeKeys.contains( key ) ) { |
@@ -325,7 +332,7 @@ void ManagerImpl::removeResource( Resource *resource ) | |||
325 | QString key = resource->identifier(); | 332 | QString key = resource->identifier(); |
326 | 333 | ||
327 | if ( !mConfig ) createStandardConfig(); | 334 | if ( !mConfig ) createStandardConfig(); |
328 | 335 | ||
329 | mConfig->setGroup( "General" ); | 336 | mConfig->setGroup( "General" ); |
330 | QStringList activeKeys = mConfig->readListEntry( "ResourceKeys" ); | 337 | QStringList activeKeys = mConfig->readListEntry( "ResourceKeys" ); |
331 | if ( activeKeys.contains( key ) ) { | 338 | if ( activeKeys.contains( key ) ) { |
@@ -356,3 +363,12 @@ Resource* ManagerImpl::getResource( const QString& identifier ) | |||
356 | } | 363 | } |
357 | return 0; | 364 | return 0; |
358 | } | 365 | } |
366 | |||
367 | /** | ||
368 | Return true, if the manager manages syncable resources. | ||
369 | */ | ||
370 | bool ManagerImpl::manageSyncable() const | ||
371 | { | ||
372 | return mSyncable; | ||
373 | } | ||
374 | |||