]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Bypass crash with Polyester-style
authorPeter Penz <peter.penz19@gmail.com>
Tue, 20 Mar 2012 20:03:38 +0000 (21:03 +0100)
committerPeter Penz <peter.penz19@gmail.com>
Tue, 20 Mar 2012 20:09:52 +0000 (21:09 +0100)
The Polyester style crashes when drawing a header where the
parent widget is 0.

BUG: 296453
FIXED-IN: 4.8.2

src/kitemviews/kitemlistheader.cpp
src/kitemviews/kitemlistheader_p.h

index bd7dfb831383f24bc667e4ed1a1bd0cb7abf6db6..dfe76bc95eb52bd7dec8b376a9d67fd96d3359a6 100644 (file)
@@ -141,7 +141,7 @@ void KItemListHeader::paint(QPainter* painter, const QStyleOptionGraphicsItem* o
     foreach (const QByteArray& role, m_visibleRoles) {
         const qreal roleWidth = m_visibleRolesWidths.value(role);
         const QRectF rect(x, 0, roleWidth, size().height());
-        paintRole(painter, role, rect, orderIndex);
+        paintRole(painter, role, rect, orderIndex, widget);
         x += roleWidth;
         ++orderIndex;
     }
@@ -339,7 +339,8 @@ void KItemListHeader::slotSortOrderChanged(Qt::SortOrder current, Qt::SortOrder
 void KItemListHeader::paintRole(QPainter* painter,
                                 const QByteArray& role,
                                 const QRectF& rect,
-                                int orderIndex) const
+                                int orderIndex,
+                                QWidget* widget) const
 {
     // The following code is based on the code from QHeaderView::paintSection().
     // Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
@@ -378,7 +379,7 @@ void KItemListHeader::paintRole(QPainter* painter,
     option.selectedPosition = QStyleOptionHeader::NotAdjacent;
     option.text = m_model->roleDescription(role);
 
-    style()->drawControl(QStyle::CE_Header, &option, painter);
+    style()->drawControl(QStyle::CE_Header, &option, painter, widget);
 }
 
 void KItemListHeader::updatePressedRoleIndex(const QPointF& pos)
index 56f80c9dd698ded14d262c3772dc76756d0bacef..364a5f1c04bc1a75e1b18b2677134c515cc9900f 100644 (file)
@@ -94,7 +94,11 @@ private slots:
     void slotSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous);
 
 private:
-    void paintRole(QPainter* painter, const QByteArray& role, const QRectF& rect, int orderIndex) const;
+    void paintRole(QPainter* painter,
+                   const QByteArray& role,
+                   const QRectF& rect,
+                   int orderIndex,
+                   QWidget* widget = 0) const;
 
     void updatePressedRoleIndex(const QPointF& pos);
     void updateHoveredRoleIndex(const QPointF& pos);