[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: =?utf-8?q?=5Bkdepim-runtime=5D_resources/dav/resource=3A_Do_not_?=
From: Gregory Oestreicher <greg () kamago ! net>
Date: 2011-05-01 9:22:48
Message-ID: 20110501092248.6EDD5A60A4 () git ! kde ! org
[Download RAW message or body]
Git commit da482c460a9d8c2178689cc162fd29cb201c8c4e by Gregory Oestreicher.
Committed on 01/05/2011 at 11:22.
Pushed by goestreicher into branch 'master'.
Do not store mappings into configuration
M +6 -0 resources/dav/resource/davgroupwareresource.cpp
M +1 -0 resources/dav/resource/davgroupwareresource.h
M +31 -7 resources/dav/resource/settings.cpp
M +2 -0 resources/dav/resource/settings.h
http://commits.kde.org/kdepim-runtime/da482c460a9d8c2178689cc162fd29cb201c8c4e
diff --git a/resources/dav/resource/davgroupwareresource.cpp \
b/resources/dav/resource/davgroupwareresource.cpp index 29806be..f30ce61 100644
--- a/resources/dav/resource/davgroupwareresource.cpp
+++ b/resources/dav/resource/davgroupwareresource.cpp
@@ -113,6 +113,12 @@ void DavGroupwareResource::collectionRemoved( const \
Akonadi::Collection &collect job->start();
}
+void DavGroupwareResource::cleanup()
+{
+ Settings::self()->cleanup();
+ Akonadi::AgentBase::cleanup();
+}
+
void DavGroupwareResource::configure( WId windowId )
{
Settings::self()->setWinId( windowId );
diff --git a/resources/dav/resource/davgroupwareresource.h \
b/resources/dav/resource/davgroupwareresource.h index 2988e63..c7a2c82 100644
--- a/resources/dav/resource/davgroupwareresource.h
+++ b/resources/dav/resource/davgroupwareresource.h
@@ -33,6 +33,7 @@ class DavGroupwareResource : public Akonadi::ResourceBase,
~DavGroupwareResource();
virtual void collectionRemoved( const Akonadi::Collection &collection );
+ virtual void cleanup();
public Q_SLOTS:
virtual void configure( WId windowId );
diff --git a/resources/dav/resource/settings.cpp \
b/resources/dav/resource/settings.cpp index 7725a18..f71a3a5 100644
--- a/resources/dav/resource/settings.cpp
+++ b/resources/dav/resource/settings.cpp
@@ -23,11 +23,15 @@
#include "settingsadaptor.h"
+#include <kapplication.h>
+#include <kdebug.h>
#include <kglobal.h>
#include <klocale.h>
+#include <kstandarddirs.h>
#include <QtCore/QByteArray>
#include <QtCore/QDataStream>
+#include <QtCore/QFile>
#include <QtDBus/QDBusConnection>
class SettingsHelper
@@ -91,11 +95,22 @@ Settings::Settings()
QDBusConnection::sessionBus().registerObject( QLatin1String( "/Settings" ), this,
QDBusConnection::ExportAdaptors | \
QDBusConnection::ExportScriptableContents );
- if ( !collectionsUrlsMappings().isEmpty() ) {
+ QString collectionsMappingCacheBase = QString( "akonadi-davgroupware/%1_c2u.dat" \
).arg( KApplication::applicationName() ); + mCollectionsUrlsMappingCache = \
KStandardDirs::locateLocal( "data", collectionsMappingCacheBase ); + QFile \
collectionsMappingsCache( mCollectionsUrlsMappingCache ); +
+ if ( collectionsMappingsCache.exists() ) {
+ if ( collectionsMappingsCache.open( QIODevice::ReadOnly ) ) {
+ QDataStream cache( &collectionsMappingsCache );
+ cache >> mCollectionsUrlsMapping;
+ collectionsMappingsCache.close();
+ }
+ }
+ else if ( !collectionsUrlsMappings().isEmpty() ) {
QByteArray rawMappings = QByteArray::fromBase64( \
collectionsUrlsMappings().toAscii() ); QDataStream stream( &rawMappings, \
QIODevice::ReadOnly ); stream >> mCollectionsUrlsMapping;
- Q_ASSERT_X( !mCollectionsUrlsMapping.isEmpty(), "Settings::Settings()", "Failed \
to import collections mappings" ); + setCollectionsUrlsMappings( QString() );
}
foreach ( const QString &serializedUrl, remoteUrls() ) {
@@ -119,6 +134,12 @@ void Settings::setWinId( WId winId )
mWinId = winId;
}
+void Settings::cleanup()
+{
+ QFile cacheFile( mCollectionsUrlsMappingCache );
+ cacheFile.remove();
+}
+
DavUtils::DavUrl::List Settings::configuredDavUrls()
{
DavUtils::DavUrl::List davUrls;
@@ -167,12 +188,15 @@ void Settings::addCollectionUrlMapping( DavUtils::Protocol \
proto, const QString QString value = configuredUrl + "," + DavUtils::protocolName( \
proto ); mCollectionsUrlsMapping.insert( collectionUrl, value );
- // Update the settings now
+ // Update the cache now
QMap<QString, QString> tmp( mCollectionsUrlsMapping );
- QByteArray rawMappings;
- QDataStream stream( &rawMappings, QIODevice::WriteOnly );
- stream << tmp;
- setCollectionsUrlsMappings( QString::fromAscii( rawMappings.toBase64() ) );
+ QFile cacheFile( mCollectionsUrlsMappingCache );
+ if ( cacheFile.open( QIODevice::WriteOnly ) ) {
+ QDataStream cache( &cacheFile );
+ cache.setVersion( QDataStream::Qt_4_7 );
+ cache << mCollectionsUrlsMapping;
+ cacheFile.close();
+ }
}
void Settings::newUrlConfiguration( Settings::UrlConfiguration *urlConfig )
diff --git a/resources/dav/resource/settings.h b/resources/dav/resource/settings.h
index 5f16335..b303b23 100644
--- a/resources/dav/resource/settings.h
+++ b/resources/dav/resource/settings.h
@@ -56,6 +56,7 @@ class Settings : public SettingsBase
virtual ~Settings();
static Settings* self();
void setWinId( WId wid );
+ void cleanup();
DavUtils::DavUrl::List configuredDavUrls();
@@ -92,6 +93,7 @@ class Settings : public SettingsBase
WId mWinId;
QMap<QString, UrlConfiguration*> mUrls;
+ QString mCollectionsUrlsMappingCache;
QMap<QString, QString> mCollectionsUrlsMapping;
QList<UrlConfiguration*> mToDeleteUrlConfigs;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic