davidedmundson added inline comments.

INLINE COMMENTS

> iconitem.cpp:325
> +    const QSize &paintedSize = 
> m_iconPixmap.size().scaled(actualContainerSize, Qt::KeepAspectRatio);
> +    return QSize(Units::roundToIconSize(paintedSize.width()), 
> Units::roundToIconSize(paintedSize.height()));
>  }

This makes no sense.
You can't round it to icon sizes *after* scaling, it means the shorter size is 
always just wrong.

If we do merge this patch, you want:

m_iconPixmap.size().scaled(QSize(Units.roundtoIconSize(actualContainerSize.width),
 Units.roundToIconSize(actualContainerSize.height)

> iconitem.cpp:377
>          if (m_sizeChanged) {
> -            const int iconSize = 
> Units::roundToIconSize(qMin(boundingRect().size().width(), 
> boundingRect().size().height()));
> -            const QRect destRect(QPointF(boundingRect().center() - 
> QPointF(iconSize/2, iconSize/2)).toPoint(),
> -                                 QSize(iconSize, iconSize));
> -
> +            const QSize &newSize = paintedSize();
> +            const QRect destRect(QPointF(boundingRect().center() - 
> QPointF(newSize.width(), newSize.height()) / 2).toPoint(), newSize);

You're using references a lot in a few patches that don't make any sense.

paintedSize returns a new QSize object; you're keeping a reference to a value 
that would just be immediately discarded. This doesn't result in an 
optimisation but instead doing something that would crash if it wasn't for a 
magic C++ feature where it lengthens the lifespan of the object.

REPOSITORY
  R242 Plasma Frameworks

REVISION DETAIL
  https://phabricator.kde.org/D3892

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: broulik, #plasma, hein
Cc: davidedmundson, plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, 
abetts, sebas

Reply via email to