13 #include <QAbstractProxyModel>
14 #include <QStringList>
36 mutable bool DefaultAcceptsRowImpl_ =
false;
45 QStack<std::function<void ()>> RemovalRefreshers_;
57 explicit MergeModel (QStringList headers, QObject *parent =
nullptr);
59 int columnCount (
const QModelIndex& = QModelIndex ())
const override;
60 QVariant headerData (
int, Qt::Orientation,
int = Qt::DisplayRole)
const override;
61 QVariant data (
const QModelIndex&,
int = Qt::DisplayRole)
const override;
62 Qt::ItemFlags flags (
const QModelIndex&)
const override;
63 QModelIndex index (
int,
int,
const QModelIndex& = QModelIndex ())
const override;
64 QModelIndex parent (
const QModelIndex&)
const override;
65 int rowCount (
const QModelIndex& = QModelIndex ())
const override;
71 QStringList mimeTypes ()
const override;
83 QMimeData* mimeData (
const QModelIndexList& indices)
const override;
91 virtual QModelIndex mapFromSource (
const QModelIndex& index)
const;
99 virtual QModelIndex mapToSource (
const QModelIndex& index)
const;
109 virtual void setSourceModel (QAbstractItemModel*);
115 void SetHeaders (
const QStringList& headers);
129 void AddModel (QAbstractItemModel *model);
137 void RemoveModel (QAbstractItemModel *model);
143 size_t Size ()
const;
159 iterator FindModel (
const QAbstractItemModel *model);
200 const_iterator GetModelForRow (
int row,
int *starting =
nullptr)
const;
213 iterator GetModelForRow (
int row,
int *starting =
nullptr);
225 virtual void HandleRowsAboutToBeInserted (QAbstractItemModel*,
const QModelIndex&,
int,
int);
226 virtual void HandleRowsAboutToBeRemoved (QAbstractItemModel*,
const QModelIndex&,
int,
int);
227 virtual void HandleRowsInserted (QAbstractItemModel*,
const QModelIndex&,
int,
int);
228 virtual void HandleRowsRemoved (QAbstractItemModel*,
const QModelIndex&,
int,
int);
229 virtual void HandleModelAboutToBeReset (QAbstractItemModel*);
230 virtual void HandleModelReset (QAbstractItemModel*);
244 virtual bool AcceptsRow (QAbstractItemModel *model,
int row)
const;
246 int RowCount (QAbstractItemModel*)
const;