4#ifndef QCONCATENATEROWSPROXYMODEL_H
5#define QCONCATENATEROWSPROXYMODEL_H
7#include <QtCore/qabstractitemmodel.h>
13class QConcatenateTablesProxyModelPrivate;
20 explicit QConcatenateTablesProxyModel(QObject *parent =
nullptr);
21 ~QConcatenateTablesProxyModel();
23 QList<QAbstractItemModel *> sourceModels()
const;
24 Q_SCRIPTABLE
void addSourceModel(QAbstractItemModel *sourceModel);
25 Q_SCRIPTABLE
void removeSourceModel(QAbstractItemModel *sourceModel);
27 QModelIndex mapFromSource(
const QModelIndex &sourceIndex)
const;
28 QModelIndex mapToSource(
const QModelIndex &proxyIndex)
const;
30 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const override;
31 bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole) override;
32 QMap<
int, QVariant> itemData(
const QModelIndex &proxyIndex)
const override;
33 bool setItemData(
const QModelIndex &index,
const QMap<
int, QVariant> &roles) override;
34 Qt::ItemFlags flags(
const QModelIndex &index)
const override;
35 QModelIndex index(
int row,
int column,
const QModelIndex &parent = QModelIndex())
const override;
36 QModelIndex parent(
const QModelIndex &index)
const override;
37 int rowCount(
const QModelIndex &parent = QModelIndex())
const override;
38 QVariant headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole)
const override;
39 int columnCount(
const QModelIndex &parent = QModelIndex())
const override;
40 QStringList mimeTypes()
const override;
41 QMimeData *mimeData(
const QModelIndexList &indexes)
const override;
42 bool canDropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex &parent)
const override;
43 bool dropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex &parent) override;
44 QSize span(
const QModelIndex &index)
const override;
45 QHash<
int, QByteArray> roleNames()
const override;
48 Q_DECLARE_PRIVATE(QConcatenateTablesProxyModel)
49 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
QList< QPersistentModelIndex > layoutChangePersistentIndexes
void slotRowsRemoved(const QModelIndex &, int start, int end)
The QConcatenateTablesProxyModel class proxies multiple source models, concatenating their rows.
Combined button and popup list for selecting options.
QT_REQUIRE_CONFIG(concatenatetablesproxymodel)
QAbstractItemModel * model
ModelInfo(QAbstractItemModel *m, ConnArray &&con)
SourceModelForRowResult()
QAbstractItemModel * sourceModel