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