2 * SPDX-FileCopyrightText: 2012 Peter Penz <peter.penz19@gmail.com>
4 * SPDX-License-Identifier: GPL-2.0-or-later
7 #include "kitemlistheader.h"
8 #include "kitemlistview.h"
9 #include "private/kitemlistheaderwidget.h"
11 KItemListHeader::~KItemListHeader()
15 void KItemListHeader::setAutomaticColumnResizing(bool automatic
)
17 if (m_headerWidget
->automaticColumnResizing() != automatic
) {
18 m_headerWidget
->setAutomaticColumnResizing(automatic
);
20 m_view
->applyAutomaticColumnWidths();
21 m_view
->doLayout(KItemListView::NoAnimation
);
26 bool KItemListHeader::automaticColumnResizing() const
28 return m_headerWidget
->automaticColumnResizing();
31 void KItemListHeader::setColumnWidth(const QByteArray
&role
, qreal width
)
33 if (!m_headerWidget
->automaticColumnResizing()) {
34 m_headerWidget
->setColumnWidth(role
, width
);
35 m_view
->applyColumnWidthsFromHeader();
36 m_view
->doLayout(KItemListView::NoAnimation
);
40 qreal
KItemListHeader::columnWidth(const QByteArray
&role
) const
42 return m_headerWidget
->columnWidth(role
);
45 void KItemListHeader::setColumnWidths(const QHash
<QByteArray
, qreal
> &columnWidths
)
47 if (!m_headerWidget
->automaticColumnResizing()) {
48 const auto visibleRoles
= m_view
->visibleRoles();
49 for (const QByteArray
&role
: visibleRoles
) {
50 const qreal width
= columnWidths
.value(role
);
51 m_headerWidget
->setColumnWidth(role
, width
);
54 m_view
->applyColumnWidthsFromHeader();
55 m_view
->doLayout(KItemListView::NoAnimation
);
59 qreal
KItemListHeader::preferredColumnWidth(const QByteArray
&role
) const
61 return m_headerWidget
->preferredColumnWidth(role
);
64 void KItemListHeader::setSidePadding(qreal leftPaddingWidth
, qreal rightPaddingWidth
)
66 if (m_headerWidget
->leftPadding() != leftPaddingWidth
|| m_headerWidget
->rightPadding() != rightPaddingWidth
) {
67 m_headerWidget
->setSidePadding(leftPaddingWidth
, rightPaddingWidth
);
68 if (m_headerWidget
->automaticColumnResizing()) {
69 m_view
->applyAutomaticColumnWidths();
71 m_view
->doLayout(KItemListView::NoAnimation
);
75 qreal
KItemListHeader::leftPadding() const
77 return m_headerWidget
->leftPadding();
80 qreal
KItemListHeader::rightPadding() const
82 return m_headerWidget
->rightPadding();
85 KItemListHeader::KItemListHeader(KItemListView
*listView
)
89 m_headerWidget
= m_view
->m_headerWidget
;
90 Q_ASSERT(m_headerWidget
);
92 connect(m_headerWidget
, &KItemListHeaderWidget::columnWidthChanged
, this, &KItemListHeader::columnWidthChanged
);
93 connect(m_headerWidget
, &KItemListHeaderWidget::columnWidthChangeFinished
, this, &KItemListHeader::columnWidthChangeFinished
);
94 connect(m_headerWidget
, &KItemListHeaderWidget::sidePaddingChanged
, this, &KItemListHeader::sidePaddingChanged
);
97 #include "moc_kitemlistheader.cpp"