2011-09-19 14:38:07 +00:00
|
|
|
/***************************************************************************
|
2012-03-23 21:26:17 +00:00
|
|
|
* Copyright (C) 2012 by Peter Penz <peter.penz19@gmail.com> *
|
2011-09-19 14:38:07 +00:00
|
|
|
* *
|
|
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
|
|
* it under the terms of the GNU General Public License as published by *
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
|
|
* (at your option) any later version. *
|
|
|
|
* *
|
|
|
|
* This program is distributed in the hope that it will be useful, *
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
|
|
* GNU General Public License for more details. *
|
|
|
|
* *
|
|
|
|
* You should have received a copy of the GNU General Public License *
|
|
|
|
* along with this program; if not, write to the *
|
|
|
|
* Free Software Foundation, Inc., *
|
|
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
|
|
|
|
***************************************************************************/
|
|
|
|
|
2012-03-23 21:26:17 +00:00
|
|
|
#include "kitemlistheader.h"
|
|
|
|
#include "kitemlistview.h"
|
2011-09-19 14:38:07 +00:00
|
|
|
|
2012-04-11 14:06:18 +00:00
|
|
|
#include "private/kitemlistheaderwidget.h"
|
|
|
|
|
2011-09-19 14:38:07 +00:00
|
|
|
KItemListHeader::~KItemListHeader()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2012-03-23 21:26:17 +00:00
|
|
|
void KItemListHeader::setAutomaticColumnResizing(bool automatic)
|
2011-09-21 21:40:51 +00:00
|
|
|
{
|
2012-03-23 21:26:17 +00:00
|
|
|
if (m_headerWidget->automaticColumnResizing() != automatic) {
|
|
|
|
m_headerWidget->setAutomaticColumnResizing(automatic);
|
|
|
|
if (automatic) {
|
2012-03-25 20:56:13 +00:00
|
|
|
m_view->applyAutomaticColumnWidths();
|
|
|
|
m_view->doLayout(KItemListView::NoAnimation);
|
2012-03-07 21:12:07 +00:00
|
|
|
}
|
2011-09-21 21:40:51 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-03-23 21:26:17 +00:00
|
|
|
bool KItemListHeader::automaticColumnResizing() const
|
2011-09-21 21:40:51 +00:00
|
|
|
{
|
2012-03-23 21:26:17 +00:00
|
|
|
return m_headerWidget->automaticColumnResizing();
|
2011-09-21 21:40:51 +00:00
|
|
|
}
|
|
|
|
|
2012-03-23 21:26:17 +00:00
|
|
|
void KItemListHeader::setColumnWidth(const QByteArray& role, qreal width)
|
2011-09-21 21:40:51 +00:00
|
|
|
{
|
2012-03-23 21:26:17 +00:00
|
|
|
if (!m_headerWidget->automaticColumnResizing()) {
|
|
|
|
m_headerWidget->setColumnWidth(role, width);
|
|
|
|
m_view->applyColumnWidthsFromHeader();
|
2012-03-25 20:56:13 +00:00
|
|
|
m_view->doLayout(KItemListView::NoAnimation);
|
2011-09-21 21:40:51 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-03-23 21:26:17 +00:00
|
|
|
qreal KItemListHeader::columnWidth(const QByteArray& role) const
|
2012-03-07 21:12:07 +00:00
|
|
|
{
|
2012-03-23 21:26:17 +00:00
|
|
|
return m_headerWidget->columnWidth(role);
|
2012-03-07 21:12:07 +00:00
|
|
|
}
|
|
|
|
|
2012-03-23 21:26:17 +00:00
|
|
|
void KItemListHeader::setColumnWidths(const QHash<QByteArray, qreal>& columnWidths)
|
2012-03-07 21:12:07 +00:00
|
|
|
{
|
2012-03-23 21:26:17 +00:00
|
|
|
if (!m_headerWidget->automaticColumnResizing()) {
|
|
|
|
foreach (const QByteArray& role, m_view->visibleRoles()) {
|
|
|
|
const qreal width = columnWidths.value(role);
|
|
|
|
m_headerWidget->setColumnWidth(role, width);
|
2012-03-07 21:12:07 +00:00
|
|
|
}
|
|
|
|
|
2012-03-23 21:26:17 +00:00
|
|
|
m_view->applyColumnWidthsFromHeader();
|
2012-03-25 20:56:13 +00:00
|
|
|
m_view->doLayout(KItemListView::NoAnimation);
|
2012-03-07 21:12:07 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-03-24 22:46:44 +00:00
|
|
|
qreal KItemListHeader::preferredColumnWidth(const QByteArray& role) const
|
|
|
|
{
|
|
|
|
return m_headerWidget->preferredColumnWidth(role);
|
|
|
|
}
|
|
|
|
|
2012-03-23 21:26:17 +00:00
|
|
|
KItemListHeader::KItemListHeader(KItemListView* listView) :
|
|
|
|
QObject(listView->parent()),
|
|
|
|
m_view(listView)
|
2012-03-07 21:12:07 +00:00
|
|
|
{
|
2012-03-23 21:26:17 +00:00
|
|
|
m_headerWidget = m_view->m_headerWidget;
|
|
|
|
Q_ASSERT(m_headerWidget);
|
2012-03-07 21:12:07 +00:00
|
|
|
|
2012-03-23 21:26:17 +00:00
|
|
|
connect(m_headerWidget, SIGNAL(columnWidthChanged(QByteArray,qreal,qreal)),
|
|
|
|
this, SIGNAL(columnWidthChanged(QByteArray,qreal,qreal)));
|
2012-03-07 21:12:07 +00:00
|
|
|
}
|
|
|
|
|
2012-03-23 21:26:17 +00:00
|
|
|
#include "kitemlistheader.moc"
|