┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistwidget.cpp
diff options
context:
space:
mode:
authorEugene Popov <[email protected]>2022-02-13 12:16:34 +0000
committerFelix Ernst <[email protected]>2022-02-13 12:16:34 +0000
commita05343530d0f43434715888902067512309098ce (patch)
tree18876595d04599620acc96684f314a21119b6ed0 /src/kitemviews/kitemlistwidget.cpp
parente9bd295b3cce63048b141d1fdba844091419a973 (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.cpp29
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);