diff --git a/widgets/iconwidget.cpp b/widgets/iconwidget.cpp index 13a6f739d..c9db3cd3c 100644 --- a/widgets/iconwidget.cpp +++ b/widgets/iconwidget.cpp @@ -618,7 +618,7 @@ void IconWidgetPrivate::drawBackground(QPainter *painter, IconWidgetState state) } } -QPixmap IconWidgetPrivate::decoration(const QStyleOptionGraphicsItem *option, bool useHoverEffect) +QPixmap IconWidgetPrivate::decoration(const QStyleOptionGraphicsItem *option, bool useHoverEffect, bool usePressedEffect) { QPixmap result; @@ -643,6 +643,10 @@ QPixmap IconWidgetPrivate::decoration(const QStyleOptionGraphicsItem *option, bo result = icon.pixmap(size, mode, state); } + if (usePressedEffect) { + result = result.scaled(result.size() * 0.9, Qt::KeepAspectRatio); + } + // We disable the iconeffect here since we cannot get it into sync with // the fade animation. TODO: Enable it when animations are switched off if (!result.isNull() && useHoverEffect) { @@ -934,7 +938,7 @@ void IconWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option state = IconWidgetPrivate::HoverState; } - QPixmap icon = d->decoration(option, state != IconWidgetPrivate::NoState); + QPixmap icon = d->decoration(option, state != IconWidgetPrivate::NoState, state & IconWidgetPrivate::PressedState); const QPointF iconPos = d->iconPosition(option, icon); d->drawBackground(painter, state); diff --git a/widgets/iconwidget_p.h b/widgets/iconwidget_p.h index e4578413f..9797d0b93 100644 --- a/widgets/iconwidget_p.h +++ b/widgets/iconwidget_p.h @@ -114,7 +114,7 @@ public: void drawTextItems(QPainter *painter, const QStyleOptionGraphicsItem *option, const QTextLayout &labelLayout, const QTextLayout &infoLayout) const; - QPixmap decoration(const QStyleOptionGraphicsItem *option, bool useHoverEffect); + QPixmap decoration(const QStyleOptionGraphicsItem *option, bool useHoverEffect, bool usePressedEffect); QPointF iconPosition(const QStyleOptionGraphicsItem *option, const QPixmap &pixmap) const; QSizeF displaySizeHint(const QStyleOptionGraphicsItem *option, const qreal width) const;