diff options
Diffstat (limited to 'src/kitemviews/kstandarditemlistwidget.cpp')
| -rw-r--r-- | src/kitemviews/kstandarditemlistwidget.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index 14a3db066..3f470b8cf 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -259,7 +259,7 @@ void KStandardItemListWidget::paint(QPainter* painter, const QStyleOptionGraphic } painter->setFont(itemListStyleOption.font); - painter->setPen(textColor()); + painter->setPen(m_isHidden ? m_additionalInfoTextColor : textColor()); const TextInfo* textInfo = m_textInfo.value("text"); painter->drawStaticText(textInfo->pos, textInfo->staticText); @@ -480,12 +480,15 @@ void KStandardItemListWidget::dataChanged(const QHash<QByteArray, QVariant>& cur QSet<QByteArray> dirtyRoles; if (roles.isEmpty()) { dirtyRoles = visibleRoles().toSet(); - dirtyRoles.insert("iconPixmap"); - dirtyRoles.insert("iconName"); } else { dirtyRoles = roles; } + // The icon-state might depend from other roles and hence is + // marked as dirty whenever a role has been changed + dirtyRoles.insert("iconPixmap"); + dirtyRoles.insert("iconName"); + QSetIterator<QByteArray> it(dirtyRoles); while (it.hasNext()) { const QByteArray& role = it.next(); |
