┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews/kfileitemmodel.cpp')
-rw-r--r--src/kitemviews/kfileitemmodel.cpp58
1 files changed, 15 insertions, 43 deletions
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp
index c8bac0b9d..1824fa8e8 100644
--- a/src/kitemviews/kfileitemmodel.cpp
+++ b/src/kitemviews/kfileitemmodel.cpp
@@ -15,7 +15,6 @@
#include "views/draganddrophelper.h"
#include <KDirLister>
-#include <KFileMetaData/UserMetaData>
#include <KIO/Job>
#include <KIO/ListJob>
#include <KLocalizedString>
@@ -750,41 +749,15 @@ void KFileItemModel::expandParentDirectories(const QUrl &url)
m_urlsToExpand.insert(urlToExpand);
}
- auto expandUrlAfterInserted = [this](const QUrl &url) {
- // need to wait for the item to be added to the model
- QMetaObject::Connection *connection = new QMetaObject::Connection;
- *connection = connect(this, &KFileItemModel::itemsInserted, this, [this, url, connection](const KItemRangeList &ranges) {
- int idx = -1;
- for (const KItemRange &it : ranges) {
- for (int i = 0; i < it.count; ++i) {
- if (fileItem(it.index + i).url() == url) {
- idx = it.index + i;
- break;
- }
- }
- if (idx != -1) {
- break;
- }
- }
-
- if (idx != -1) {
- setExpanded(idx, true);
- disconnect(*connection);
- delete connection;
- }
- });
- };
-
// KDirLister::open() must called at least once to trigger an initial
// loading. The pending URLs that must be restored are handled
// in slotCompleted().
- for (const auto &url : std::as_const(m_urlsToExpand)) {
- const int idx = index(url);
- if (idx >= 0) {
+ QSetIterator<QUrl> it2(m_urlsToExpand);
+ while (it2.hasNext()) {
+ const int idx = index(it2.next());
+ if (idx >= 0 && !isExpanded(idx)) {
setExpanded(idx, true);
- } else {
- // expand to url asynchronously
- expandUrlAfterInserted(url);
+ break;
}
}
}
@@ -1839,8 +1812,8 @@ void KFileItemModel::emitItemsChangedAndTriggerResorting(const KItemRangeList &i
void KFileItemModel::resetRoles()
{
- for (bool &i : m_requestRole) {
- i = false;
+ for (int i = 0; i < RolesCount; ++i) {
+ m_requestRole[i] = false;
}
}
@@ -1921,7 +1894,14 @@ QHash<QByteArray, QVariant> KFileItemModel::retrieveData(const KFileItem &item,
}
if (m_requestRole[NameRole]) {
- data.insert(sharedValue("text"), item.text());
+ QString displayName = item.text();
+ if (ContentDisplaySettings::hideFileExtensions() && !isDir) {
+ const int dotIndex = displayName.lastIndexOf(QLatin1Char('.'));
+ if (dotIndex > 0) {
+ displayName = displayName.left(dotIndex);
+ }
+ }
+ data.insert(sharedValue("text"), displayName);
}
if (m_requestRole[ExtensionRole] && !isDir) {
@@ -2043,14 +2023,6 @@ QHash<QByteArray, QVariant> KFileItemModel::retrieveData(const KFileItem &item,
data.insert(sharedValue("type"), folderMimeType);
}
- if (m_requestRole[RatingRole] && item.isLocalFile()) {
- KFileMetaData::UserMetaData md(item.localPath());
- const int rating = md.rating();
- if (rating > 0) {
- data.insert(sharedValue("rating"), rating);
- }
- }
-
return data;
}