[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