From a92c78784f0f3ba994c9ea8857a113b9cd28fee5 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Fri, 28 Mar 2025 13:53:44 +0100 Subject: [PATCH] QGIM: reimplement remaining virtuals Opens up the option to provide optimized reimplementations of e.g. mime type handling or sorting, without having to worry about compatibility implications when adding new overrides. Also override QObject::event/eventFilter, for the same reason. Change-Id: I843cfc449770e780fa3dbc2bd9629939f847a26e Reviewed-by: Artem Dyomin --- src/corelib/itemmodels/qgenericitemmodel.cpp | 148 +++++++++++++++++++ src/corelib/itemmodels/qgenericitemmodel.h | 27 ++++ 2 files changed, 175 insertions(+) diff --git a/src/corelib/itemmodels/qgenericitemmodel.cpp b/src/corelib/itemmodels/qgenericitemmodel.cpp index 6759604040e..7da4d2ee29f 100644 --- a/src/corelib/itemmodels/qgenericitemmodel.cpp +++ b/src/corelib/itemmodels/qgenericitemmodel.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #include "qgenericitemmodel.h" +#include QT_BEGIN_NAMESPACE @@ -762,6 +763,153 @@ bool QGenericItemModel::moveRows(const QModelIndex &sourceParent, int sourceRow, destinationParent, destinationRow); } +/*! + \reimp +*/ +bool QGenericItemModel::canFetchMore(const QModelIndex &parent) const +{ + return QAbstractItemModel::canFetchMore(parent); +} + +/*! + \reimp +*/ +void QGenericItemModel::fetchMore(const QModelIndex &parent) +{ + QAbstractItemModel::fetchMore(parent); +} + +/*! + \reimp +*/ +bool QGenericItemModel::hasChildren(const QModelIndex &parent) const +{ + return QAbstractItemModel::hasChildren(parent); +} + +/*! + \reimp +*/ +QModelIndex QGenericItemModel::buddy(const QModelIndex &index) const +{ + return QAbstractItemModel::buddy(index); +} + +/*! + \reimp +*/ +bool QGenericItemModel::canDropMimeData(const QMimeData *data, Qt::DropAction action, + int row, int column, const QModelIndex &parent) const +{ + return QAbstractItemModel::canDropMimeData(data, action, row, column, parent); +} + +/*! + \reimp +*/ +bool QGenericItemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, + int row, int column, const QModelIndex &parent) +{ + return QAbstractItemModel::dropMimeData(data, action, row, column, parent); +} + +/*! + \reimp +*/ +QMimeData *QGenericItemModel::mimeData(const QModelIndexList &indexes) const +{ + return QAbstractItemModel::mimeData(indexes); +} + +/*! + \reimp +*/ +QStringList QGenericItemModel::mimeTypes() const +{ + return QAbstractItemModel::mimeTypes(); +} + +/*! + \reimp +*/ +QModelIndexList QGenericItemModel::match(const QModelIndex &start, int role, const QVariant &value, + int hits, Qt::MatchFlags flags) const +{ + return QAbstractItemModel::match(start, role, value, hits, flags); +} + +/*! + \reimp +*/ +void QGenericItemModel::multiData(const QModelIndex &index, QModelRoleDataSpan roleDataSpan) const +{ + QAbstractItemModel::multiData(index, roleDataSpan); +} + +/*! + \reimp +*/ +QHash QGenericItemModel::roleNames() const +{ + return QAbstractItemModel::roleNames(); +} + +/*! + \reimp +*/ +void QGenericItemModel::sort(int column, Qt::SortOrder order) +{ + return QAbstractItemModel::sort(column, order); +} + +/*! + \reimp +*/ +QSize QGenericItemModel::span(const QModelIndex &index) const +{ + return QAbstractItemModel::span(index); +} + +/*! + \reimp +*/ +Qt::DropActions QGenericItemModel::supportedDragActions() const +{ + return QAbstractItemModel::supportedDragActions(); +} + +/*! + \reimp +*/ +Qt::DropActions QGenericItemModel::supportedDropActions() const +{ + return QAbstractItemModel::supportedDropActions(); +} + +/*! + \reimp +*/ +void QGenericItemModel::resetInternalData() +{ + QAbstractItemModel::resetInternalData(); +} + +/*! + \reimp +*/ +bool QGenericItemModel::event(QEvent *event) +{ + return QAbstractItemModel::event(event); +} + +/*! + \reimp +*/ +bool QGenericItemModel::eventFilter(QObject *object, QEvent *event) +{ + return QAbstractItemModel::eventFilter(object, event); +} + QT_END_NAMESPACE #include "moc_qgenericitemmodel.cpp" diff --git a/src/corelib/itemmodels/qgenericitemmodel.h b/src/corelib/itemmodels/qgenericitemmodel.h index 9f6b01ab66e..447cd89da84 100644 --- a/src/corelib/itemmodels/qgenericitemmodel.h +++ b/src/corelib/itemmodels/qgenericitemmodel.h @@ -75,6 +75,33 @@ public: bool moveRows(const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destParent, int destRow) override; + bool canFetchMore(const QModelIndex &parent) const override; + void fetchMore(const QModelIndex &parent) override; + + bool hasChildren(const QModelIndex &parent = QModelIndex()) const override; + QModelIndex buddy(const QModelIndex &index) const override; + bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, + const QModelIndex &parent) const override; + bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, + const QModelIndex &parent) override; + QMimeData *mimeData(const QModelIndexList &indexes) const override; + QStringList mimeTypes() const override; + QModelIndexList match(const QModelIndex &start, int role, const QVariant &value, int hits, + Qt::MatchFlags flags) const override; + void multiData(const QModelIndex &index, QModelRoleDataSpan roleDataSpan) const override; + QHash roleNames() const override; + void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override; + QSize span(const QModelIndex &index) const override; + Qt::DropActions supportedDragActions() const override; + Qt::DropActions supportedDropActions() const override; + +protected Q_SLOTS: + void resetInternalData() override; + +protected: + bool event(QEvent *) override; + bool eventFilter(QObject *, QEvent *) override; + private: Q_DISABLE_COPY_MOVE(QGenericItemModel)