summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorMark Brand <mabrand@mabrand.nl>2012-03-13 11:40:25 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-15 00:50:47 +0100
commit9e87104295b019a1afa49f856ddcef07249d1afb (patch)
treed15f145dfe562a9b2b78708cf8611a6eef50c30b /tests/auto
parent273508205c4dbc6a3e1c6f1ea5e60a30c468219b (diff)
QTableView: call model->submit() on row change
QTreeView already does this in the exact same way. It's necessary to call submit() so edit strategy OnRowChange in QSqlTableModel will work as expected. Change-Id: Ib430143e8a71f3b0bcd842fcc772cc7ee4525f0a Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp b/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp
index 9144a023d7..0c396aac60 100644
--- a/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp
+++ b/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp
@@ -175,6 +175,7 @@ private slots:
void tabFocus();
void bigModel();
void selectionSignal();
+ void setCurrentIndex();
// task-specific tests:
void task173773_updateVerticalHeader();
@@ -254,11 +255,15 @@ class QtTestTableModel: public QAbstractTableModel
signals:
void invalidIndexEncountered() const;
+public slots:
+ bool submit() { ++submit_count; return QAbstractTableModel::submit(); }
+
public:
QtTestTableModel(int rows = 0, int columns = 0, QObject *parent = 0)
: QAbstractTableModel(parent),
row_count(rows),
column_count(columns),
+ submit_count(0),
can_fetch_more(false),
fetch_more_count(0),
disabled_rows(),
@@ -400,6 +405,7 @@ public:
int row_count;
int column_count;
+ int submit_count;
bool can_fetch_more;
int fetch_more_count;
QSet<int> disabled_rows;
@@ -3480,6 +3486,27 @@ void tst_QTableView::selectionSignal()
QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.visualRect(model.index(2, 0)).center());
}
+void tst_QTableView::setCurrentIndex()
+{
+ QtTestTableModel model(4, 4);
+ QtTestTableView view;
+ view.setModel(&model);
+
+ // submit() slot should be called in model when current row changes
+ view.setCurrentIndex(model.index(0,0));
+ QCOMPARE(model.submit_count, 1);
+ view.setCurrentIndex(model.index(0,2));
+ QCOMPARE(model.submit_count, 1);
+ view.setCurrentIndex(model.index(1,0));
+ QCOMPARE(model.submit_count, 2);
+ view.setCurrentIndex(model.index(3,3));
+ QCOMPARE(model.submit_count, 3);
+ view.setCurrentIndex(model.index(0,1));
+ QCOMPARE(model.submit_count, 4);
+ view.setCurrentIndex(model.index(0,0));
+ QCOMPARE(model.submit_count, 4);
+}
+
class task173773_EventFilter : public QObject
{
int paintEventCount_;