diff options
author | Thorbjørn Lund Martsum <tmartsum@gmail.com> | 2011-12-15 16:48:51 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-02 01:56:03 +0100 |
commit | 15f253a46aa45e2a9fa1055799fa2768ba49b9a3 (patch) | |
tree | 46156f4e7ed503d9c0596b74ef58361f14ceb90f /src/widgets/itemviews/qabstractitemdelegate.cpp | |
parent | efecd011897e8852cf67ce119dafa879fc671b9c (diff) |
Introduce QItemDelegate::destroyEditor virtual invoked at editor close
This provides a stronger mechanism e.g when inheriting QItemDelegate.
It makes some things much easier e.g avoid delete of an editor
and maybe only delete depending on what the editor says itself.
This introduces a new virtual function.
Task-number: QTBUG-2299
Change-Id: I8410f8199775987dbacffd99e4c354fdadcdd21f
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Diffstat (limited to 'src/widgets/itemviews/qabstractitemdelegate.cpp')
-rw-r--r-- | src/widgets/itemviews/qabstractitemdelegate.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/widgets/itemviews/qabstractitemdelegate.cpp b/src/widgets/itemviews/qabstractitemdelegate.cpp index b34cfa377c..6184a5845a 100644 --- a/src/widgets/itemviews/qabstractitemdelegate.cpp +++ b/src/widgets/itemviews/qabstractitemdelegate.cpp @@ -232,7 +232,7 @@ QAbstractItemDelegate::~QAbstractItemDelegate() editor paints its own background (e.g., with \l{QWidget::}{setAutoFillBackground()}). - \sa setModelData() setEditorData() + \sa destroyEditor() setModelData() setEditorData() */ QWidget *QAbstractItemDelegate::createEditor(QWidget *, const QStyleOptionViewItem &, @@ -241,6 +241,19 @@ QWidget *QAbstractItemDelegate::createEditor(QWidget *, return 0; } + +/*! + A function called when the editor is no longer needed and should be + destroyed. The default behavior is a call to deleteLater on the editor. + It possible e.g. to avoid this delete by reimplementing this function. + + \sa createEditor() +*/ +void QAbstractItemDelegate::destroyEditor(QWidget *editor, const QModelIndex &) const +{ + editor->deleteLater(); +} + /*! Sets the contents of the given \a editor to the data for the item at the given \a index. Note that the index contains information |