Use IconEffect for disabled state in QIconItem

Reason for this change: a QIcon might not contain the disabled pixmaps.
Using the icon effect allows to get also the disabled state for such
icons.

REVIEW: 114334
This commit is contained in:
Martin Gräßlin 2013-12-06 16:24:41 +01:00
parent a6ee7bb8fe
commit 1d28b028b1

View File

@ -111,8 +111,12 @@ void QIconItem::paint(QPainter *painter)
QPixmap result = m_icon.pixmap(boundingRect().size().toSize()); QPixmap result = m_icon.pixmap(boundingRect().size().toSize());
result = KIconLoader::global()->iconEffect()->apply(result, KIconLoader::Desktop, KIconLoader::ActiveState); result = KIconLoader::global()->iconEffect()->apply(result, KIconLoader::Desktop, KIconLoader::ActiveState);
painter->drawPixmap(0, 0, result); painter->drawPixmap(0, 0, result);
} else if (m_state == QIconItem::DisabledState) {
QPixmap result = m_icon.pixmap(boundingRect().size().toSize());
result = KIconLoader::global()->iconEffect()->apply(result, KIconLoader::Desktop, KIconLoader::DisabledState);
painter->drawPixmap(0, 0, result);
} else { } else {
m_icon.paint(painter, boundingRect().toRect(), Qt::AlignCenter, isEnabled() ? QIcon::Normal : QIcon::Disabled); m_icon.paint(painter, boundingRect().toRect(), Qt::AlignCenter, QIcon::Normal);
} }
painter->setRenderHint(QPainter::Antialiasing, wasAntiAlias); painter->setRenderHint(QPainter::Antialiasing, wasAntiAlias);