diff options
| author | Peter Penz <[email protected]> | 2011-09-19 20:34:17 +0200 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2011-09-19 20:35:30 +0200 |
| commit | 06f057d385f3924235697942ebc73aa1956515c2 (patch) | |
| tree | 0e4f447fc9f7f5e2028b0172efa1c601fb23a3c5 /src/kitemviews/kitemlistheader.cpp | |
| parent | f9bcd0a47cbdf0806c35a82856efdbe06279fb82 (diff) | |
Draw styled header for the details-view
Diffstat (limited to 'src/kitemviews/kitemlistheader.cpp')
| -rw-r--r-- | src/kitemviews/kitemlistheader.cpp | 59 |
1 files changed, 55 insertions, 4 deletions
diff --git a/src/kitemviews/kitemlistheader.cpp b/src/kitemviews/kitemlistheader.cpp index 89b28bcce..d1730a090 100644 --- a/src/kitemviews/kitemlistheader.cpp +++ b/src/kitemviews/kitemlistheader.cpp @@ -19,24 +19,75 @@ #include "kitemlistheader_p.h" +#include "kitemmodelbase.h" + +#include <QFontMetricsF> #include <QPainter> +#include <QStyleOptionHeader> KItemListHeader::KItemListHeader(QGraphicsWidget* parent) : - QGraphicsWidget(parent) + QGraphicsWidget(parent), + m_model(0) { - resize(0, 20); // TODO... + QStyleOptionHeader opt; + const QSize headerSize = style()->sizeFromContents(QStyle::CT_HeaderSection, &opt, QSize()); + resize(0, headerSize.height()); } KItemListHeader::~KItemListHeader() { } +void KItemListHeader::setModel(KItemModelBase* model) +{ + if (m_model == model) { + return; + } + + if (m_model) { + disconnect(m_model, SIGNAL(sortRoleChanged(QByteArray,QByteArray)), + this, SLOT(slotSortRoleChanged(QByteArray,QByteArray))); + disconnect(m_model, SIGNAL(sortOrderChanged(Qt::SortOrder,Qt::SortOrder)), + this, SLOT(slotSortOrderChanged(Qt::SortOrder,Qt::SortOrder))); + } + + m_model = model; + + if (m_model) { + connect(m_model, SIGNAL(sortRoleChanged(QByteArray,QByteArray)), + this, SLOT(slotSortRoleChanged(QByteArray,QByteArray))); + connect(m_model, SIGNAL(sortOrderChanged(Qt::SortOrder,Qt::SortOrder)), + this, SLOT(slotSortOrderChanged(Qt::SortOrder,Qt::SortOrder))); + } +} + +KItemModelBase* KItemListHeader::model() const +{ + return m_model; +} + void KItemListHeader::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { Q_UNUSED(option); Q_UNUSED(widget); - painter->setPen(Qt::red); - painter->drawRect(rect()); + + QStyleOption opt; + opt.init(widget); + opt.rect = rect().toRect(); + opt.state |= QStyle::State_Horizontal; + style()->drawControl(QStyle::CE_HeaderEmptyArea, &opt, painter); +} + +void KItemListHeader::slotSortRoleChanged(const QByteArray& current, const QByteArray& previous) +{ + Q_UNUSED(current); + Q_UNUSED(previous); +} + +void KItemListHeader::slotSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous) +{ + Q_UNUSED(current); + Q_UNUSED(previous); } #include "kitemlistheader_p.moc" |
