30 #ifndef UTIL_FLATTOFOLDERSPROXYMODEL_H
31 #define UTIL_FLATTOFOLDERSPROXYMODEL_H
33 #include <QAbstractItemModel>
34 #include <QStringList>
51 QAbstractItemModel *SourceModel_;
56 QMultiHash<QPersistentModelIndex, FlatTreeItem_ptr> Items_;
62 int columnCount (
const QModelIndex& = QModelIndex ())
const;
63 QVariant data (
const QModelIndex&,
int = Qt::DisplayRole)
const;
64 QVariant headerData (
int, Qt::Orientation,
int)
const;
65 Qt::ItemFlags flags (
const QModelIndex&)
const;
66 QModelIndex index (
int,
int,
const QModelIndex& = QModelIndex ())
const;
67 QModelIndex parent (
const QModelIndex&)
const;
68 int rowCount (
const QModelIndex& = QModelIndex ())
const;
70 Qt::DropActions supportedDropActions ()
const;
71 QStringList mimeTypes ()
const;
72 QMimeData* mimeData (
const QModelIndexList& indexes)
const;
73 bool dropMimeData (
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex& parent);
75 void SetSourceModel (QAbstractItemModel*);
76 QAbstractItemModel* GetSourceModel ()
const;
77 QModelIndex MapToSource (
const QModelIndex&)
const;
78 QList<QModelIndex> MapFromSource (
const QModelIndex&)
const;
80 void HandleRowInserted (
int);
81 void HandleRowRemoved (
int);
82 void AddForTag (
const QString&,
const QPersistentModelIndex&);
83 void RemoveFromTag (
const QString&,
const QPersistentModelIndex&);
84 void HandleChanged (
const QModelIndex&);
87 void handleDataChanged (
const QModelIndex&,
const QModelIndex&);
88 void handleModelReset ();
89 void handleRowsInserted (
const QModelIndex&,
int,
int);
90 void handleRowsAboutToBeRemoved (
const QModelIndex&,
int,
int);
std::shared_ptr< FlatTreeItem > FlatTreeItem_ptr