- Q_UNUSED(option);
- Q_UNUSED(widget);
-
- // Draw background
- QStyleOption opt;
- opt.init(widget);
- opt.rect = rect().toRect();
- opt.state |= QStyle::State_Horizontal;
- style()->drawControl(QStyle::CE_HeaderEmptyArea, &opt, painter);
-
- if (!m_model) {
- return;
- }
-
- // Draw roles
- // TODO: This is a rough draft only
- QFontMetricsF fontMetrics(font());
- QTextOption textOption(Qt::AlignLeft | Qt::AlignVCenter);
-
- painter->setFont(font());
- painter->setPen(palette().text().color());
-
- const qreal margin = style()->pixelMetric(QStyle::PM_HeaderMargin);
- qreal x = margin;
- foreach (const QByteArray& role, m_visibleRoles) {
- const QString roleDescription = m_model->roleDescription(role);
- const qreal textWidth = fontMetrics.width(roleDescription);
- QRectF rect(x, 0, textWidth, size().height());
- painter->drawText(rect, roleDescription, textOption);
-
- x += m_visibleRolesWidths.value(role) + margin;
+ if (!m_headerWidget->automaticColumnResizing()) {
+ foreach (const QByteArray& role, m_view->visibleRoles()) {
+ const qreal width = columnWidths.value(role);
+ m_headerWidget->setColumnWidth(role, width);
+ }
+
+ m_view->applyColumnWidthsFromHeader();
+ m_view->doLayout(KItemListView::NoAnimation);