summaryrefslogtreecommitdiffstats
path: root/src/widgets/itemviews
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-04-05 14:22:45 +0200
committerLiang Qi <liang.qi@theqtcompany.com>2016-04-05 14:22:45 +0200
commitf2856875843efce9a00e90dad05bde358ab82197 (patch)
tree93346c38504ce04f0bf02dfe4a21299feb1be8ed /src/widgets/itemviews
parenta7b04275082d065f392e7f18c54ea9b41507ae40 (diff)
parenta2970719c26c946fd6fea7d902aad6706a4ca6ea (diff)
Merge remote-tracking branch 'origin/5.7' into dev
Conflicts: examples/corelib/ipc/ipc.pro src/plugins/platforms/xcb/qxcbbackingstore.cpp tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp Change-Id: Ia006e10ff1732fe78f90138c41f05b59b49486cf
Diffstat (limited to 'src/widgets/itemviews')
-rw-r--r--src/widgets/itemviews/qabstractitemview.cpp15
-rw-r--r--src/widgets/itemviews/qtreeview.cpp6
2 files changed, 19 insertions, 2 deletions
diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp
index da4492a684..6c38c53a77 100644
--- a/src/widgets/itemviews/qabstractitemview.cpp
+++ b/src/widgets/itemviews/qabstractitemview.cpp
@@ -782,7 +782,13 @@ void QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel)
return;
}
+ QItemSelection oldSelection;
+ QModelIndex oldCurrentIndex;
+
if (d->selectionModel) {
+ oldSelection = d->selectionModel->selection();
+ oldCurrentIndex = d->selectionModel->currentIndex();
+
disconnect(d->selectionModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
this, SLOT(selectionChanged(QItemSelection,QItemSelection)));
disconnect(d->selectionModel, SIGNAL(currentChanged(QModelIndex,QModelIndex)),
@@ -796,6 +802,9 @@ void QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel)
this, SLOT(selectionChanged(QItemSelection,QItemSelection)));
connect(d->selectionModel, SIGNAL(currentChanged(QModelIndex,QModelIndex)),
this, SLOT(currentChanged(QModelIndex,QModelIndex)));
+
+ selectionChanged(d->selectionModel->selection(), oldSelection);
+ currentChanged(d->selectionModel->currentIndex(), oldCurrentIndex);
}
}
@@ -2972,7 +2981,11 @@ void QAbstractItemView::keyboardSearch(const QString &search)
: d->model->index(0, 0, d->root);
bool skipRow = false;
bool keyboardTimeWasValid = d->keyboardInputTime.isValid();
- qint64 keyboardInputTimeElapsed = d->keyboardInputTime.restart();
+ qint64 keyboardInputTimeElapsed;
+ if (keyboardTimeWasValid)
+ keyboardInputTimeElapsed = d->keyboardInputTime.restart();
+ else
+ d->keyboardInputTime.start();
if (search.isEmpty() || !keyboardTimeWasValid
|| keyboardInputTimeElapsed > QApplication::keyboardInputInterval()) {
d->keyboardInput = search;
diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp
index 3568d937ff..e9d866525d 100644
--- a/src/widgets/itemviews/qtreeview.cpp
+++ b/src/widgets/itemviews/qtreeview.cpp
@@ -1024,7 +1024,11 @@ void QTreeView::keyboardSearch(const QString &search)
bool skipRow = false;
bool keyboardTimeWasValid = d->keyboardInputTime.isValid();
- qint64 keyboardInputTimeElapsed = d->keyboardInputTime.restart();
+ qint64 keyboardInputTimeElapsed;
+ if (keyboardTimeWasValid)
+ keyboardInputTimeElapsed = d->keyboardInputTime.restart();
+ else
+ d->keyboardInputTime.start();
if (search.isEmpty() || !keyboardTimeWasValid
|| keyboardInputTimeElapsed > QApplication::keyboardInputInterval()) {
d->keyboardInput = search;