summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp')
-rw-r--r--tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp47
1 files changed, 43 insertions, 4 deletions
diff --git a/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp b/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp
index fa7f9596da..d0e6407283 100644
--- a/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp
+++ b/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp
@@ -159,6 +159,7 @@ private slots:
void taskQTBUG_34717_collapseAtBottom();
void task20345_sortChildren();
void getMimeDataWithInvalidItem();
+ void testVisualItemRect();
public slots:
void itemSelectionChanged();
@@ -332,10 +333,19 @@ void tst_QTreeWidget::addTopLevelItem()
for (int i = 0; i < 10; ++i)
tops << new TreeItem();
int count = tree.topLevelItemCount();
- tree.insertTopLevelItems(100000, tops);
- // ### fixme
+ tree.insertTopLevelItems(count, tops);
QCOMPARE(tree.topLevelItemCount(), count + 10);
}
+
+ // invalid insert
+ {
+ tops.clear();
+ for (int i = 0; i < 10; ++i)
+ tops << new TreeItem();
+ int count = tree.topLevelItemCount();
+ tree.insertTopLevelItems(100000, tops); // should be a no-op
+ QCOMPARE(tree.topLevelItemCount(), count);
+ }
}
void tst_QTreeWidget::currentItem_data()
@@ -3269,7 +3279,7 @@ void tst_QTreeWidget::task239150_editorWidth()
QVERIFY(tree.itemWidget(&item, 0) == 0);
tree.editItem(&item);
QVERIFY(tree.itemWidget(&item, 0));
- QVERIFY(tree.itemWidget(&item, 0)->width() >= minWidth + tree.fontMetrics().width(item.text(0)));
+ QVERIFY(tree.itemWidget(&item, 0)->width() >= minWidth + tree.fontMetrics().horizontalAdvance(item.text(0)));
}
}
@@ -3449,9 +3459,38 @@ void tst_QTreeWidget::getMimeDataWithInvalidItem()
{
CustomTreeWidget w;
QTest::ignoreMessage(QtWarningMsg, "QTreeWidget::mimeData: Null-item passed");
- QMimeData *md = w.mimeData(QList<QTreeWidgetItem*>() << Q_NULLPTR);
+ QMimeData *md = w.mimeData(QList<QTreeWidgetItem*>() << nullptr);
QVERIFY(!md);
}
+// visualItemRect returned a wrong rect when the columns were moved
+// (-> logical index != visual index). see QTBUG-28733
+void tst_QTreeWidget::testVisualItemRect()
+{
+ QTreeWidget tw;
+ tw.setColumnCount(2);
+ QTreeWidgetItem *item = new QTreeWidgetItem(&tw);
+ item->setText(0, "text 0");
+ item->setText(1, "text 1");
+
+ static const int sectionSize = 30;
+ tw.header()->setStretchLastSection(false);
+ tw.header()->setMinimumSectionSize(sectionSize);
+ tw.header()->resizeSection(0, sectionSize);
+ tw.header()->resizeSection(1, sectionSize);
+ tw.setRootIsDecorated(false);
+ tw.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&tw));
+
+ QRect r = tw.visualItemRect(item);
+ QCOMPARE(r.width(), sectionSize * 2); // 2 columns
+ tw.header()->moveSection(1, 0);
+ r = tw.visualItemRect(item);
+ QCOMPARE(r.width(), sectionSize * 2); // 2 columns
+ tw.hideColumn(0);
+ r = tw.visualItemRect(item);
+ QCOMPARE(r.width(), sectionSize);
+}
+
QTEST_MAIN(tst_QTreeWidget)
#include "tst_qtreewidget.moc"