summaryrefslogtreecommitdiff
path: root/user/dolphin/baloo.patch
diff options
context:
space:
mode:
Diffstat (limited to 'user/dolphin/baloo.patch')
-rw-r--r--user/dolphin/baloo.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/user/dolphin/baloo.patch b/user/dolphin/baloo.patch
new file mode 100644
index 000000000..48efb30ed
--- /dev/null
+++ b/user/dolphin/baloo.patch
@@ -0,0 +1,53 @@
+Subject: Revert "handle maps with multiple or single entries from Baloo"
+
+This reverts commit 36b61838a27df32824c58f383453bb94b730b52c.
+
+diff --git a/src/kitemviews/private/kbaloorolesprovider.cpp b/src/kitemviews/private/kbaloorolesprovider.cpp
+index 469f079..f367154 100644
+--- a/src/kitemviews/private/kbaloorolesprovider.cpp
++++ b/src/kitemviews/private/kbaloorolesprovider.cpp
+@@ -56,34 +56,18 @@ QHash<QByteArray, QVariant> KBalooRolesProvider::roleValues(const Baloo::File& f
+ {
+ QHash<QByteArray, QVariant> values;
+
++ QMapIterator<KFileMetaData::Property::Property, QVariant> it(file.properties());
++ while (it.hasNext()) {
++ it.next();
+- using entry = std::pair<const KFileMetaData::Property::Property&, const QVariant&>;
+-
+- const auto& propMap = file.properties();
+- auto rangeBegin = propMap.constKeyValueBegin();
+-
+- while (rangeBegin != propMap.constKeyValueEnd()) {
+- auto key = (*rangeBegin).first;
+- const KFileMetaData::PropertyInfo propertyInfo(key);
+- const QByteArray role = roleForProperty(propertyInfo.name());
+-
+- auto rangeEnd = std::find_if(rangeBegin, propMap.constKeyValueEnd(),
+- [key](const entry& e) { return e.first != key; });
+
++ const KFileMetaData::PropertyInfo pi(it.key());
++ const QString property = pi.name();
++ const QByteArray role = roleForProperty(property);
+ if (role.isEmpty() || !roles.contains(role)) {
+- rangeBegin = rangeEnd;
+ continue;
+ }
+
++ values.insert(role, pi.formatAsDisplayString(it.value()));
+- auto distance = std::distance(rangeBegin, rangeEnd);
+- if (distance > 1) {
+- QVariantList list;
+- list.reserve(static_cast<int>(distance));
+- std::for_each(rangeBegin, rangeEnd, [&list](const entry& s) { list.append(s.second); });
+- values.insert(role, propertyInfo.formatAsDisplayString(list));
+- } else {
+- values.insert(role, propertyInfo.formatAsDisplayString((*rangeBegin).second));
+- }
+- rangeBegin = rangeEnd;
+ }
+
+ KFileMetaData::UserMetaData md(file.path());
+--
+cgit v1.1
+