KItemListView: Fix inconsistencies in requiredWidth calculation

Commits d3839617 and 3bf471e0 introduced a few changes to requiredWidth calculation.
This commit makes the calculation of requiredWidth consistent across KItemListView.
This commit is contained in:
Amol Godbole 2023-09-03 12:15:31 -05:00
parent 6820273db0
commit 385146a1e8

View file

@ -361,7 +361,7 @@ void KItemListView::setGeometry(const QRectF &rect)
if (m_headerWidget->automaticColumnResizing()) { if (m_headerWidget->automaticColumnResizing()) {
applyAutomaticColumnWidths(); applyAutomaticColumnWidths();
} else { } else {
const qreal requiredWidth = columnWidthsSum(); const qreal requiredWidth = columnWidthsSum() + 2 * m_headerWidget->sidePadding();
const QSizeF dynamicItemSize(qMax(newSize.width(), requiredWidth), m_itemSize.height()); const QSizeF dynamicItemSize(qMax(newSize.width(), requiredWidth), m_itemSize.height());
m_layouter->setItemSize(dynamicItemSize); m_layouter->setItemSize(dynamicItemSize);
} }
@ -2280,7 +2280,7 @@ QHash<QByteArray, qreal> KItemListView::preferredColumnWidths(const KItemRangeLi
void KItemListView::applyColumnWidthsFromHeader() void KItemListView::applyColumnWidthsFromHeader()
{ {
// Apply the new size to the layouter // Apply the new size to the layouter
const qreal requiredWidth = columnWidthsSum() + m_headerWidget->sidePadding(); const qreal requiredWidth = columnWidthsSum() + 2 * m_headerWidget->sidePadding();
const QSizeF dynamicItemSize(qMax(size().width(), requiredWidth), m_itemSize.height()); const QSizeF dynamicItemSize(qMax(size().width(), requiredWidth), m_itemSize.height());
m_layouter->setItemSize(dynamicItemSize); m_layouter->setItemSize(dynamicItemSize);
@ -2375,9 +2375,9 @@ void KItemListView::applyAutomaticColumnWidths()
qreal firstColumnWidth = m_headerWidget->columnWidth(firstRole); qreal firstColumnWidth = m_headerWidget->columnWidth(firstRole);
QSizeF dynamicItemSize = m_itemSize; QSizeF dynamicItemSize = m_itemSize;
qreal requiredWidth = columnWidthsSum() + m_headerWidget->sidePadding() qreal requiredWidth = columnWidthsSum() + 2 * m_headerWidget->sidePadding(); // Adding the padding a second time so we have the same padding
+ m_headerWidget->sidePadding(); // Adding the padding a second time so we have the same padding symmetrically on both sides of the view. // symmetrically on both sides of the view. This improves UX, looks better and increases the chances of users figuring out that the padding
// 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. // area can be used for deselecting and dropping files.
const qreal availableWidth = size().width(); const qreal availableWidth = size().width();
if (requiredWidth < availableWidth) { if (requiredWidth < availableWidth) {
// Stretch the first column to use the whole remaining width // Stretch the first column to use the whole remaining width