LeechCraft  0.6.70-13729-g7046a9d2a7
Modular cross-platform feature rich live environment.
LC::Util::FlattenFilterModel Class Reference

Proxy model flattening a hierarchical model. More...

#include "flattenfiltermodel.h"

+ Inheritance diagram for LC::Util::FlattenFilterModel:
+ Collaboration diagram for LC::Util::FlattenFilterModel:

Public Member Functions

 FlattenFilterModel (QObject *parent=0)
 Constructs the model with the given parent. More...
 
QModelIndex index (int, int, const QModelIndex &=QModelIndex()) const
 Reimplemented from QAbstractItemModel. More...
 
QModelIndex parent (const QModelIndex &) const
 Reimplemented from QAbstractItemModel. More...
 
int rowCount (const QModelIndex &parent=QModelIndex()) const
 Reimplemented from QAbstractItemModel. More...
 
int columnCount (const QModelIndex &parent=QModelIndex()) const
 Reimplemented from QAbstractItemModel. More...
 
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const
 Reimplemented from QAbstractItemModel. More...
 
void SetSource (QAbstractItemModel *model)
 Sets the source model to model. More...
 

Protected Member Functions

virtual bool IsIndexAccepted (const QModelIndex &index) const
 Checks whether the given index should be included in the model. More...
 

Protected Attributes

QAbstractItemModel * Source_
 
QList< QPersistentModelIndex > SourceIndexes_
 

Detailed Description

Proxy model flattening a hierarchical model.

This model takes another model and folds its structure into a flat model, possibly filtering out some rows (via the IsIndexAccepted() method).

Since this model changes the structure of the source model quite a lot, it doesn't derive from QAbstractProxyModel.

Definition at line 50 of file flattenfiltermodel.h.

Constructor & Destructor Documentation

◆ FlattenFilterModel()

LC::Util::FlattenFilterModel::FlattenFilterModel ( QObject *  parent = 0)

Constructs the model with the given parent.

Parameters
[in]parentThe parent object of this model.

Definition at line 36 of file flattenfiltermodel.cpp.

Member Function Documentation

◆ columnCount()

int LC::Util::FlattenFilterModel::columnCount ( const QModelIndex &  parent = QModelIndex()) const

Reimplemented from QAbstractItemModel.

Definition at line 60 of file flattenfiltermodel.cpp.

References parent().

+ Here is the call graph for this function:

◆ data()

QVariant LC::Util::FlattenFilterModel::data ( const QModelIndex &  index,
int  role = Qt::DisplayRole 
) const

Reimplemented from QAbstractItemModel.

Definition at line 65 of file flattenfiltermodel.cpp.

References index(), and SourceIndexes_.

+ Here is the call graph for this function:

◆ index()

QModelIndex LC::Util::FlattenFilterModel::index ( int  row,
int  column,
const QModelIndex &  parent = QModelIndex () 
) const

Reimplemented from QAbstractItemModel.

Definition at line 42 of file flattenfiltermodel.cpp.

References parent().

Referenced by data().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsIndexAccepted()

bool LC::Util::FlattenFilterModel::IsIndexAccepted ( const QModelIndex &  index) const
protectedvirtual

Checks whether the given index should be included in the model.

Reimplement this function in derived classes to provide filtering capabilities akin to QSortFilterProxyModel.

The children of the index will be checked even if this function returns false for index.

Note
The model operates on rows: that is, only the first column is checked, and index.column() == 0 will always hold.

The default implementation simply returns true.

Parameters
[in]indexThe index of the source model to check.
Returns
Whether the index should be included in the resulting model.

Definition at line 106 of file flattenfiltermodel.cpp.

◆ parent()

QModelIndex LC::Util::FlattenFilterModel::parent ( const QModelIndex &  ) const

Reimplemented from QAbstractItemModel.

Definition at line 50 of file flattenfiltermodel.cpp.

Referenced by columnCount(), index(), and rowCount().

+ Here is the caller graph for this function:

◆ rowCount()

int LC::Util::FlattenFilterModel::rowCount ( const QModelIndex &  parent = QModelIndex()) const

Reimplemented from QAbstractItemModel.

Definition at line 55 of file flattenfiltermodel.cpp.

References parent(), and SourceIndexes_.

+ Here is the call graph for this function:

◆ SetSource()

void LC::Util::FlattenFilterModel::SetSource ( QAbstractItemModel *  model)

Sets the source model to model.

If another source model has been set already, this function rebuilds the whole model, effectively resetting it.

Parameters
[in]modelThe new source model.

Definition at line 70 of file flattenfiltermodel.cpp.

References Source_, and SourceIndexes_.

Member Data Documentation

◆ Source_

QAbstractItemModel* LC::Util::FlattenFilterModel::Source_
protected

Definition at line 54 of file flattenfiltermodel.h.

Referenced by SetSource().

◆ SourceIndexes_

QList<QPersistentModelIndex> LC::Util::FlattenFilterModel::SourceIndexes_
protected

Definition at line 55 of file flattenfiltermodel.h.

Referenced by data(), rowCount(), and SetSource().


The documentation for this class was generated from the following files: