30 #ifndef UTIL_MERGEMODEL_H
31 #define UTIL_MERGEMODEL_H
34 #include <QAbstractProxyModel>
35 #include <QStringList>
57 mutable bool DefaultAcceptsRowImpl_;
59 typedef std::deque<QPointer<QAbstractItemModel>>
models_t;
70 virtual int columnCount (
const QModelIndex& = QModelIndex ())
const;
71 virtual QVariant headerData (
int, Qt::Orientation,
int = Qt::DisplayRole)
const;
72 virtual QVariant data (
const QModelIndex&,
int = Qt::DisplayRole)
const;
73 virtual Qt::ItemFlags flags (
const QModelIndex&)
const;
74 virtual QModelIndex index (
int,
int,
const QModelIndex& = QModelIndex ())
const;
75 virtual QModelIndex parent (
const QModelIndex&)
const;
76 virtual int rowCount (
const QModelIndex& = QModelIndex ())
const;
84 virtual QModelIndex mapFromSource (
const QModelIndex& index)
const;
92 virtual QModelIndex mapToSource (
const QModelIndex& index)
const;
102 virtual void setSourceModel (QAbstractItemModel*);
108 void SetHeaders (
const QStringList& headers);
121 void AddModel (QAbstractItemModel *model);
128 void RemoveModel (QAbstractItemModel *model);
134 size_t Size ()
const;
150 iterator FindModel (
const QAbstractItemModel *model);
189 iterator GetModelForRow (
int row,
int *starting = 0);
199 QList<QAbstractItemModel*> GetAllModels ()
const;
201 virtual void handleColumnsAboutToBeInserted (
const QModelIndex&,
int,
int);
202 virtual void handleColumnsAboutToBeRemoved (
const QModelIndex&,
int,
int);
203 virtual void handleColumnsInserted (
const QModelIndex&,
int,
int);
204 virtual void handleColumnsRemoved (
const QModelIndex&,
int,
int);
205 virtual void handleDataChanged (
const QModelIndex&,
const QModelIndex&);
206 virtual void handleRowsAboutToBeInserted (
const QModelIndex&,
int,
int);
207 virtual void handleRowsAboutToBeRemoved (
const QModelIndex&,
int,
int);
208 virtual void handleRowsInserted (
const QModelIndex&,
int,
int);
209 virtual void handleRowsRemoved (
const QModelIndex&,
int,
int);
217 virtual bool AcceptsRow (QAbstractItemModel *model,
int row)
const;
219 int RowCount (QAbstractItemModel*)
const;
models_t::const_iterator const_iterator
models_t::iterator iterator
std::deque< QPointer< QAbstractItemModel > > models_t