Honor KFileItem isHidden() in view

Instead of just assuming hidden files always start with a "."
The items were already filtered out but when showing hidden files they weren't painted at reduced opacity.

Differential Revision: https://phabricator.kde.org/D4978
This commit is contained in:
Kai Uwe Broulik 2017-03-08 14:38:46 +01:00
parent 58c5eae195
commit 6dcbb8127c
4 changed files with 10 additions and 2 deletions

View file

@ -396,6 +396,7 @@ void KFileItemListView::applyRolesToModel()
roles.insert("text");
roles.insert("isDir");
roles.insert("isLink");
roles.insert("isHidden");
if (supportsItemExpanding()) {
roles.insert("isExpanded");
roles.insert("isExpandable");

View file

@ -120,7 +120,7 @@ bool KFileItemListWidget::isRoleRightAligned(const QByteArray& role) const
bool KFileItemListWidget::isHidden() const
{
return data().value("text").toString().startsWith(QLatin1Char('.'));
return data().value("isHidden").toBool();
}
QFont KFileItemListWidget::customizedFont(const QFont& baseFont) const

View file

@ -92,6 +92,7 @@ KFileItemModel::KFileItemModel(QObject* parent) :
m_roles.insert("text");
m_roles.insert("isDir");
m_roles.insert("isLink");
m_roles.insert("isHidden");
// For slow KIO-slaves like used for searching it makes sense to show results periodically even
// before the completed() or canceled() signal has been emitted.
@ -1472,6 +1473,7 @@ KFileItemModel::RoleType KFileItemModel::typeForRole(const QByteArray& role) con
// with KFileItemModel::roleForType() in case if a change is done).
roles.insert("isDir", IsDirRole);
roles.insert("isLink", IsLinkRole);
roles.insert("isHidden", IsHiddenRole);
roles.insert("isExpanded", IsExpandedRole);
roles.insert("isExpandable", IsExpandableRole);
roles.insert("expandedParentsCount", ExpandedParentsCountRole);
@ -1498,6 +1500,7 @@ QByteArray KFileItemModel::roleForType(RoleType roleType) const
// with KFileItemModel::typeForRole() in case if a change is done).
roles.insert(IsDirRole, "isDir");
roles.insert(IsLinkRole, "isLink");
roles.insert(IsHiddenRole, "isHidden");
roles.insert(IsExpandedRole, "isExpanded");
roles.insert(IsExpandableRole, "isExpandable");
roles.insert(ExpandedParentsCountRole, "expandedParentsCount");
@ -1525,6 +1528,10 @@ QHash<QByteArray, QVariant> KFileItemModel::retrieveData(const KFileItem& item,
data.insert(sharedValue("isLink"), true);
}
if (m_requestRole[IsHiddenRole] && item.isHidden()) {
data.insert(sharedValue("isHidden"), true);
}
if (m_requestRole[NameRole]) {
data.insert(sharedValue("text"), item.text());
}

View file

@ -287,7 +287,7 @@ private:
WordCountRole, TitleRole, LineCountRole, ArtistRole, AlbumRole, DurationRole, TrackRole,
OriginUrlRole,
// Non-visible roles:
IsDirRole, IsLinkRole, IsExpandedRole, IsExpandableRole, ExpandedParentsCountRole,
IsDirRole, IsLinkRole, IsHiddenRole, IsExpandedRole, IsExpandableRole, ExpandedParentsCountRole,
// Mandatory last entry:
RolesCount
};