5#ifndef QCONCATENATEROWSPROXYMODEL_H
6#define QCONCATENATEROWSPROXYMODEL_H
8#include <QtCore/qabstractitemmodel.h>
14class QConcatenateTablesProxyModelPrivate;
21 explicit QConcatenateTablesProxyModel(QObject *parent =
nullptr);
22 ~QConcatenateTablesProxyModel();
24 QList<QAbstractItemModel *> sourceModels()
const;
25 Q_SCRIPTABLE
void addSourceModel(QAbstractItemModel *sourceModel);
26 Q_SCRIPTABLE
void removeSourceModel(QAbstractItemModel *sourceModel);
28 Q_INVOKABLE Q_REVISION(6, 11) QModelIndex mapFromSource(
const QModelIndex &sourceIndex)
const;
29 Q_INVOKABLE Q_REVISION(6, 11) QModelIndex mapToSource(
const QModelIndex &proxyIndex)
const;
31 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const override;
32 bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole) override;
33 QMap<
int, QVariant> itemData(
const QModelIndex &proxyIndex)
const override;
34 bool setItemData(
const QModelIndex &index,
const QMap<
int, QVariant> &roles) override;
35 Qt::ItemFlags flags(
const QModelIndex &index)
const override;
36 QModelIndex index(
int row,
int column,
const QModelIndex &parent = QModelIndex())
const override;
37 QModelIndex parent(
const QModelIndex &index)
const override;
38 int rowCount(
const QModelIndex &parent = QModelIndex())
const override;
39 QVariant headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole)
const override;
40 int columnCount(
const QModelIndex &parent = QModelIndex())
const override;
41 QStringList mimeTypes()
const override;
42 QMimeData *mimeData(
const QModelIndexList &indexes)
const override;
43 bool canDropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex &parent)
const override;
44 bool dropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex &parent) override;
45 QSize span(
const QModelIndex &index)
const override;
46 QHash<
int, QByteArray> roleNames()
const override;
49 Q_DECLARE_PRIVATE(QConcatenateTablesProxyModel)
50 Q_DISABLE_COPY(QConcatenateTablesProxyModel)
QConcatenateTablesProxyModelPrivate()
void slotSourceLayoutAboutToBeChanged(const QList< QPersistentModelIndex > &sourceParents, QAbstractItemModel::LayoutChangeHint hint)
QList< ModelInfo > m_models
bool containsSourceModel(const QAbstractItemModel *m) const
void slotRowsAboutToBeRemoved(const QModelIndex &, int start, int end)
void slotDataChanged(const QModelIndex &from, const QModelIndex &to, const QList< int > &roles)
SourceModelForRowResult sourceModelForRow(int row) const
void slotColumnsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
QList< ModelInfo >::const_iterator findSourceModel(const QAbstractItemModel *m) const
void slotColumnsRemoved(const QModelIndex &parent, int, int)
int columnCountAfterChange(const QAbstractItemModel *model, int newCount) const
void slotRowsAboutToBeInserted(const QModelIndex &, int start, int end)
void slotColumnsAboutToBeMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destination)
bool mapDropCoordinatesToSource(int row, int column, const QModelIndex &parent, int *sourceRow, int *sourceColumn, QModelIndex *sourceParent, QAbstractItemModel **sourceModel) const
void slotColumnsAboutToBeInserted(const QModelIndex &parent, int start, int end)
void slotRowsInserted(const QModelIndex &, int start, int end)
void slotColumnsInserted(const QModelIndex &parent, int, int)
void slotRowsMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow)
void slotModelAboutToBeReset()
QList< QModelIndex > layoutChangeProxyIndexes
void slotColumnsMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destination)
void slotSourceLayoutChanged(const QList< QPersistentModelIndex > &sourceParents, QAbstractItemModel::LayoutChangeHint hint)
void slotRowsAboutToBeMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow)
int computeRowsPrior(const QAbstractItemModel *sourceModel) const
int calculatedColumnCount() const
QHash< int, QByteArray > m_roleNames
QList< QPersistentModelIndex > layoutChangePersistentIndexes
void slotRowsRemoved(const QModelIndex &, int start, int end)
The QConcatenateTablesProxyModel class proxies multiple source models, concatenating their rows.
QT_REQUIRE_CONFIG(concatenatetablesproxymodel)
QAbstractItemModel * model
ModelInfo(QAbstractItemModel *m, ConnArray &&con)
SourceModelForRowResult()
QAbstractItemModel * sourceModel