Kicker/RecentDocuments display place's icon when resource matches one

Reviewers: #plasma, ngraham, hein

Reviewed By: #plasma, ngraham, hein

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D26580
wilder-5.18
Méven Car 6 years ago
parent 3328f6a2f5
commit b51fb9dc52
  1. 24
      applets/kicker/plugin/recentusagemodel.cpp
  2. 5
      applets/kicker/plugin/recentusagemodel.h

@ -239,6 +239,19 @@ QVariant RecentUsageModel::appData(const QString &resource, int role) const
return QVariant();
}
QModelIndex RecentUsageModel::findPlaceForKFileItem(const KFileItem &fileItem) const {
const auto index = m_placesModel->closestItem(fileItem.url());
if (index.isValid()) {
const auto parentUrl = m_placesModel->url(index);
if (parentUrl == fileItem.url()) {
return index;
}
}
return QModelIndex();
}
QVariant RecentUsageModel::docData(const QString &resource, int role) const
{
QUrl url(resource);
@ -258,16 +271,17 @@ QVariant RecentUsageModel::docData(const QString &resource, int role) const
if (role == Qt::DisplayRole) {
auto fileItem = getFileItem();
const auto index = m_placesModel->closestItem(fileItem.url());
const auto index = findPlaceForKFileItem(fileItem);
if (index.isValid()) {
const auto parentUrl = m_placesModel->url(index);
if (parentUrl == fileItem.url()) {
return m_placesModel->text(index);
}
return m_placesModel->text(index);
}
return fileItem.text();
} else if (role == Qt::DecorationRole) {
auto fileItem = getFileItem();
const auto index = findPlaceForKFileItem(fileItem);
if (index.isValid()) {
return m_placesModel->icon(index);
}
return QIcon::fromTheme(fileItem.iconName(), QIcon::fromTheme(QStringLiteral("unknown")));
} else if (role == Kicker::GroupRole) {
return i18n("Documents");

@ -26,6 +26,9 @@
#include <QSortFilterProxyModel>
#include <KFilePlacesModel>
class QModelIndex;
class KFileItem;
class GroupSortProxy : public QSortFilterProxyModel
{
Q_OBJECT
@ -105,6 +108,8 @@ class RecentUsageModel : public ForwardingModel, public QQmlParserStatus
QString forgetAllActionName() const;
QModelIndex findPlaceForKFileItem(const KFileItem &fileItem) const;
IncludeUsage m_usage;
QPointer<QAbstractItemModel> m_activitiesModel;

Loading…
Cancel
Save