summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/itemviews
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/itemviews')
-rw-r--r--tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp5
-rw-r--r--tests/auto/widgets/itemviews/qdatawidgetmapper/tst_qdatawidgetmapper.cpp9
-rw-r--r--tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp36
-rw-r--r--tests/auto/widgets/itemviews/qitemdelegate/tst_qitemdelegate.cpp84
-rw-r--r--tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp55
-rw-r--r--tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp68
6 files changed, 185 insertions, 72 deletions
diff --git a/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp b/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp
index ff910ba359..f487e256a3 100644
--- a/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp
+++ b/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp
@@ -530,11 +530,16 @@ void tst_QAbstractItemView::basic_tests(TestView *view)
// setIconSize
view->setIconSize(QSize(16, 16));
QCOMPARE(view->iconSize(), QSize(16, 16));
+ QSignalSpy spy(view, &QAbstractItemView::iconSizeChanged);
+ QVERIFY(spy.isValid());
view->setIconSize(QSize(32, 32));
QCOMPARE(view->iconSize(), QSize(32, 32));
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy.at(0).at(0).value<QSize>(), QSize(32, 32));
// Should this happen?
view->setIconSize(QSize(-1, -1));
QCOMPARE(view->iconSize(), QSize(-1, -1));
+ QCOMPARE(spy.count(), 2);
QCOMPARE(view->currentIndex(), QModelIndex());
QCOMPARE(view->rootIndex(), QModelIndex());
diff --git a/tests/auto/widgets/itemviews/qdatawidgetmapper/tst_qdatawidgetmapper.cpp b/tests/auto/widgets/itemviews/qdatawidgetmapper/tst_qdatawidgetmapper.cpp
index 2c3fdb1baa..1616b08fb2 100644
--- a/tests/auto/widgets/itemviews/qdatawidgetmapper/tst_qdatawidgetmapper.cpp
+++ b/tests/auto/widgets/itemviews/qdatawidgetmapper/tst_qdatawidgetmapper.cpp
@@ -30,9 +30,12 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#include <QtGui/QtGui>
-#include <QtWidgets/QtWidgets>
-#include <QtTest/QtTest>
+#include <QDataWidgetMapper>
+#include <QStandardItemModel>
+#include <QLineEdit>
+#include <QComboBox>
+#include <QTest>
+#include <QSignalSpy>
class tst_QDataWidgetMapper: public QObject
{
diff --git a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp
index 408e98b873..eacf2e51fd 100644
--- a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp
+++ b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp
@@ -176,6 +176,7 @@ private slots:
void moveSectionAndRemove();
void saveRestore();
void defaultSectionSizeTest();
+ void defaultSectionSizeTestStyles();
void defaultAlignment_data();
void defaultAlignment();
@@ -1679,6 +1680,41 @@ void tst_QHeaderView::defaultSectionSizeTest()
QVERIFY(hv->sectionSize(2) == 0); // section is hidden. It should not be resized.
}
+class TestHeaderViewStyle : public QProxyStyle
+{
+public:
+ TestHeaderViewStyle() : horizontalSectionSize(100) {}
+ int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const Q_DECL_OVERRIDE
+ {
+ if (metric == QStyle::PM_HeaderDefaultSectionSizeHorizontal)
+ return horizontalSectionSize;
+ else
+ return QProxyStyle::pixelMetric(metric, option, widget);
+ }
+ int horizontalSectionSize;
+};
+
+void tst_QHeaderView::defaultSectionSizeTestStyles()
+{
+ TestHeaderViewStyle style1;
+ TestHeaderViewStyle style2;
+ style1.horizontalSectionSize = 100;
+ style2.horizontalSectionSize = 200;
+
+ QHeaderView hv(Qt::Horizontal);
+ hv.setStyle(&style1);
+ QCOMPARE(hv.defaultSectionSize(), style1.horizontalSectionSize);
+ hv.setStyle(&style2);
+ QCOMPARE(hv.defaultSectionSize(), style2.horizontalSectionSize);
+ hv.setDefaultSectionSize(70);
+ QCOMPARE(hv.defaultSectionSize(), 70);
+ hv.setStyle(&style1);
+ QCOMPARE(hv.defaultSectionSize(), 70);
+ hv.resetDefaultSectionSize();
+ QCOMPARE(hv.defaultSectionSize(), style1.horizontalSectionSize);
+ hv.setStyle(&style2);
+ QCOMPARE(hv.defaultSectionSize(), style2.horizontalSectionSize);
+}
void tst_QHeaderView::defaultAlignment_data()
{
diff --git a/tests/auto/widgets/itemviews/qitemdelegate/tst_qitemdelegate.cpp b/tests/auto/widgets/itemviews/qitemdelegate/tst_qitemdelegate.cpp
index f000907e0e..f035094a37 100644
--- a/tests/auto/widgets/itemviews/qitemdelegate/tst_qitemdelegate.cpp
+++ b/tests/auto/widgets/itemviews/qitemdelegate/tst_qitemdelegate.cpp
@@ -1084,7 +1084,6 @@ void tst_QItemDelegate::decoration()
void tst_QItemDelegate::editorEvent_data()
{
QTest::addColumn<QRect>("rect");
- QTest::addColumn<QString>("text");
QTest::addColumn<int>("checkState");
QTest::addColumn<int>("flags");
QTest::addColumn<bool>("inCheck");
@@ -1093,16 +1092,17 @@ void tst_QItemDelegate::editorEvent_data()
QTest::addColumn<bool>("edited");
QTest::addColumn<int>("expectedCheckState");
- QTest::newRow("unchecked, checkable, release")
- << QRect(0, 0, 20, 20)
- << QString("foo")
- << (int)(Qt::Unchecked)
- << (int)(Qt::ItemIsEditable
+ const int defaultFlags = (int)(Qt::ItemIsEditable
|Qt::ItemIsSelectable
|Qt::ItemIsUserCheckable
|Qt::ItemIsEnabled
|Qt::ItemIsDragEnabled
- |Qt::ItemIsDropEnabled)
+ |Qt::ItemIsDropEnabled);
+
+ QTest::newRow("unchecked, checkable, release")
+ << QRect(0, 0, 20, 20)
+ << (int)(Qt::Unchecked)
+ << defaultFlags
<< true
<< (int)(QEvent::MouseButtonRelease)
<< (int)(Qt::LeftButton)
@@ -1111,14 +1111,8 @@ void tst_QItemDelegate::editorEvent_data()
QTest::newRow("checked, checkable, release")
<< QRect(0, 0, 20, 20)
- << QString("foo")
<< (int)(Qt::Checked)
- << (int)(Qt::ItemIsEditable
- |Qt::ItemIsSelectable
- |Qt::ItemIsUserCheckable
- |Qt::ItemIsEnabled
- |Qt::ItemIsDragEnabled
- |Qt::ItemIsDropEnabled)
+ << defaultFlags
<< true
<< (int)(QEvent::MouseButtonRelease)
<< (int)(Qt::LeftButton)
@@ -1127,14 +1121,8 @@ void tst_QItemDelegate::editorEvent_data()
QTest::newRow("unchecked, checkable, release")
<< QRect(0, 0, 20, 20)
- << QString("foo")
<< (int)(Qt::Unchecked)
- << (int)(Qt::ItemIsEditable
- |Qt::ItemIsSelectable
- |Qt::ItemIsUserCheckable
- |Qt::ItemIsEnabled
- |Qt::ItemIsDragEnabled
- |Qt::ItemIsDropEnabled)
+ << defaultFlags
<< true
<< (int)(QEvent::MouseButtonRelease)
<< (int)(Qt::LeftButton)
@@ -1143,14 +1131,8 @@ void tst_QItemDelegate::editorEvent_data()
QTest::newRow("unchecked, checkable, release, right button")
<< QRect(0, 0, 20, 20)
- << QString("foo")
<< (int)(Qt::Unchecked)
- << (int)(Qt::ItemIsEditable
- |Qt::ItemIsSelectable
- |Qt::ItemIsUserCheckable
- |Qt::ItemIsEnabled
- |Qt::ItemIsDragEnabled
- |Qt::ItemIsDropEnabled)
+ << defaultFlags
<< true
<< (int)(QEvent::MouseButtonRelease)
<< (int)(Qt::RightButton)
@@ -1159,14 +1141,8 @@ void tst_QItemDelegate::editorEvent_data()
QTest::newRow("unchecked, checkable, release outside")
<< QRect(0, 0, 20, 20)
- << QString("foo")
<< (int)(Qt::Unchecked)
- << (int)(Qt::ItemIsEditable
- |Qt::ItemIsSelectable
- |Qt::ItemIsUserCheckable
- |Qt::ItemIsEnabled
- |Qt::ItemIsDragEnabled
- |Qt::ItemIsDropEnabled)
+ << defaultFlags
<< false
<< (int)(QEvent::MouseButtonRelease)
<< (int)(Qt::LeftButton)
@@ -1175,14 +1151,8 @@ void tst_QItemDelegate::editorEvent_data()
QTest::newRow("unchecked, checkable, dblclick")
<< QRect(0, 0, 20, 20)
- << QString("foo")
<< (int)(Qt::Unchecked)
- << (int)(Qt::ItemIsEditable
- |Qt::ItemIsSelectable
- |Qt::ItemIsUserCheckable
- |Qt::ItemIsEnabled
- |Qt::ItemIsDragEnabled
- |Qt::ItemIsDropEnabled)
+ << defaultFlags
<< true
<< (int)(QEvent::MouseButtonDblClick)
<< (int)(Qt::LeftButton)
@@ -1191,15 +1161,8 @@ void tst_QItemDelegate::editorEvent_data()
QTest::newRow("unchecked, tristate, release")
<< QRect(0, 0, 20, 20)
- << QString("foo")
<< (int)(Qt::Unchecked)
- << (int)(Qt::ItemIsEditable
- |Qt::ItemIsSelectable
- |Qt::ItemIsUserCheckable
- |Qt::ItemIsTristate
- |Qt::ItemIsEnabled
- |Qt::ItemIsDragEnabled
- |Qt::ItemIsDropEnabled)
+ << (int)(defaultFlags | Qt::ItemIsTristate)
<< true
<< (int)(QEvent::MouseButtonRelease)
<< (int)(Qt::LeftButton)
@@ -1208,15 +1171,8 @@ void tst_QItemDelegate::editorEvent_data()
QTest::newRow("partially checked, tristate, release")
<< QRect(0, 0, 20, 20)
- << QString("foo")
<< (int)(Qt::PartiallyChecked)
- << (int)(Qt::ItemIsEditable
- |Qt::ItemIsSelectable
- |Qt::ItemIsUserCheckable
- |Qt::ItemIsTristate
- |Qt::ItemIsEnabled
- |Qt::ItemIsDragEnabled
- |Qt::ItemIsDropEnabled)
+ << (int)(defaultFlags | Qt::ItemIsTristate)
<< true
<< (int)(QEvent::MouseButtonRelease)
<< (int)(Qt::LeftButton)
@@ -1225,15 +1181,8 @@ void tst_QItemDelegate::editorEvent_data()
QTest::newRow("checked, tristate, release")
<< QRect(0, 0, 20, 20)
- << QString("foo")
<< (int)(Qt::Checked)
- << (int)(Qt::ItemIsEditable
- |Qt::ItemIsSelectable
- |Qt::ItemIsUserCheckable
- |Qt::ItemIsTristate
- |Qt::ItemIsEnabled
- |Qt::ItemIsDragEnabled
- |Qt::ItemIsDropEnabled)
+ << (int)(defaultFlags | Qt::ItemIsTristate)
<< true
<< (int)(QEvent::MouseButtonRelease)
<< (int)(Qt::LeftButton)
@@ -1244,7 +1193,6 @@ void tst_QItemDelegate::editorEvent_data()
void tst_QItemDelegate::editorEvent()
{
QFETCH(QRect, rect);
- QFETCH(QString, text);
QFETCH(int, checkState);
QFETCH(int, flags);
QFETCH(bool, inCheck);
@@ -1258,7 +1206,7 @@ void tst_QItemDelegate::editorEvent()
QVERIFY(index.isValid());
QStandardItem *item = model.itemFromIndex(index);
- item->setText(text);
+ item->setText("foo");
item->setCheckState((Qt::CheckState)checkState);
item->setFlags((Qt::ItemFlags)flags);
diff --git a/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp b/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp
index 6428bbba10..428b2f0c42 100644
--- a/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp
+++ b/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp
@@ -123,7 +123,7 @@ private slots:
void task258949_keypressHangup();
void QTBUG8086_currentItemChangedOnClick();
void QTBUG14363_completerWithAnyKeyPressedEditTriggers();
-
+ void mimeData();
protected slots:
void rowsAboutToBeInserted(const QModelIndex &parent, int first, int last)
@@ -1082,6 +1082,9 @@ public:
Q_UNUSED(item);
return QListWidget::state() == QListWidget::EditingState;
}
+
+ using QListWidget::mimeData;
+ using QListWidget::indexFromItem;
};
void tst_QListWidget::closeEditor()
@@ -1662,7 +1665,57 @@ void tst_QListWidget::QTBUG14363_completerWithAnyKeyPressedEditTriggers()
QCOMPARE(le->completer()->currentCompletion(), QString("completer"));
}
+void tst_QListWidget::mimeData()
+{
+ TestListWidget list;
+
+ for (int x = 0; x < 10; ++x) {
+ QListWidgetItem *item = new QListWidgetItem(QStringLiteral("123"));
+ list.addItem(item);
+ }
+
+ QList<QListWidgetItem *> tableWidgetItemList;
+ QModelIndexList modelIndexList;
+
+ // do these checks more than once to ensure that the "cached indexes" work as expected
+ QVERIFY(!list.mimeData(tableWidgetItemList));
+ QVERIFY(!list.model()->mimeData(modelIndexList));
+ QVERIFY(!list.model()->mimeData(modelIndexList));
+ QVERIFY(!list.mimeData(tableWidgetItemList));
+
+ tableWidgetItemList << list.item(1);
+ modelIndexList << list.indexFromItem(list.item(1));
+
+ QMimeData *data;
+
+ QVERIFY(data = list.mimeData(tableWidgetItemList));
+ delete data;
+ QVERIFY(data = list.model()->mimeData(modelIndexList));
+ delete data;
+
+ QVERIFY(data = list.model()->mimeData(modelIndexList));
+ delete data;
+
+ QVERIFY(data = list.mimeData(tableWidgetItemList));
+ delete data;
+
+ // check the saved data is actually the same
+
+ QMimeData *data2;
+
+ data = list.mimeData(tableWidgetItemList);
+ data2 = list.model()->mimeData(modelIndexList);
+
+ const QString format = QStringLiteral("application/x-qabstractitemmodeldatalist");
+
+ QVERIFY(data->hasFormat(format));
+ QVERIFY(data2->hasFormat(format));
+ QVERIFY(data->data(format) == data2->data(format));
+
+ delete data;
+ delete data2;
+}
QTEST_MAIN(tst_QListWidget)
#include "tst_qlistwidget.moc"
diff --git a/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp b/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp
index 8335497c6c..de88e832aa 100644
--- a/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp
+++ b/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp
@@ -93,6 +93,7 @@ private slots:
void task219380_removeLastRow();
void task262056_sortDuplicate();
void itemWithHeaderItems();
+ void mimeData();
private:
QTableWidget *testWidget;
@@ -1497,5 +1498,72 @@ void tst_QTableWidget::itemWithHeaderItems()
QCOMPARE(table.item(0, 1), static_cast<QTableWidgetItem *>(0));
}
+class TestTableWidget : public QTableWidget
+{
+ Q_OBJECT
+public:
+ TestTableWidget(int rows, int columns, QWidget *parent = 0)
+ : QTableWidget(rows, columns, parent)
+ {
+ }
+
+ using QTableWidget::mimeData;
+ using QTableWidget::indexFromItem;
+};
+
+void tst_QTableWidget::mimeData()
+{
+ TestTableWidget table(10, 10);
+
+ for (int x = 0; x < 10; ++x) {
+ for (int y = 0; y < 10; ++y) {
+ QTableWidgetItem *item = new QTableWidgetItem(QStringLiteral("123"));
+ table.setItem(y, x, item);
+ }
+ }
+
+ QList<QTableWidgetItem *> tableWidgetItemList;
+ QModelIndexList modelIndexList;
+
+ // do these checks more than once to ensure that the "cached indexes" work as expected
+ QVERIFY(!table.mimeData(tableWidgetItemList));
+ QVERIFY(!table.model()->mimeData(modelIndexList));
+ QVERIFY(!table.model()->mimeData(modelIndexList));
+ QVERIFY(!table.mimeData(tableWidgetItemList));
+
+ tableWidgetItemList << table.item(1, 1);
+ modelIndexList << table.indexFromItem(table.item(1, 1));
+
+ QMimeData *data;
+
+ QVERIFY(data = table.mimeData(tableWidgetItemList));
+ delete data;
+
+ QVERIFY(data = table.model()->mimeData(modelIndexList));
+ delete data;
+
+ QVERIFY(data = table.model()->mimeData(modelIndexList));
+ delete data;
+
+ QVERIFY(data = table.mimeData(tableWidgetItemList));
+ delete data;
+
+ // check the saved data is actually the same
+
+ QMimeData *data2;
+
+ data = table.mimeData(tableWidgetItemList);
+ data2 = table.model()->mimeData(modelIndexList);
+
+ const QString format = QStringLiteral("application/x-qabstractitemmodeldatalist");
+
+ QVERIFY(data->hasFormat(format));
+ QVERIFY(data2->hasFormat(format));
+ QVERIFY(data->data(format) == data2->data(format));
+
+ delete data;
+ delete data2;
+}
+
QTEST_MAIN(tst_QTableWidget)
#include "tst_qtablewidget.moc"