]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/private/kbaloorolesprovider.cpp
Merge branch 'release/21.12'
[dolphin.git] / src / kitemviews / private / kbaloorolesprovider.cpp
index 5c87de7129f9570d76fca0a8b8ac3e2faddedc49..4c231e2ff92ddf45f320c8359068057c19b526f6 100644 (file)
@@ -13,6 +13,7 @@
 
 #include <QCollator>
 #include <QDebug>
+#include <QSize>
 #include <QTime>
 
 namespace {
@@ -117,6 +118,18 @@ QHash<QByteArray, QVariant> KBalooRolesProvider::roleValues(const Baloo::File& f
         rangeBegin = rangeEnd;
     }
 
+    if (roles.contains("dimensions")) {
+        bool widthOk = false;
+        bool heightOk = false;
+
+        const int width = propMap.value(KFileMetaData::Property::Width).toInt(&widthOk);
+        const int height = propMap.value(KFileMetaData::Property::Height).toInt(&heightOk);
+
+        if (widthOk && heightOk && width >= 0 && height >= 0) {
+            values.insert("dimensions", QSize(width, height));
+        }
+    }
+
     KFileMetaData::UserMetaData::Attributes attributes;
     if (roles.contains("tags")) {
         attributes |= KFileMetaData::UserMetaData::Tags;
@@ -160,6 +173,7 @@ KBalooRolesProvider::KBalooRolesProvider()
     for (const auto& role : propertyRoleMap()) {
         m_roles.insert(role);
     }
+    m_roles.insert("dimensions");
 
     // Display roles provided by UserMetaData
     m_roles.insert(QByteArrayLiteral("tags"));