diff options
Diffstat (limited to 'src/widgets/itemviews/qabstractitemview_p.h')
-rw-r--r-- | src/widgets/itemviews/qabstractitemview_p.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/widgets/itemviews/qabstractitemview_p.h b/src/widgets/itemviews/qabstractitemview_p.h index ab2fc67ade..3826f3b4e9 100644 --- a/src/widgets/itemviews/qabstractitemview_p.h +++ b/src/widgets/itemviews/qabstractitemview_p.h @@ -200,13 +200,18 @@ public: // reimplemented in subclasses virtual void adjustViewOptionsForIndex(QStyleOptionViewItemV4*, const QModelIndex&) const {} - inline void releaseEditor(QWidget *editor) const { + inline void releaseEditor(QWidget *editor, const QModelIndex &index = QModelIndex()) const { if (editor) { QObject::disconnect(editor, SIGNAL(destroyed(QObject*)), q_func(), SLOT(editorDestroyed(QObject*))); editor->removeEventFilter(itemDelegate); editor->hide(); - editor->deleteLater(); + QAbstractItemDelegate *delegate = delegateForIndex(index); + + if (delegate) + delegate->destroyEditor(editor, index); + else + editor->deleteLater(); } } |