diff options
Diffstat (limited to 'user/dolphin/baloo.patch')
-rw-r--r-- | user/dolphin/baloo.patch | 53 |
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 + |