diff options
author | Thierry Bastian <thierry.bastian@nokia.com> | 2010-06-29 08:19:30 (GMT) |
---|---|---|
committer | Thierry Bastian <thierry.bastian@nokia.com> | 2010-06-29 08:21:55 (GMT) |
commit | 18bb0125a246a0cfb4a1856e415624a25adb57ab (patch) | |
tree | c3cf815c0e1fd6ace8fbdbf6fe2681a75520edd4 | |
parent | 0a51846cfbaf8559526e4fbaebbde84c3658da47 (diff) | |
download | Qt-18bb0125a246a0cfb4a1856e415624a25adb57ab.zip Qt-18bb0125a246a0cfb4a1856e415624a25adb57ab.tar.gz Qt-18bb0125a246a0cfb4a1856e415624a25adb57ab.tar.bz2 |
Fixed the itemviews so that the editor is not considered opaque any more
The editor was always considered opaque and clipping was set on the
painter. This assumption can't be verified.
Task-number: QTBUG-11367
-rw-r--r-- | src/gui/itemviews/qlistview.cpp | 11 | ||||
-rw-r--r-- | src/gui/itemviews/qtableview.cpp | 9 | ||||
-rw-r--r-- | src/gui/itemviews/qtreeview.cpp | 9 |
3 files changed, 3 insertions, 26 deletions
diff --git a/src/gui/itemviews/qlistview.cpp b/src/gui/itemviews/qlistview.cpp index c20e0b1..5e70a6a 100644 --- a/src/gui/itemviews/qlistview.cpp +++ b/src/gui/itemviews/qlistview.cpp @@ -1036,16 +1036,7 @@ void QListView::paintEvent(QPaintEvent *e) previousRow = row; } - if (const QWidget *widget = d->editorForIndex(*it).editor) { - QRegion itemGeometry(option.rect); - QRegion widgetGeometry(widget->geometry()); - painter.save(); - painter.setClipRegion(itemGeometry.subtracted(widgetGeometry)); - d->delegateForIndex(*it)->paint(&painter, option, *it); - painter.restore(); - } else { - d->delegateForIndex(*it)->paint(&painter, option, *it); - } + d->delegateForIndex(*it)->paint(&painter, option, *it); } #ifndef QT_NO_DRAGANDDROP diff --git a/src/gui/itemviews/qtableview.cpp b/src/gui/itemviews/qtableview.cpp index 4492e53..e9e2e38 100644 --- a/src/gui/itemviews/qtableview.cpp +++ b/src/gui/itemviews/qtableview.cpp @@ -926,14 +926,7 @@ void QTableViewPrivate::drawCell(QPainter *painter, const QStyleOptionViewItemV4 q->style()->drawPrimitive(QStyle::PE_PanelItemViewRow, &opt, painter, q); - if (const QWidget *widget = editorForIndex(index).editor) { - painter->save(); - painter->setClipRect(widget->geometry()); - q->itemDelegate(index)->paint(painter, opt, index); - painter->restore(); - } else { - q->itemDelegate(index)->paint(painter, opt, index); - } + q->itemDelegate(index)->paint(painter, opt, index); } /*! diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp index b797776..f953a91 100644 --- a/src/gui/itemviews/qtreeview.cpp +++ b/src/gui/itemviews/qtreeview.cpp @@ -1669,14 +1669,7 @@ void QTreeView::drawRow(QPainter *painter, const QStyleOptionViewItem &option, opt.state = oldState; } - if (const QWidget *widget = d->editorForIndex(modelIndex).editor) { - painter->save(); - painter->setClipRect(widget->geometry()); - d->delegateForIndex(modelIndex)->paint(painter, opt, modelIndex); - painter->restore(); - } else { - d->delegateForIndex(modelIndex)->paint(painter, opt, modelIndex); - } + d->delegateForIndex(modelIndex)->paint(painter, opt, modelIndex); } if (currentRowHasFocus) { |