12 #include <QAbstractItemModel>
13 #include <QStringList>
26 QAbstractItemModel *SourceModel_ =
nullptr;
31 QMultiHash<QPersistentModelIndex, FlatTreeItem_ptr>
Items_;
35 int columnCount (
const QModelIndex& = {})
const override;
36 QVariant data (
const QModelIndex&,
int = Qt::DisplayRole)
const override;
37 QVariant headerData (
int, Qt::Orientation,
int)
const override;
38 Qt::ItemFlags flags (
const QModelIndex&)
const override;
39 QModelIndex index (
int,
int,
const QModelIndex& = {})
const override;
40 QModelIndex parent (
const QModelIndex&)
const override;
41 int rowCount (
const QModelIndex& = {})
const override;
43 Qt::DropActions supportedDropActions ()
const override;
44 QStringList mimeTypes ()
const override;
45 QMimeData* mimeData (
const QModelIndexList& indexes)
const override;
46 bool dropMimeData (
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex& parent)
override;
48 void SetSourceModel (QAbstractItemModel*);
49 QAbstractItemModel* GetSourceModel ()
const;
50 QModelIndex MapToSource (
const QModelIndex&)
const;
53 const FlatTreeItem& ToFlatOrRoot (
const QModelIndex&)
const;
55 void HandleRowInserted (
int);
56 void HandleRowRemoved (
int);
57 void AddForTag (
const QString&,
const QPersistentModelIndex&);
58 void RemoveFromTag (
const QString&,
const QPersistentModelIndex&);
59 void HandleChanged (
const QModelIndex&);
64 void HandleDataChanged (
const QModelIndex&,
const QModelIndex&);
65 void HandleModelReset ();
66 void HandleRowsInserted (
const QModelIndex&,
int,
int);
67 void HandleRowsAboutToBeRemoved (
const QModelIndex&,
int,
int);