[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