summaryrefslogtreecommitdiffstats
path: root/src/widgets/styles/qwindowsvistastyle.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2014-12-08 14:43:08 +0100
committerFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2015-01-10 15:08:13 +0100
commit936b671332d4742642f044e6ce61d2f46218155c (patch)
tree465c2f2a3807dafbaf41dd6222692d465f79ff3f /src/widgets/styles/qwindowsvistastyle.cpp
parent6c8c72a9efc365383ed81b643bd7f5d5ea6923aa (diff)
QWindowsVistaStyle: Draw PE_PanelItemViewItem for non-item view widgets.
Task-number: QTBUG-43157 Change-Id: I2a5f721cadc0dfffbb81902ef1d06ba34a729300 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/widgets/styles/qwindowsvistastyle.cpp')
-rw-r--r--src/widgets/styles/qwindowsvistastyle.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/widgets/styles/qwindowsvistastyle.cpp b/src/widgets/styles/qwindowsvistastyle.cpp
index 57ad1fe02b..c793e0c588 100644
--- a/src/widgets/styles/qwindowsvistastyle.cpp
+++ b/src/widgets/styles/qwindowsvistastyle.cpp
@@ -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) {