blur radius and displacement same as folderview, and when the shadow is
light it becomes an halo (displacement 0) this could even be decided by the theme? svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=827783
This commit is contained in:
parent
4c7e3d1d0b
commit
c6d8e7e8c1
@ -926,15 +926,21 @@ void Icon::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWid
|
|||||||
QRectF textBoundingRect;
|
QRectF textBoundingRect;
|
||||||
d->layoutTextItems(option, icon, &labelLayout, &infoLayout, &textBoundingRect);
|
d->layoutTextItems(option, icon, &labelLayout, &infoLayout, &textBoundingRect);
|
||||||
|
|
||||||
QImage shadow(textBoundingRect.size().toSize()+QSize(6,6), QImage::Format_ARGB32_Premultiplied);
|
QImage shadow(textBoundingRect.size().toSize()+QSize(4,4), QImage::Format_ARGB32_Premultiplied);
|
||||||
shadow.fill(Qt::transparent);
|
shadow.fill(Qt::transparent);
|
||||||
{
|
{
|
||||||
QPainter buffPainter(&shadow);
|
QPainter buffPainter(&shadow);
|
||||||
buffPainter.translate(-textBoundingRect.x(), -textBoundingRect.y());
|
buffPainter.translate(-textBoundingRect.x(), -textBoundingRect.y());
|
||||||
d->drawTextItems(&buffPainter, option, labelLayout, infoLayout);
|
d->drawTextItems(&buffPainter, option, labelLayout, infoLayout);
|
||||||
}
|
}
|
||||||
Plasma::ImageEffects::shadowBlur(shadow, 3, d->shadowColor);
|
|
||||||
painter->drawImage(textBoundingRect.topLeft()+QPoint(2,2), shadow);
|
QPoint shadowOffset = QPoint(1,1);
|
||||||
|
if (d->shadowColor.value() > 128) {
|
||||||
|
shadowOffset = QPoint(0,0);
|
||||||
|
}
|
||||||
|
|
||||||
|
Plasma::ImageEffects::shadowBlur(shadow, 2, d->shadowColor);
|
||||||
|
painter->drawImage(textBoundingRect.topLeft()+shadowOffset, shadow);
|
||||||
d->drawTextItems(painter, option, labelLayout, infoLayout);
|
d->drawTextItems(painter, option, labelLayout, infoLayout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user