From 283008e123e5eacb83869682528b2024186634f8 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Thu, 6 Dec 2018 18:13:47 +0100 Subject: Doc: replace QItemDelegate with QStyledItemDelegate Since QStyledItemDelegate should be preferred over QItemDelegate the documentation should point to QStyledItemDelegate instead. Also mark some internal classes which derive from QItemDelegate so they will not be forgotten during Qt6 porting. Change-Id: I2dd17feedf8593afac5ca16d2546e1f0bc0250ae Reviewed-by: Paul Wicking Reviewed-by: Konstantin Shegunov Reviewed-by: Richard Moe Gustavsen --- src/sql/models/qsqlrelationaldelegate.h | 2 +- src/widgets/doc/src/model-view-programming.qdoc | 16 ++++++++-------- src/widgets/itemviews/qabstractitemdelegate.cpp | 4 ++-- src/widgets/itemviews/qabstractitemview.cpp | 2 +- src/widgets/itemviews/qcolumnview_p.h | 1 + src/widgets/itemviews/qdatawidgetmapper.cpp | 1 + src/widgets/itemviews/qitemeditorfactory.cpp | 16 ++++++++-------- src/widgets/itemviews/qlistwidget.cpp | 2 +- src/widgets/itemviews/qtableview.cpp | 2 +- src/widgets/itemviews/qtreewidget.cpp | 2 +- src/widgets/util/qcompleter_p.h | 1 + src/widgets/widgets/qcalendarwidget.cpp | 1 + src/widgets/widgets/qcombobox_p.h | 1 + 13 files changed, 28 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/sql/models/qsqlrelationaldelegate.h b/src/sql/models/qsqlrelationaldelegate.h index e8ae5a229d..e52ded5a18 100644 --- a/src/sql/models/qsqlrelationaldelegate.h +++ b/src/sql/models/qsqlrelationaldelegate.h @@ -58,7 +58,7 @@ QT_REQUIRE_CONFIG(sqlmodel); #include QT_BEGIN_NAMESPACE - +// ### Qt6: QStyledItemDelegate class QSqlRelationalDelegate: public QItemDelegate { static int fieldIndex(const QSqlTableModel *const model, diff --git a/src/widgets/doc/src/model-view-programming.qdoc b/src/widgets/doc/src/model-view-programming.qdoc index f6b7c80656..83397c90b6 100644 --- a/src/widgets/doc/src/model-view-programming.qdoc +++ b/src/widgets/doc/src/model-view-programming.qdoc @@ -693,9 +693,9 @@ \l QAbstractItemDelegate class. Delegates are expected to be able to render their contents themselves - by implementing the \l{QItemDelegate::paint()}{paint()} - and \l{QItemDelegate::sizeHint()}{sizeHint()} functions. - However, simple widget-based delegates can subclass \l QItemDelegate + by implementing the \l{QStyledItemDelegate::paint()}{paint()} + and \l{QStyledItemDelegate::sizeHint()}{sizeHint()} functions. + However, simple widget-based delegates can subclass \l QStyledItemDelegate instead of \l QAbstractItemDelegate, and take advantage of the default implementations of these functions. @@ -709,14 +709,14 @@ \section2 Using an existing delegate - The standard views provided with Qt use instances of \l QItemDelegate + The standard views provided with Qt use instances of \l QStyledItemDelegate to provide editing facilities. This default implementation of the delegate interface renders items in the usual style for each of the standard views: \l QListView, \l QTableView, and \l QTreeView. All the standard roles are handled by the default delegate used by the standard views. The way these are interpreted is described in the - QItemDelegate documentation. + QStyledItemDelegate documentation. The delegate used by a view is returned by the \l{QAbstractItemView::itemDelegate()}{itemDelegate()} function. @@ -799,7 +799,7 @@ In this case, we ensure that the spin box is up-to-date, and update the model with the value it contains using the index specified. - The standard \l QItemDelegate class informs the view when it has + The standard \l QStyledItemDelegate class informs the view when it has finished editing by emitting the \l{QAbstractItemDelegate::closeEditor()}{closeEditor()} signal. The view ensures that the editor widget is closed and destroyed. In @@ -838,11 +838,11 @@ assist any subsequent editing operations. This is achieved by emitting the \l{QAbstractItemDelegate::closeEditor()}{closeEditor()} signal with a suitable hint. This is taken care of by the default - QItemDelegate event filter which we installed on the spin box when + QStyledItemDelegate event filter which we installed on the spin box when it was constructed. The behavior of the spin box could be adjusted to make it more user - friendly. In the default event filter supplied by QItemDelegate, if + friendly. In the default event filter supplied by QStyledItemDelegate, if the user hits \uicontrol Return to confirm their choice in the spin box, the delegate commits the value to the model and closes the spin box. We can change this behavior by installing our own event filter on the diff --git a/src/widgets/itemviews/qabstractitemdelegate.cpp b/src/widgets/itemviews/qabstractitemdelegate.cpp index 7bc0ece4b3..6e46eefa38 100644 --- a/src/widgets/itemviews/qabstractitemdelegate.cpp +++ b/src/widgets/itemviews/qabstractitemdelegate.cpp @@ -88,7 +88,7 @@ QT_BEGIN_NAMESPACE and is part of Qt's \l{Model/View Programming}{model/view framework}. To render an item in a custom way, you must implement paint() and - sizeHint(). The QItemDelegate class provides default implementations for + sizeHint(). The QStyledItemDelegate class provides default implementations for these functions; if you do not need custom rendering, subclass that class instead. @@ -115,7 +115,7 @@ QT_BEGIN_NAMESPACE The second approach is to handle user events directly by reimplementing editorEvent(). - \sa {model-view-programming}{Model/View Programming}, QItemDelegate, + \sa {model-view-programming}{Model/View Programming}, QStyledItemDelegate, {Pixelator Example}, QStyledItemDelegate, QStyle */ diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp index 638cee8289..1151379e17 100644 --- a/src/widgets/itemviews/qabstractitemview.cpp +++ b/src/widgets/itemviews/qabstractitemview.cpp @@ -3211,7 +3211,7 @@ bool QAbstractItemView::isPersistentEditorOpen(const QModelIndex &index) const This function should only be used to display static content within the visible area corresponding to an item of data. If you want to display custom dynamic content or implement a custom editor widget, subclass - QItemDelegate instead. + QStyledItemDelegate instead. \sa {Delegate Classes} */ diff --git a/src/widgets/itemviews/qcolumnview_p.h b/src/widgets/itemviews/qcolumnview_p.h index 9f0d2a40dc..7b36b1f3da 100644 --- a/src/widgets/itemviews/qcolumnview_p.h +++ b/src/widgets/itemviews/qcolumnview_p.h @@ -181,6 +181,7 @@ public: /*! * This is a delegate that will paint the triangle */ +// ### Qt6: QStyledItemDelegate class QColumnViewDelegate : public QItemDelegate { diff --git a/src/widgets/itemviews/qdatawidgetmapper.cpp b/src/widgets/itemviews/qdatawidgetmapper.cpp index 1f0dbff7a9..125ee73194 100644 --- a/src/widgets/itemviews/qdatawidgetmapper.cpp +++ b/src/widgets/itemviews/qdatawidgetmapper.cpp @@ -324,6 +324,7 @@ void QDataWidgetMapperPrivate::_q_modelDestroyed() QDataWidgetMapper::QDataWidgetMapper(QObject *parent) : QObject(*new QDataWidgetMapperPrivate, parent) { + // ### Qt6: QStyledItemDelegate setItemDelegate(new QItemDelegate(this)); } diff --git a/src/widgets/itemviews/qitemeditorfactory.cpp b/src/widgets/itemviews/qitemeditorfactory.cpp index 0986da9707..43dd004530 100644 --- a/src/widgets/itemviews/qitemeditorfactory.cpp +++ b/src/widgets/itemviews/qitemeditorfactory.cpp @@ -122,7 +122,7 @@ Q_SIGNALS: \inmodule QtWidgets When editing data in an item view, editors are created and - displayed by a delegate. QItemDelegate, which is the delegate by + displayed by a delegate. QStyledItemDelegate, which is the delegate by default installed on Qt's item views, uses a QItemEditorFactory to create editors for it. A default unique instance provided by QItemEditorFactory is used by all item delegates. If you set a @@ -156,7 +156,7 @@ Q_SIGNALS: Additional editors can be registered with the registerEditor() function. - \sa QItemDelegate, {Model/View Programming}, {Color Editor Factory Example} + \sa QStyledItemDelegate, {Model/View Programming}, {Color Editor Factory Example} */ /*! @@ -375,7 +375,7 @@ void QItemEditorFactory::setDefaultFactory(QItemEditorFactory *factory) QItemEditorCreatorBase objects are specialized widget factories that provide editor widgets for one particular QVariant data type. They are used by QItemEditorFactory to create editors for - \l{QItemDelegate}s. Creator bases must be registered with + \l{QStyledItemDelegate}s. Creator bases must be registered with QItemEditorFactory::registerEditor(). An editor should provide a user property for the data it edits. @@ -457,7 +457,7 @@ QItemEditorCreatorBase::~QItemEditorCreatorBase() \snippet code/src_gui_itemviews_qitemeditorfactory.cpp 1 The constructor takes the name of the property that contains the - editing data. QItemDelegate can then access the property by name + editing data. QStyledItemDelegate can then access the property by name when it sets and retrieves editing data. Only use this class if your editor does not define a user property (using the USER keyword in the Q_PROPERTY macro). If the widget has a user @@ -472,7 +472,7 @@ QItemEditorCreatorBase::~QItemEditorCreatorBase() Constructs an editor creator object using \a valuePropertyName as the name of the property to be used for editing. The - property name is used by QItemDelegate when setting and + property name is used by QStyledItemDelegate when setting and getting editor data. Note that the \a valuePropertyName is only used if the editor @@ -508,11 +508,11 @@ QItemEditorCreatorBase::~QItemEditorCreatorBase() \snippet code/src_gui_itemviews_qitemeditorfactory.cpp 2 Setting the \c editorFactory created above in an item delegate via - QItemDelegate::setItemEditorFactory() makes sure that all values of type + QStyledItemDelegate::setItemEditorFactory() makes sure that all values of type QVariant::DateTime will be edited in \c{MyFancyDateTimeEdit}. The editor must provide a user property that will contain the - editing data. The property is used by \l{QItemDelegate}s to set + editing data. The property is used by \l{QStyledItemDelegate}s to set and retrieve the data (using Qt's \l{Meta-Object System}{meta-object system}). You set the user property with the USER keyword: @@ -520,7 +520,7 @@ QItemEditorCreatorBase::~QItemEditorCreatorBase() \snippet code/src_gui_itemviews_qitemeditorfactory.cpp 3 \sa QItemEditorCreatorBase, QItemEditorCreator, - QItemEditorFactory, QItemDelegate, {Color Editor Factory Example} + QItemEditorFactory, QStyledItemDelegate, {Color Editor Factory Example} */ /*! diff --git a/src/widgets/itemviews/qlistwidget.cpp b/src/widgets/itemviews/qlistwidget.cpp index ea92c5605b..3b3a72cd4f 100644 --- a/src/widgets/itemviews/qlistwidget.cpp +++ b/src/widgets/itemviews/qlistwidget.cpp @@ -1757,7 +1757,7 @@ QWidget *QListWidget::itemWidget(QListWidgetItem *item) const This function should only be used to display static content in the place of a list widget item. If you want to display custom dynamic content or - implement a custom editor widget, use QListView and subclass QItemDelegate + implement a custom editor widget, use QListView and subclass QStyledItemDelegate instead. \sa itemWidget(), removeItemWidget(), {Delegate Classes} diff --git a/src/widgets/itemviews/qtableview.cpp b/src/widgets/itemviews/qtableview.cpp index fce6b75079..a7d144672c 100644 --- a/src/widgets/itemviews/qtableview.cpp +++ b/src/widgets/itemviews/qtableview.cpp @@ -1108,7 +1108,7 @@ int QTableViewPrivate::heightHintForIndex(const QModelIndex &index, int hint, QS \l showGrid property. The items shown in a table view, like those in the other item views, are - rendered and edited using standard \l{QItemDelegate}{delegates}. However, + rendered and edited using standard \l{QStyledItemDelegate}{delegates}. However, for some tasks it is sometimes useful to be able to insert widgets in a table instead. Widgets are set for particular indexes with the \l{QAbstractItemView::}{setIndexWidget()} function, and diff --git a/src/widgets/itemviews/qtreewidget.cpp b/src/widgets/itemviews/qtreewidget.cpp index ac117b1c07..1923f5edc1 100644 --- a/src/widgets/itemviews/qtreewidget.cpp +++ b/src/widgets/itemviews/qtreewidget.cpp @@ -3101,7 +3101,7 @@ QWidget *QTreeWidget::itemWidget(QTreeWidgetItem *item, int column) const This function should only be used to display static content in the place of a tree widget item. If you want to display custom dynamic content or - implement a custom editor widget, use QTreeView and subclass QItemDelegate + implement a custom editor widget, use QTreeView and subclass QStyledItemDelegate instead. This function cannot be called before the item hierarchy has been set up, diff --git a/src/widgets/util/qcompleter_p.h b/src/widgets/util/qcompleter_p.h index 765363744b..21dddf446e 100644 --- a/src/widgets/util/qcompleter_p.h +++ b/src/widgets/util/qcompleter_p.h @@ -194,6 +194,7 @@ private: const QIndexMapper& iv, QMatchData* m); }; +// ### Qt6: QStyledItemDelegate class QCompleterItemDelegate : public QItemDelegate { public: diff --git a/src/widgets/widgets/qcalendarwidget.cpp b/src/widgets/widgets/qcalendarwidget.cpp index 0553972591..5649243d1d 100644 --- a/src/widgets/widgets/qcalendarwidget.cpp +++ b/src/widgets/widgets/qcalendarwidget.cpp @@ -1555,6 +1555,7 @@ void QCalendarView::mouseReleaseEvent(QMouseEvent *event) } } +// ### Qt6: QStyledItemDelegate class QCalendarDelegate : public QItemDelegate { Q_OBJECT diff --git a/src/widgets/widgets/qcombobox_p.h b/src/widgets/widgets/qcombobox_p.h index f76a95d2ae..71404964da 100644 --- a/src/widgets/widgets/qcombobox_p.h +++ b/src/widgets/widgets/qcombobox_p.h @@ -293,6 +293,7 @@ private: QComboBox *mCombo; }; +// ### Qt6: QStyledItemDelegate ? // Note that this class is intentionally not using QStyledItemDelegate // Vista does not use the new theme for combo boxes and there might // be other side effects from using the new class -- cgit v1.2.3