diff options
| author | Eugene Popov <[email protected]> | 2022-02-13 12:16:34 +0000 |
|---|---|---|
| committer | Felix Ernst <[email protected]> | 2022-02-13 12:16:34 +0000 |
| commit | a05343530d0f43434715888902067512309098ce (patch) | |
| tree | 18876595d04599620acc96684f314a21119b6ed0 /src/kitemviews/kitemlistwidget.cpp | |
| parent | e9bd295b3cce63048b141d1fdba844091419a973 (diff) | |
Fix zooming animation
Current implementation of the zooming animation is a bit buggy.
This MR fixes the following issues:
* in the Icon view mode, the icons sometimes "jump"
* in the Compact view mode, the labels sometimes are cut off
BUG: 449179
Diffstat (limited to 'src/kitemviews/kitemlistwidget.cpp')
| -rw-r--r-- | src/kitemviews/kitemlistwidget.cpp | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/src/kitemviews/kitemlistwidget.cpp b/src/kitemviews/kitemlistwidget.cpp index 79ffee210..f729f0239 100644 --- a/src/kitemviews/kitemlistwidget.cpp +++ b/src/kitemviews/kitemlistwidget.cpp @@ -47,7 +47,8 @@ KItemListWidget::KItemListWidget(KItemListWidgetInformant* informant, QGraphicsI m_hoverAnimation(nullptr), m_hoverSequenceIndex(0), m_selectionToggle(nullptr), - m_editedRole() + m_editedRole(), + m_iconSize(-1) { connect(&m_hoverSequenceTimer, &QTimer::timeout, this, &KItemListWidget::slotHoverSequenceTimerTimeout); } @@ -368,6 +369,20 @@ QByteArray KItemListWidget::editedRole() const return m_editedRole; } +void KItemListWidget::setIconSize(int iconSize) +{ + if (m_iconSize != iconSize) { + const int previousIconSize = m_iconSize; + m_iconSize = iconSize; + iconSizeChanged(iconSize, previousIconSize); + } +} + +int KItemListWidget::iconSize() const +{ + return m_iconSize; +} + bool KItemListWidget::contains(const QPointF& point) const { if (!QGraphicsWidget::contains(point)) { @@ -451,8 +466,12 @@ void KItemListWidget::leadingPaddingChanged(qreal width) void KItemListWidget::styleOptionChanged(const KItemListStyleOption& current, const KItemListStyleOption& previous) { - Q_UNUSED(current) Q_UNUSED(previous) + + // set the initial value of m_iconSize if not set + if (m_iconSize == -1) { + m_iconSize = current.iconSize; + } } void KItemListWidget::currentChanged(bool current) @@ -487,6 +506,12 @@ void KItemListWidget::editedRoleChanged(const QByteArray& current, const QByteAr Q_UNUSED(previous) } +void KItemListWidget::iconSizeChanged(int current, int previous) +{ + Q_UNUSED(current) + Q_UNUSED(previous) +} + void KItemListWidget::resizeEvent(QGraphicsSceneResizeEvent* event) { QGraphicsWidget::resizeEvent(event); |
