2014-03-24 22:53:10 +01:00
|
|
|
/**
|
|
|
|
* @brief The QgsMapLayerProxModel class provides an easy to use model to display the list of layers in widgets.
|
|
|
|
* @note added in 2.3
|
|
|
|
*/
|
|
|
|
class QgsMapLayerProxyModel : QSortFilterProxyModel
|
|
|
|
{
|
|
|
|
|
|
|
|
%TypeHeaderCode
|
|
|
|
#include "qgsmaplayerproxymodel.h"
|
|
|
|
%End
|
|
|
|
|
|
|
|
public:
|
|
|
|
enum Filter
|
|
|
|
{
|
2014-05-27 23:22:50 +02:00
|
|
|
RasterLayer,
|
|
|
|
NoGeometry,
|
|
|
|
PointLayer,
|
|
|
|
LineLayer,
|
|
|
|
PolygonLayer,
|
|
|
|
HasGeometry,
|
|
|
|
VectorLayer,
|
|
|
|
PluginLayer,
|
|
|
|
All
|
2014-03-24 22:53:10 +01:00
|
|
|
};
|
|
|
|
typedef QFlags<QgsMapLayerProxyModel::Filter> Filters;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief QgsMapLayerProxModel creates a proxy model with a QgsMapLayerModel as source model.
|
|
|
|
* It can be used to filter the layers list in a widget.
|
|
|
|
*/
|
|
|
|
explicit QgsMapLayerProxyModel( QObject *parent /TransferThis/ = 0 );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief layerModel returns the QgsMapLayerModel used in this QSortFilterProxyModel
|
|
|
|
*/
|
2014-05-27 23:22:50 +02:00
|
|
|
QgsMapLayerModel* sourceLayerModel();
|
2014-03-24 22:53:10 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief setFilters set flags that affect how layers are filtered
|
|
|
|
* @param filters are Filter flags
|
|
|
|
* @note added in 2.3
|
|
|
|
*/
|
|
|
|
QgsMapLayerProxyModel* setFilters( Filters filters );
|
2014-05-27 23:22:50 +02:00
|
|
|
const Filters& filters() const;
|
2014-03-24 22:53:10 +01:00
|
|
|
|
|
|
|
// QSortFilterProxyModel interface
|
|
|
|
public:
|
|
|
|
bool filterAcceptsRow( int source_row, const QModelIndex &source_parent ) const;
|
|
|
|
bool lessThan( const QModelIndex &left, const QModelIndex &right ) const;
|
|
|
|
};
|
|
|
|
|