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::setLeadingPadding(qreal width
){
65 if (m_headerWidget
->leadingPadding() != width
) {
66 m_headerWidget
->setLeadingPadding(width
);
67 if (m_headerWidget
->automaticColumnResizing()) {
68 m_view
->applyAutomaticColumnWidths();
70 m_view
->doLayout(KItemListView::NoAnimation
);
74 qreal
KItemListHeader::leadingPadding() const{
75 return m_headerWidget
->leadingPadding();
78 KItemListHeader::KItemListHeader(KItemListView
* listView
) :
82 m_headerWidget
= m_view
->m_headerWidget
;
83 Q_ASSERT(m_headerWidget
);
85 connect(m_headerWidget
, &KItemListHeaderWidget::columnWidthChanged
,
86 this, &KItemListHeader::columnWidthChanged
);
87 connect(m_headerWidget
, &KItemListHeaderWidget::columnWidthChangeFinished
,
88 this, &KItemListHeader::columnWidthChangeFinished
);
89 connect(m_headerWidget
, &KItemListHeaderWidget::leadingPaddingChanged
,
90 this, &KItemListHeader::leadingPaddingChanged
);