summaryrefslogtreecommitdiffstats
path: root/src/widgets/itemviews/qabstractitemview.cpp
diff options
context:
space:
mode:
authorIikka Eklund <iikka.eklund@digia.com>2014-04-01 11:44:26 +0300
committerIikka Eklund <iikka.eklund@digia.com>2014-04-01 11:44:27 +0300
commit0ab63b035a649dc1982c867cd37d466d249004b9 (patch)
tree6de22edcd3957aae3eee698136a000e52ab7f8fe /src/widgets/itemviews/qabstractitemview.cpp
parenta6f8aa0ae1d5a1d1099df1891ea60b14b6eb6065 (diff)
parent0cb2c760c219514849ab0f6be8e5368f92dfa5d9 (diff)
Merge remote-tracking branch 'origin/stable' into dev
Diffstat (limited to 'src/widgets/itemviews/qabstractitemview.cpp')
-rw-r--r--src/widgets/itemviews/qabstractitemview.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp
index 771753b7da..b2dc614b2b 100644
--- a/src/widgets/itemviews/qabstractitemview.cpp
+++ b/src/widgets/itemviews/qabstractitemview.cpp
@@ -2753,10 +2753,14 @@ void QAbstractItemView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndE
editor->removeEventFilter(d->delegateForIndex(index));
d->removeEditor(editor);
}
- if (hadFocus)
- setFocus(); // this will send a focusLost event to the editor
- else
+ if (hadFocus) {
+ if (focusPolicy() != Qt::NoFocus)
+ setFocus(); // this will send a focusLost event to the editor
+ else
+ editor->clearFocus();
+ } else {
d->checkPersistentEditorFocus();
+ }
QPointer<QWidget> ed = editor;
QApplication::sendPostedEvents(editor, 0);
@@ -2767,8 +2771,9 @@ void QAbstractItemView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndE
}
// The EndEditHint part
- QItemSelectionModel::SelectionFlags flags = QItemSelectionModel::ClearAndSelect
- | d->selectionBehaviorFlags();
+ QItemSelectionModel::SelectionFlags flags = QItemSelectionModel::NoUpdate;
+ if (d->selectionMode != NoSelection)
+ flags = QItemSelectionModel::ClearAndSelect | d->selectionBehaviorFlags();
switch (hint) {
case QAbstractItemDelegate::EditNextItem: {
QModelIndex index = moveCursor(MoveNext, Qt::NoModifier);