QWindowsVistaStyle: Draw PE_PanelItemViewItem for non-item view widgets.

Task-number: QTBUG-43157
Change-Id: I2a5f721cadc0dfffbb81902ef1d06ba34a729300
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
bb10
Friedemann Kleint 2014-12-08 14:43:08 +01:00
parent 6c8c72a9ef
commit 936b671332
1 changed files with 10 additions and 9 deletions

View File

@ -652,15 +652,18 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt
case PE_PanelItemViewItem:
{
const QStyleOptionViewItem *vopt;
const QAbstractItemView *view = qobject_cast<const QAbstractItemView *>(widget);
bool newStyle = true;
QAbstractItemView::SelectionBehavior selectionBehavior = QAbstractItemView::SelectRows;
QAbstractItemView::SelectionMode selectionMode = QAbstractItemView::NoSelection;
if (const QAbstractItemView *view = qobject_cast<const QAbstractItemView *>(widget)) {
newStyle = !qobject_cast<const QTableView*>(view);
selectionBehavior = view->selectionBehavior();
selectionMode = view->selectionMode();
}
if (qobject_cast<const QTableView*>(widget))
newStyle = false;
if (newStyle && view && (vopt = qstyleoption_cast<const QStyleOptionViewItem *>(option))) {
if (newStyle && (vopt = qstyleoption_cast<const QStyleOptionViewItem *>(option))) {
bool selected = vopt->state & QStyle::State_Selected;
bool hover = vopt->state & QStyle::State_MouseOver;
const bool hover = selectionMode != QAbstractItemView::NoSelection && (vopt->state & QStyle::State_MouseOver);
bool active = vopt->state & QStyle::State_Active;
if (vopt->features & QStyleOptionViewItem::Alternate)
@ -679,10 +682,8 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt
if (vopt->showDecorationSelected)
sectionSize = vopt->rect.size();
if (view->selectionBehavior() == QAbstractItemView::SelectRows)
if (selectionBehavior == QAbstractItemView::SelectRows)
sectionSize.setWidth(vopt->rect.width());
if (view->selectionMode() == QAbstractItemView::NoSelection)
hover = false;
QPixmap pixmap;
if (vopt->backgroundBrush.style() != Qt::NoBrush) {