diff options
author | Olivier Goffart <ogoffart@trolltech.com> | 2009-10-13 08:08:27 (GMT) |
---|---|---|
committer | Olivier Goffart <ogoffart@trolltech.com> | 2009-10-13 08:29:10 (GMT) |
commit | 0baa15e68c7b2e009c1f81f81148939725c216c8 (patch) | |
tree | 2d970998cb37e09012911c785e26e5cb39f93166 /tests/auto | |
parent | 0d231c32cc7670d356d486b13648cb5bd471ffef (diff) | |
download | Qt-0baa15e68c7b2e009c1f81f81148939725c216c8.zip Qt-0baa15e68c7b2e009c1f81f81148939725c216c8.tar.gz Qt-0baa15e68c7b2e009c1f81f81148939725c216c8.tar.bz2 |
Fix regression while updating items in itemview.
geometry() is in parent coordinate. We want the coordinate in viewport
coordinate.
There is an offset (the header geometry) between the two.
So the first item was not refreshed.
(Regression because of e5b32fbe0efc8 and a54c18e27bbb)
Reviewed-by: Gabriel
Reviewed-by: Alexis
Task-number: QTBUG-4849
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/qtreewidget/tst_qtreewidget.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/auto/qtreewidget/tst_qtreewidget.cpp b/tests/auto/qtreewidget/tst_qtreewidget.cpp index d4fd1e3..3fcbdd6 100644 --- a/tests/auto/qtreewidget/tst_qtreewidget.cpp +++ b/tests/auto/qtreewidget/tst_qtreewidget.cpp @@ -49,6 +49,9 @@ #include <qheaderview.h> #include <qlineedit.h> #include <QScrollBar> +#include <QStyledItemDelegate> + +#include "../../shared/util.h" //TESTED_CLASS= @@ -160,6 +163,7 @@ private slots: void task217309(); void setCurrentItemExpandsParent(); void task239150_editorWidth(); + void setTextUpdate(); public slots: void itemSelectionChanged(); @@ -3023,6 +3027,41 @@ void tst_QTreeWidget::task239150_editorWidth() +void tst_QTreeWidget::setTextUpdate() +{ + QTreeWidget treeWidget; + treeWidget.setColumnCount(2); + + class MyItemDelegate : public QStyledItemDelegate + { + public: + MyItemDelegate() : numPaints(0) { } + void paint(QPainter *painter, + const QStyleOptionViewItem &option, const QModelIndex &index) const + { + numPaints++; + QStyledItemDelegate::paint(painter, option, index); + } + + mutable int numPaints; + } delegate; + + treeWidget.setItemDelegate(&delegate); + treeWidget.show(); + QStringList strList; + strList << "variable1" << "0"; + QTreeWidgetItem *item = new QTreeWidgetItem(strList); + treeWidget.insertTopLevelItem(0, item); + QTest::qWait(50); + QTRY_VERIFY(delegate.numPaints > 0); + delegate.numPaints = 0; + + item->setText(1, "42"); + QApplication::processEvents(); + QTRY_VERIFY(delegate.numPaints > 0); +} + + QTEST_MAIN(tst_QTreeWidget) #include "tst_qtreewidget.moc" |