diff options
author | Iikka Eklund <iikka.eklund@digia.com> | 2014-04-01 11:44:26 +0300 |
---|---|---|
committer | Iikka Eklund <iikka.eklund@digia.com> | 2014-04-01 11:44:27 +0300 |
commit | 0ab63b035a649dc1982c867cd37d466d249004b9 (patch) | |
tree | 6de22edcd3957aae3eee698136a000e52ab7f8fe /src/widgets/itemviews/qabstractitemview.cpp | |
parent | a6f8aa0ae1d5a1d1099df1891ea60b14b6eb6065 (diff) | |
parent | 0cb2c760c219514849ab0f6be8e5368f92dfa5d9 (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2a6eb9dd7724931bc89f28bcc156e77c4e26d069
Diffstat (limited to 'src/widgets/itemviews/qabstractitemview.cpp')
-rw-r--r-- | src/widgets/itemviews/qabstractitemview.cpp | 15 |
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); |