diff options
author | Giuseppe D'Angelo <dangelog@gmail.com> | 2012-02-02 17:48:31 +0000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-03 01:23:52 +0100 |
commit | 8eab9cbce2014ffc6186dd6b6fb73da85956ee86 (patch) | |
tree | 6f73c30caaa608b30f291e56b5d0e1fd3ae1af3f /src | |
parent | f0cac3f42fb661a6927a701a2c9b1e3d22e0d6fc (diff) |
Make QAbstractItemView::itemOptions properly initialize a V4 option
Since the QStyleOptionViewItem now contains the V4 fields, they
must be properly initialized when calling itemOptions.
Change-Id: I1346e6887d2d9a7eb29cc458fa4eede0b815001c
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/widgets/itemviews/qabstractitemview.cpp | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp index 98a17a5178..ff3de308e5 100644 --- a/src/widgets/itemviews/qabstractitemview.cpp +++ b/src/widgets/itemviews/qabstractitemview.cpp @@ -3608,38 +3608,37 @@ void QAbstractItemView::startDrag(Qt::DropActions supportedActions) QStyleOptionViewItem QAbstractItemView::viewOptions() const { Q_D(const QAbstractItemView); - QStyleOptionViewItem option; - option.init(this); + return d->viewOptionsV4(); +} + +QStyleOptionViewItemV4 QAbstractItemViewPrivate::viewOptionsV4() const +{ + Q_Q(const QAbstractItemView); + QStyleOptionViewItemV4 option; + option.init(q); option.state &= ~QStyle::State_MouseOver; - option.font = font(); + option.font = q->font(); #ifndef Q_WS_MAC // On mac the focus appearance follows window activation // not widget activation - if (!hasFocus()) + if (!q->hasFocus()) option.state &= ~QStyle::State_Active; #endif option.state &= ~QStyle::State_HasFocus; - if (d->iconSize.isValid()) { - option.decorationSize = d->iconSize; + if (iconSize.isValid()) { + option.decorationSize = iconSize; } else { - int pm = style()->pixelMetric(QStyle::PM_SmallIconSize, 0, this); + int pm = q->style()->pixelMetric(QStyle::PM_SmallIconSize, 0, q); option.decorationSize = QSize(pm, pm); } option.decorationPosition = QStyleOptionViewItem::Left; option.decorationAlignment = Qt::AlignCenter; option.displayAlignment = Qt::AlignLeft|Qt::AlignVCenter; - option.textElideMode = d->textElideMode; + option.textElideMode = textElideMode; option.rect = QRect(); - option.showDecorationSelected = style()->styleHint(QStyle::SH_ItemView_ShowDecorationSelected, 0, this); - return option; -} - -QStyleOptionViewItemV4 QAbstractItemViewPrivate::viewOptionsV4() const -{ - Q_Q(const QAbstractItemView); - QStyleOptionViewItemV4 option = q->viewOptions(); + option.showDecorationSelected = q->style()->styleHint(QStyle::SH_ItemView_ShowDecorationSelected, 0, q); if (wrapItemText) option.features = QStyleOptionViewItemV2::WrapText; option.locale = q->locale(); |