]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kitemlistwidget.cpp
Don't include `iconOverlays` in rolesData if it is empty
[dolphin.git] / src / kitemviews / kitemlistwidget.cpp
index 79ffee2102c8d89134da1e4fdf89a1cd6022cc77..ae721c7e41d3f0664ff898888fc74192bb3f4211 100644 (file)
@@ -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);
 }
@@ -181,14 +182,14 @@ qreal KItemListWidget::columnWidth(const QByteArray& role) const
     return m_columnWidths.value(role);
 }
 
-qreal KItemListWidget::leadingPadding() const {
-    return m_leadingPadding;
+qreal KItemListWidget::sidePadding() const {
+    return m_sidePadding;
 }
 
-void KItemListWidget::setLeadingPadding(qreal width) {
-    if (m_leadingPadding != width){
-        m_leadingPadding = width;
-        leadingPaddingChanged(width);
+void KItemListWidget::setSidePadding(qreal width) {
+    if (m_sidePadding != width){
+        m_sidePadding = width;
+        sidePaddingChanged(width);
         update();
     }
 }
@@ -332,6 +333,17 @@ void KItemListWidget::setEnabledSelectionToggle(bool enable)
 {
     if (m_enabledSelectionToggle != enable) {
         m_enabledSelectionToggle = enable;
+
+        // We want the change to take effect immediately.
+        if (m_enabledSelectionToggle) {
+            if (m_hovered) {
+                initializeSelectionToggle();
+            }
+        } else if (m_selectionToggle) {
+            m_selectionToggle->deleteLater();
+            m_selectionToggle = nullptr;
+        }
+
         update();
     }
 }
@@ -368,6 +380,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)) {
@@ -443,7 +469,7 @@ void KItemListWidget::columnWidthChanged(const QByteArray& role,
     Q_UNUSED(previous)
 }
 
-void KItemListWidget::leadingPaddingChanged(qreal width)
+void KItemListWidget::sidePaddingChanged(qreal width)
 {
     Q_UNUSED(width)
 }
@@ -451,8 +477,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 +517,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);