diff options
author | Lars Knoll <lars.knoll@qt.io> | 2020-09-03 10:51:40 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2020-09-10 03:15:49 +0200 |
commit | d49a7412f55390e461773f4ffc36a82958d59b6d (patch) | |
tree | 20e860fa351f8e52ad8bb332793248a735d7e3bc /src/sql | |
parent | ae7442a4e93d4a63f28c1c2692be80a3d87f54a9 (diff) |
Derive some item delegates from QStyledItemDelegate
Address a ### Qt6 comment from change
283008e123e5eacb83869682528b2024186634f8, and start using
QStyledItemDelegate in more places, so those get proper
look and feel.
Change-Id: I39767ba99b7942faada1fba0ac241deb35563b63
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Diffstat (limited to 'src/sql')
-rw-r--r-- | src/sql/models/qsqlrelationaldelegate.h | 55 |
1 files changed, 27 insertions, 28 deletions
diff --git a/src/sql/models/qsqlrelationaldelegate.h b/src/sql/models/qsqlrelationaldelegate.h index 189fc876fd..130c82868e 100644 --- a/src/sql/models/qsqlrelationaldelegate.h +++ b/src/sql/models/qsqlrelationaldelegate.h @@ -46,7 +46,7 @@ QT_REQUIRE_CONFIG(sqlmodel); #ifdef QT_WIDGETS_LIB -#include <QtWidgets/qitemdelegate.h> +#include <QtWidgets/qstyleditemdelegate.h> #if QT_CONFIG(listview) #include <QtWidgets/qlistview.h> #endif @@ -58,8 +58,7 @@ QT_REQUIRE_CONFIG(sqlmodel); #include <QtCore/qmetaobject.h> QT_BEGIN_NAMESPACE -// ### Qt6: QStyledItemDelegate -class QSqlRelationalDelegate: public QItemDelegate +class QSqlRelationalDelegate : public QStyledItemDelegate { static int fieldIndex(const QSqlTableModel *const model, const QSqlDriver *const driver, @@ -73,31 +72,31 @@ class QSqlRelationalDelegate: public QItemDelegate public: -explicit QSqlRelationalDelegate(QObject *aParent = nullptr) - : QItemDelegate(aParent) -{} + explicit QSqlRelationalDelegate(QObject *aParent = nullptr) + : QStyledItemDelegate(aParent) + {} -~QSqlRelationalDelegate() -{} + ~QSqlRelationalDelegate() + {} -QWidget *createEditor(QWidget *aParent, - const QStyleOptionViewItem &option, - const QModelIndex &index) const override -{ - const QSqlRelationalTableModel *sqlModel = qobject_cast<const QSqlRelationalTableModel *>(index.model()); - QSqlTableModel *childModel = sqlModel ? sqlModel->relationModel(index.column()) : nullptr; - if (!childModel) - return QItemDelegate::createEditor(aParent, option, index); - const QSqlDriver *const driver = childModel->database().driver(); - - QComboBox *combo = new QComboBox(aParent); - combo->setModel(childModel); - combo->setModelColumn(fieldIndex(childModel, driver, - sqlModel->relation(index.column()).displayColumn())); - combo->installEventFilter(const_cast<QSqlRelationalDelegate *>(this)); - - return combo; -} + QWidget *createEditor(QWidget *aParent, + const QStyleOptionViewItem &option, + const QModelIndex &index) const override + { + const QSqlRelationalTableModel *sqlModel = qobject_cast<const QSqlRelationalTableModel *>(index.model()); + QSqlTableModel *childModel = sqlModel ? sqlModel->relationModel(index.column()) : nullptr; + if (!childModel) + return QStyledItemDelegate::createEditor(aParent, option, index); + const QSqlDriver *const driver = childModel->database().driver(); + + QComboBox *combo = new QComboBox(aParent); + combo->setModel(childModel); + combo->setModelColumn(fieldIndex(childModel, driver, + sqlModel->relation(index.column()).displayColumn())); + combo->installEventFilter(const_cast<QSqlRelationalDelegate *>(this)); + + return combo; + } void setEditorData(QWidget *editor, const QModelIndex &index) const override { @@ -117,7 +116,7 @@ QWidget *createEditor(QWidget *aParent, return; } } - QItemDelegate::setEditorData(editor, index); + QStyledItemDelegate::setEditorData(editor, index); } void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override @@ -129,7 +128,7 @@ void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex QSqlTableModel *childModel = sqlModel ? sqlModel->relationModel(index.column()) : nullptr; QComboBox *combo = qobject_cast<QComboBox *>(editor); if (!sqlModel || !childModel || !combo) { - QItemDelegate::setModelData(editor, model, index); + QStyledItemDelegate::setModelData(editor, model, index); return; } const QSqlDriver *const driver = childModel->database().driver(); |