[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdegraphics/gwenview/lib/metadata
From:       Aurélien Gâteau <aurelien.gateau () free ! fr>
Date:       2008-05-01 8:24:23
Message-ID: 1209630263.629445.29996.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 802909 by gateau:

FakeMetaDataBackEnd can now use empty data instead of random.
Good for unit test.


 M  +23 -10    fakemetadatabackend.cpp  
 M  +11 -2     fakemetadatabackend.h  
 M  +1 -1      metadatadirmodel.cpp  


--- trunk/KDE/kdegraphics/gwenview/lib/metadata/fakemetadatabackend.cpp #802908:802909
@@ -32,22 +32,35 @@
 namespace Gwenview {
 
 
-void FakeMetaDataBackEnd::storeMetaData(const KUrl&, const MetaData&) {
+FakeMetaDataBackEnd::FakeMetaDataBackEnd(QObject* parent, InitializeMode mode)
+: AbstractMetaDataBackEnd(parent)
+, mInitializeMode(mode) {}
+
+
+void FakeMetaDataBackEnd::storeMetaData(const KUrl& url, const MetaData& metaData) {
+	mMetaDataForUrl[url] = metaData;
 }
 
 
 void FakeMetaDataBackEnd::retrieveMetaData(const KUrl& url) {
-	QString urlString = url.url();
-	MetaData metaData;
-	metaData.mRating = int(urlString.length()) % 6;
-	metaData.mDescription = url.fileName();
-	QStringList lst = url.path().split("/");
-	Q_FOREACH(const QString& token, lst) {
-		if (!token.isEmpty()) {
-			metaData.mTags << '#' + token.toLower();
+	if (!mMetaDataForUrl.contains(url)) {
+		QString urlString = url.url();
+		MetaData metaData;
+		if (mInitializeMode == InitializeRandom) {
+			metaData.mRating = int(urlString.length()) % 6;
+			metaData.mDescription = url.fileName();
+			QStringList lst = url.path().split("/");
+			Q_FOREACH(const QString& token, lst) {
+				if (!token.isEmpty()) {
+					metaData.mTags << '#' + token.toLower();
+				}
+			}
+		} else {
+			metaData.mRating = 0;
 		}
+		mMetaDataForUrl[url] = metaData;
 	}
-	emit metaDataRetrieved(url, metaData);
+	emit metaDataRetrieved(url, mMetaDataForUrl.value(url));
 }
 
 
--- trunk/KDE/kdegraphics/gwenview/lib/metadata/fakemetadatabackend.h #802908:802909
@@ -21,9 +21,13 @@
 #ifndef FAKEMETADATABACKEND_H
 #define FAKEMETADATABACKEND_H
 
+#include <lib/gwenviewlib_export.h>
+
 // Qt
+#include <QHash>
 
 // KDE
+#include <kurl.h>
 
 // Local
 #include "abstractmetadatabackend.h"
@@ -35,10 +39,11 @@
  * A fake metadata backend, useful to test the ui layer.
  * It provides fake rating values based on the image url.
  */
-class FakeMetaDataBackEnd : public AbstractMetaDataBackEnd {
+class GWENVIEWLIB_EXPORT FakeMetaDataBackEnd : public AbstractMetaDataBackEnd {
 	Q_OBJECT
 public:
-	FakeMetaDataBackEnd(QObject* parent) : AbstractMetaDataBackEnd(parent) {}
+	enum InitializeMode { InitializeEmpty, InitializeRandom };
+	FakeMetaDataBackEnd(QObject* parent, InitializeMode initializeMode);
 
 	virtual void storeMetaData(const KUrl&, const MetaData&);
 
@@ -47,6 +52,10 @@
 	virtual QString labelForTag(const MetaDataTag&) const;
 
 	virtual MetaDataTag tagForLabel(const QString&) const;
+
+private:
+	QHash<KUrl, MetaData> mMetaDataForUrl;
+	InitializeMode mInitializeMode;
 };
 
 
--- trunk/KDE/kdegraphics/gwenview/lib/metadata/metadatadirmodel.cpp #802908:802909
@@ -58,7 +58,7 @@
 : KDirModel(parent)
 , d(new MetaDataDirModelPrivate) {
 #ifdef GWENVIEW_METADATA_BACKEND_FAKE
-	d->mBackEnd = new FakeMetaDataBackEnd(this);
+	d->mBackEnd = new FakeMetaDataBackEnd(this, FakeMetaDataBackEnd::InitializeRandom);
 #elif defined(GWENVIEW_METADATA_BACKEND_NEPOMUK)
 	d->mBackEnd = new NepomukMetaDataBackEnd(this);
 #endif
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic