QGIS API Documentation  master-59fd5e0
QgsLegendModel Class Reference

A model that provides group, layer and classification items. More...

#include <qgslegendmodel.h>

List of all members.

Public Types

enum  ItemType { GroupItem = 0, LayerItem, ClassificationItem }

Public Slots

void addLayer (QgsMapLayer *theMapLayer)
void removeLayer (const QString &layerId)

Signals

void layersChanged ()

Public Member Functions

 QgsLegendModel ()
 ~QgsLegendModel ()
QStandardItem * addGroup (QString text=QString::null, int position=-1)
 Adds a group.
bool autoUpdate ()
bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
 Implements the drop operation.
Qt::ItemFlags flags (const QModelIndex &index) const
QMimeData * mimeData (const QModelIndexList &indexes) const
 For the drag operation.
QStringList mimeTypes () const
bool readXML (const QDomElement &legendModelElem, const QDomDocument &doc)
virtual bool removeRows (int row, int count, const QModelIndex &parent=QModelIndex())
 Implemented to support drag operations.
void setAutoUpdate (bool autoUpdate)
void setLayerSet (const QStringList &layerIds)
void setLayerSetAndGroups (const QStringList &layerIds, const QList< GroupLayerInfo > &groupInfo)
 Sets layer set and groups.
Qt::DropActions supportedDropActions () const
void updateItem (QStandardItem *item)
 Tries to automatically update a model entry (e.g.
void updateItemText (QStandardItem *item)
 Update single item text using item userText and other properties like showFeatureCount.
void updateLayer (QStandardItem *layerItem)
 Updates the whole symbology of a layer.
void updateRasterClassificationItem (QStandardItem *classificationItem)
void updateVectorV2ClassificationItem (QStandardItem *classificationItem, QgsSymbolV2 *symbol, QString itemText)
 Tries to update a single classification item.
bool writeXML (QDomElement &composerLegendElem, QDomDocument &doc) const

Protected Attributes

bool mAutoUpdate
 True if the legend is auto updated when layers are added or removed from the map canvas.
bool mHasTopLevelWindow
 True if this application has toplevel windows (normally true).
QStringList mLayerIds

Private Member Functions

int addRasterLayerItems (QStandardItem *layerItem, QgsMapLayer *rlayer)
 Adds item of raster layer.
int addVectorLayerItemsV2 (QStandardItem *layerItem, QgsVectorLayer *vlayer)
 Adds classification items of vector layers using new symbology.
void updateLayerItemText (QStandardItem *layerItem)
void updateRasterSymbolItemText (QStandardItem *symbolItem)
void updateSymbolV2ItemText (QStandardItem *symbolItem)

Detailed Description

A model that provides group, layer and classification items.

Definition at line 39 of file qgslegendmodel.h.


Member Enumeration Documentation

Enumerator:
GroupItem 
LayerItem 
ClassificationItem 

Definition at line 45 of file qgslegendmodel.h.


Constructor & Destructor Documentation

Definition at line 49 of file qgslegendmodel.cpp.


Member Function Documentation

QStandardItem * QgsLegendModel::addGroup ( QString  text = QString::null,
int  position = -1 
)

Adds a group.

Parameters:
textname of group (defaults to translation of "Group")
positioninsertion position (toplevel position (or -1 if it should be placed at the end of the legend).
Returns:
a pointer to the added group

Definition at line 118 of file qgslegendmodel.cpp.

References layersChanged(), QgsComposerLegendItem::setUserText(), and tr.

Referenced by setLayerSetAndGroups().

bool QgsLegendModel::autoUpdate ( ) [inline]

Definition at line 96 of file qgslegendmodel.h.

Referenced by setAutoUpdate().

bool QgsLegendModel::dropMimeData ( const QMimeData *  data,
Qt::DropAction  action,
int  row,
int  column,
const QModelIndex &  parent 
)

Implements the drop operation.

Definition at line 664 of file qgslegendmodel.cpp.

References layersChanged(), and QgsComposerLegendItem::readXML().

Qt::ItemFlags QgsLegendModel::flags ( const QModelIndex &  index) const
QMimeData * QgsLegendModel::mimeData ( const QModelIndexList &  indexes) const

For the drag operation.

Definition at line 632 of file qgslegendmodel.cpp.

References QgsComposerLegendItem::writeXML().

QStringList QgsLegendModel::mimeTypes ( ) const

Definition at line 657 of file qgslegendmodel.cpp.

bool QgsLegendModel::readXML ( const QDomElement &  legendModelElem,
const QDomDocument &  doc 
)
void QgsLegendModel::removeLayer ( const QString &  layerId) [slot]

Definition at line 415 of file qgslegendmodel.cpp.

References QgsComposerLayerItem::layerID(), and layersChanged().

Referenced by QgsLegendModel(), and setAutoUpdate().

bool QgsLegendModel::removeRows ( int  row,
int  count,
const QModelIndex &  parent = QModelIndex() 
) [virtual]

Implemented to support drag operations.

Definition at line 604 of file qgslegendmodel.cpp.

void QgsLegendModel::setAutoUpdate ( bool  autoUpdate)

Definition at line 739 of file qgslegendmodel.cpp.

References addLayer(), autoUpdate(), QgsMapLayerRegistry::instance(), mAutoUpdate, and removeLayer().

Referenced by readXML().

void QgsLegendModel::setLayerSetAndGroups ( const QStringList &  layerIds,
const QList< GroupLayerInfo > &  groupInfo 
)

Sets layer set and groups.

Definition at line 53 of file qgslegendmodel.cpp.

References addGroup(), QgsComposerLayerItem::layerID(), and setLayerSet().

Qt::DropActions QgsLegendModel::supportedDropActions ( ) const

Definition at line 548 of file qgslegendmodel.cpp.

void QgsLegendModel::updateItem ( QStandardItem *  item)

Tries to automatically update a model entry (e.g.

a whole layer or only a single item)

Definition at line 308 of file qgslegendmodel.cpp.

References QgsComposerLegendItem::itemType(), QgsComposerLegendItem::LayerItem, and updateLayer().

void QgsLegendModel::updateItemText ( QStandardItem *  item)

Update single item text using item userText and other properties like showFeatureCount.

Definition at line 329 of file qgslegendmodel.cpp.

References updateLayerItemText(), updateRasterSymbolItemText(), updateSymbolV2ItemText(), and QgsComposerLegendItem::userText().

void QgsLegendModel::updateLayer ( QStandardItem *  layerItem)
void QgsLegendModel::updateRasterClassificationItem ( QStandardItem *  classificationItem) [inline]

Definition at line 72 of file qgslegendmodel.h.

void QgsLegendModel::updateVectorV2ClassificationItem ( QStandardItem *  classificationItem,
QgsSymbolV2 symbol,
QString  itemText 
) [inline]

Tries to update a single classification item.

Definition at line 70 of file qgslegendmodel.h.

bool QgsLegendModel::writeXML ( QDomElement &  composerLegendElem,
QDomDocument &  doc 
) const

Definition at line 477 of file qgslegendmodel.cpp.

References mAutoUpdate, and QgsComposerLegendItem::writeXML().

Referenced by QgsComposerLegend::writeXML().


Member Data Documentation

bool QgsLegendModel::mAutoUpdate [protected]

True if the legend is auto updated when layers are added or removed from the map canvas.

Definition at line 125 of file qgslegendmodel.h.

Referenced by setAutoUpdate(), and writeXML().

True if this application has toplevel windows (normally true).

If this is false, this means that the application might not have a running x-server on unix systems and so QPixmap and QIcon cannot be used

Definition at line 122 of file qgslegendmodel.h.

Referenced by addRasterLayerItems(), addVectorLayerItemsV2(), QgsLegendModel(), and readXML().

QStringList QgsLegendModel::mLayerIds [protected]

Definition at line 119 of file qgslegendmodel.h.

Referenced by setLayerSet().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines