[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [digikam/development/imagemetadatacache] digikam/views: Make TableView use more of the central cache
From: Michael Georg Hansen <mike () mghansen ! de>
Date: 2013-06-30 19:54:10
Message-ID: E1UtNhK-0001lj-FL () scm ! kde ! org
[Download RAW message or body]
Git commit 6f1c2e99c1190b92cf6812c4ae0525fd48d2a852 by Michael Georg Hansen.
Committed on 30/06/2013 at 19:50.
Pushed by mghansen into branch 'development/imagemetadatacache'.
Make TableView use more of the central cache.
M +2 -54 digikam/views/tableview_model.cpp
M +0 -2 digikam/views/tableview_model.h
http://commits.kde.org/digikam/6f1c2e99c1190b92cf6812c4ae0525fd48d2a852
diff --git a/digikam/views/tableview_model.cpp b/digikam/views/tableview_model.cpp
index ee74534..4c6079f 100644
--- a/digikam/views/tableview_model.cpp
+++ b/digikam/views/tableview_model.cpp
@@ -58,8 +58,6 @@ namespace Digikam
TableViewModel::Item::Item()
: imageId(0),
- cachedDatabaseFields(),
- databaseFields(),
parent(0),
children()
{
@@ -639,11 +637,6 @@ void TableViewModel::slotDatabaseImageChanged(const \
ImageChangeset& imageChanges continue;
}
- /// force an update of the database fields on next access
- item->databaseFields.clear();
- /// @todo Introduce/find a clear function
- item->cachedDatabaseFields = DatabaseFields::Set();
-
// remove cached info and re-insert it
if (d->cachedImageInfos.contains(item->imageId))
{
@@ -947,54 +940,9 @@ ImageInfo \
TableViewModel::infoFromItem(Digikam::TableViewModel::Item* const item
TableViewModel::DatabaseFieldsHashRaw \
TableViewModel::itemDatabaseFieldsRaw(TableViewModel::Item* const item, const \
DatabaseFields::Set requestedSet) {
- if ((item->cachedDatabaseFields & requestedSet)==0)
- {
- // fields are not buffered yet, we have to request them
-
- if (requestedSet.hasFieldsFromImageMetadata())
- {
- const DatabaseFields::ImageMetadata imageMetadataFields = requestedSet;
- const QVariantList fieldValues = \
DatabaseAccess().db()->getImageMetadata(item->imageId, \
imageMetadataFields);
-
- if (!fieldValues.isEmpty())
- {
- int fieldsIndex = 0;
- for (DatabaseFields::ImageMetadataIteratorSetOnly \
it(imageMetadataFields); !it.atEnd(); ++it)
- {
- const QVariant fieldValue = fieldValues.at(fieldsIndex);
- ++fieldsIndex;
-
- /// @todo Re-implement insert?
- item->databaseFields.insertField(*it, fieldValue);
- }
- }
- }
-
- if (requestedSet.hasFieldsFromVideoMetadata())
- {
- const DatabaseFields::VideoMetadata videoMetadataFields = requestedSet;
- const QVariantList fieldValues = \
DatabaseAccess().db()->getVideoMetadata(item->imageId, \
videoMetadataFields);
-
- if (!fieldValues.isEmpty())
- {
- int fieldsIndex = 0;
- for (DatabaseFields::VideoMetadataIteratorSetOnly \
it(videoMetadataFields); !it.atEnd(); ++it)
- {
- const QVariant fieldValue = fieldValues.at(fieldsIndex);
- ++fieldsIndex;
-
- item->databaseFields.insertField(*it, fieldValue);
- }
- }
- }
-
-
- // We assume that we found all requested tags here. If they were not found, \
we now know
- // that they do not exist. Should they be created, the cache will be \
cleared.
- item->cachedDatabaseFields.setFields(requestedSet);
- }
+ const ImageInfo itemImageInfo = infoFromItem(item);
- return item->databaseFields;
+ return itemImageInfo.getDatabaseFieldsRaw(requestedSet);
}
QVariant TableViewModel::itemDatabaseFieldRaw(TableViewModel::Item* const item, \
const DatabaseFields::Set requestedField)
diff --git a/digikam/views/tableview_model.h b/digikam/views/tableview_model.h
index 827f4a6..c698ade 100644
--- a/digikam/views/tableview_model.h
+++ b/digikam/views/tableview_model.h
@@ -71,8 +71,6 @@ public:
public:
qlonglong imageId;
- DatabaseFields::Set cachedDatabaseFields;
- DatabaseFieldsHashRaw databaseFields;
Item* parent;
QList<Item*> children;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic