[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