summaryrefslogtreecommitdiffabout
path: root/microkde/kresources/managerimpl.cpp
authorulf69 <ulf69>2004-08-02 18:12:49 (UTC)
committer ulf69 <ulf69>2004-08-02 18:12:49 (UTC)
commitb4203356adb6008a4b4e6782afdae7dd34178697 (patch) (side-by-side diff)
tree13ec830c5748106467c2d610d65db5d1a2cf9263 /microkde/kresources/managerimpl.cpp
parent09e8e7e5d4c3cafcf2b05511e5c78717fb5380e7 (diff)
downloadkdepimpi-b4203356adb6008a4b4e6782afdae7dd34178697.zip
kdepimpi-b4203356adb6008a4b4e6782afdae7dd34178697.tar.gz
kdepimpi-b4203356adb6008a4b4e6782afdae7dd34178697.tar.bz2
added support for syncing of resources
Diffstat (limited to 'microkde/kresources/managerimpl.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kresources/managerimpl.cpp70
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,7 +1,7 @@
/*
This file is part of libkresources.
-
+
Copyright (c) 2002 Tobias Koenig <tokoe@kde.org>
Copyright (c) 2002 Jan-Pascal van Best <janpascal@vanbest.org>
Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org>
@@ -20,8 +20,15 @@
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 <kglobal.h>
#include <kapplication.h>
#include <kdebug.h>
@@ -33,16 +40,16 @@
#include "managerimpl.h"
using namespace KRES;
-ManagerImpl::ManagerImpl( const QString &family )
- : mFamily( family ), mConfig( 0 ), mStdConfig( 0 ), mStandard( 0 ),
+ManagerImpl::ManagerImpl( const QString &family, bool syncable )
+ : mFamily( family ), mSyncable(syncable), mConfig( 0 ), mStdConfig( 0 ), mStandard( 0 ),
mFactory( 0 )
{
kdDebug(5650) << "ManagerImpl::ManagerImpl()" << endl;
-
-
+
+
}
ManagerImpl::~ManagerImpl()
{
@@ -51,20 +58,20 @@ ManagerImpl::~ManagerImpl()
Resource::List::ConstIterator it;
for ( it = mResources.begin(); it != mResources.end(); ++it ) {
delete *it;
}
-
+
delete mStdConfig;
}
void ManagerImpl::createStandardConfig()
{
if ( !mStdConfig ) {
- QString file = locateLocal( "data", KGlobal::getAppName()
+ QString file = locateLocal( "data", KGlobal::getAppName()
+ "/kresources/" + mFamily + "rc" );
mStdConfig = new KConfig( file );
}
-
+
mConfig = mStdConfig;
}
void ManagerImpl::readConfig( KConfig *cfg )
@@ -78,9 +85,9 @@ void ManagerImpl::readConfig( KConfig *cfg )
createStandardConfig();
} else {
mConfig = cfg;
}
-
+
mStandard = 0;
mConfig->setGroup( "General" );
@@ -91,24 +98,24 @@ void ManagerImpl::readConfig( KConfig *cfg )
for ( QStringList::Iterator it = keys.begin(); it != keys.end(); ++it ) {
readResourceConfig( *it, false );
}
-
+
}
void ManagerImpl::writeConfig( KConfig *cfg )
{
-//USqDebug("ManagerImpl::writeConfig begin this= %ul cfg=%ul", this, cfg);
-
-
+//USqDebug("ManagerImpl::writeConfig begin this= %ul cfg=%ul", this, cfg);
+
+
kdDebug(5650) << "ManagerImpl::writeConfig()" << endl;
if ( !cfg ) {
createStandardConfig();
} else {
mConfig = cfg;
}
-
+
QStringList activeKeys;
QStringList passiveKeys;
// First write all keys, collect active and passive keys on the way
@@ -128,24 +135,24 @@ void ManagerImpl::writeConfig( KConfig *cfg )
kdDebug(5650) << "Saving general info" << endl;
mConfig->setGroup( "General" );
mConfig->writeEntry( "ResourceKeys", activeKeys );
mConfig->writeEntry( "PassiveResourceKeys", passiveKeys );
- if ( mStandard )
+ if ( mStandard )
mConfig->writeEntry( "Standard", mStandard->identifier() );
else
mConfig->writeEntry( "Standard", "" );
mConfig->sync();
kdDebug(5650) << "ManagerImpl::save() finished" << endl;
-
-//US qDebug("ManagerImpl::writeConfig end this= %ul cfg=%ul", this, cfg);
-
+
+//US qDebug("ManagerImpl::writeConfig end this= %ul cfg=%ul", this, cfg);
+
}
void ManagerImpl::add( Resource *resource, bool useDCOP )
{
-qDebug("ManagerImpl::add begin this= %ul resource=%ul", this, resource);
-
+qDebug("ManagerImpl::add begin this= %ul resource=%ul", this, resource);
+
resource->setActive( true );
if ( mResources.isEmpty() ) {
mStandard = resource;
@@ -154,9 +161,9 @@ qDebug("ManagerImpl::add begin this= %ul resource=%ul", this, resource);
mResources.append( resource );
writeResourceConfig( resource, true );
- qDebug("ManagerImpl::add end this= %ul resource=%ul", this, resource);
+ qDebug("ManagerImpl::add end this= %ul resource=%ul", this, resource);
}
void ManagerImpl::remove( Resource *resource, bool useDCOP )
@@ -177,14 +184,14 @@ void ManagerImpl::setActive( Resource *resource, bool active )
resource->setActive( active );
}
}
-Resource *ManagerImpl::standardResource()
+Resource *ManagerImpl::standardResource()
{
return mStandard;
}
-void ManagerImpl::setStandardResource( Resource *resource )
+void ManagerImpl::setStandardResource( Resource *resource )
{
mStandard = resource;
}
@@ -248,9 +255,9 @@ void ManagerImpl::setListener( ManagerImplListener *listener )
Resource* ManagerImpl::readResourceConfig( const QString& identifier,
bool checkActive )
{
kdDebug() << "ManagerImpl::readResourceConfig() " << identifier << endl;
-
+
// qDebug("ManagerImpl::readResourceConfig() %s", identifier.latin1());
mConfig->setGroup( "Resource_" + identifier );
#ifdef _WIN32_
@@ -260,9 +267,9 @@ Resource* ManagerImpl::readResourceConfig( const QString& identifier,
mConfig->setTempGroup( "Resource_" + identifier );
#endif
QString type = mConfig->readEntry( "ResourceType" );
QString name = mConfig->readEntry( "ResourceName" );
- Resource *resource = mFactory->resource( type, mConfig );
+ Resource *resource = mFactory->resource( type, mConfig, mSyncable );
if ( !resource ) {
qDebug("Failed to create resource with id %s ",identifier.latin1() );
return 0;
}
@@ -304,9 +311,9 @@ void ManagerImpl::writeResourceConfig( Resource *resource,
if ( resource == mStandard && standardKey != key )
mConfig->writeEntry( "Standard", resource->identifier() );
else if ( resource != mStandard && standardKey == key )
mConfig->writeEntry( "Standard", "" );
-
+
if ( checkActive ) {
QStringList activeKeys = mConfig->readListEntry( "ResourceKeys" );
if ( resource->isActive() && !activeKeys.contains( key ) ) {
activeKeys.append( resource->identifier() );
@@ -324,9 +331,9 @@ void ManagerImpl::removeResource( Resource *resource )
{
QString key = resource->identifier();
if ( !mConfig ) createStandardConfig();
-
+
mConfig->setGroup( "General" );
QStringList activeKeys = mConfig->readListEntry( "ResourceKeys" );
if ( activeKeys.contains( key ) ) {
activeKeys.remove( key );
@@ -355,4 +362,13 @@ Resource* ManagerImpl::getResource( const QString& identifier )
return *it;
}
return 0;
}
+
+/**
+ Return true, if the manager manages syncable resources.
+*/
+bool ManagerImpl::manageSyncable() const
+{
+ return mSyncable;
+}
+