X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/e321a9cc3e8da6a63da8d247b2855e69119d0e9d..40cc5f665d:/src/kitemviews/kitemlistview.cpp diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp index 77114735b..543be6518 100644 --- a/src/kitemviews/kitemlistview.cpp +++ b/src/kitemviews/kitemlistview.cpp @@ -63,6 +63,8 @@ KItemListView::KItemListView(QGraphicsWidget* parent) : QGraphicsWidget(parent), m_enabledSelectionToggles(false), m_grouped(false), + m_highlightEntireRow(false), + m_alternateBackgrounds(false), m_supportsItemExpanding(false), m_editingRole(false), m_activeTransactions(0), @@ -77,7 +79,7 @@ KItemListView::KItemListView(QGraphicsWidget* parent) : m_visibleItems(), m_visibleGroups(), m_visibleCells(), - m_sizeHintResolver(nullptr), + m_scrollBarExtent(0), m_layouter(nullptr), m_animation(nullptr), m_oldScrollOffset(0), @@ -93,7 +95,8 @@ KItemListView::KItemListView(QGraphicsWidget* parent) : m_header(nullptr), m_headerWidget(nullptr), m_indicatorAnimation(nullptr), - m_dropIndicator() + m_dropIndicator(), + m_sizeHintResolver(nullptr) { setAcceptHoverEvents(true); setAcceptTouchEvents(true); @@ -601,8 +604,8 @@ void KItemListView::setHeaderVisible(bool visible) connect(m_headerWidget, &KItemListHeaderWidget::columnWidthChanged, this, &KItemListView::slotHeaderColumnWidthChanged); - connect(m_headerWidget, &KItemListHeaderWidget::leadingPaddingChanged, - this, &KItemListView::slotLeadingPaddingChanged); + connect(m_headerWidget, &KItemListHeaderWidget::sidePaddingChanged, + this, &KItemListView::slotSidePaddingChanged); connect(m_headerWidget, &KItemListHeaderWidget::columnMoved, this, &KItemListView::slotHeaderColumnMoved); connect(m_headerWidget, &KItemListHeaderWidget::sortOrderChanged, @@ -615,8 +618,8 @@ void KItemListView::setHeaderVisible(bool visible) } else if (!visible && m_headerWidget->isVisible()) { disconnect(m_headerWidget, &KItemListHeaderWidget::columnWidthChanged, this, &KItemListView::slotHeaderColumnWidthChanged); - disconnect(m_headerWidget, &KItemListHeaderWidget::leadingPaddingChanged, - this, &KItemListView::slotLeadingPaddingChanged); + disconnect(m_headerWidget, &KItemListHeaderWidget::sidePaddingChanged, + this, &KItemListView::slotSidePaddingChanged); disconnect(m_headerWidget, &KItemListHeaderWidget::columnMoved, this, &KItemListView::slotHeaderColumnMoved); disconnect(m_headerWidget, &KItemListHeaderWidget::sortOrderChanged, @@ -1532,7 +1535,7 @@ void KItemListView::slotHeaderColumnWidthChanged(const QByteArray& role, doLayout(NoAnimation); } -void KItemListView::slotLeadingPaddingChanged(qreal width) +void KItemListView::slotSidePaddingChanged(qreal width) { Q_UNUSED(width) if (m_headerWidget->automaticColumnResizing()) { @@ -1858,6 +1861,8 @@ void KItemListView::doLayout(LayoutAnimationHint hint, int changedIndex, int cha Q_ASSERT(widget->index() == i); widget->setVisible(true); + bool animateIconResizing = animate; + if (widget->size() != itemBounds.size()) { // Resize the widget for the item to the changed size. if (animate) { @@ -1874,11 +1879,13 @@ void KItemListView::doLayout(LayoutAnimationHint hint, int changedIndex, int cha } else { widget->resize(itemBounds.size()); } + } else { + animateIconResizing = false; } const int newIconSize = widget->styleOption().iconSize; if (widget->iconSize() != newIconSize) { - if (animate) { + if (animateIconResizing) { m_animation->start(widget, KItemListViewAnimation::IconResizeAnimation, newIconSize); } else { widget->setIconSize(newIconSize); @@ -2309,7 +2316,7 @@ QHash KItemListView::preferredColumnWidths(const KItemRangeLi void KItemListView::applyColumnWidthsFromHeader() { // Apply the new size to the layouter - const qreal requiredWidth = columnWidthsSum() + m_headerWidget->leadingPadding(); + const qreal requiredWidth = columnWidthsSum() + m_headerWidget->sidePadding(); const QSizeF dynamicItemSize(qMax(size().width(), requiredWidth), m_itemSize.height()); m_layouter->setItemSize(dynamicItemSize); @@ -2327,7 +2334,7 @@ void KItemListView::updateWidgetColumnWidths(KItemListWidget* widget) for (const QByteArray& role : qAsConst(m_visibleRoles)) { widget->setColumnWidth(role, m_headerWidget->columnWidth(role)); } - widget->setLeadingPadding(m_headerWidget->leadingPadding()); + widget->setSidePadding(m_headerWidget->sidePadding()); } void KItemListView::updatePreferredColumnWidths(const KItemRangeList& itemRanges) @@ -2405,8 +2412,8 @@ void KItemListView::applyAutomaticColumnWidths() qreal firstColumnWidth = m_headerWidget->columnWidth(firstRole); QSizeF dynamicItemSize = m_itemSize; - qreal requiredWidth = columnWidthsSum() + m_headerWidget->leadingPadding() - + m_headerWidget->leadingPadding(); // Adding the padding a second time so we have the same padding symmetrically on both sides of the view. + qreal requiredWidth = columnWidthsSum() + m_headerWidget->sidePadding() + + m_headerWidget->sidePadding(); // Adding the padding a second time so we have the same padding symmetrically on both sides of the view. // This improves UX, looks better and increases the chances of users figuring out that the padding area can be used for deselecting and dropping files. const qreal availableWidth = size().width(); if (requiredWidth < availableWidth) {