QGIS API Documentation
2.2.0-Valmiera
|
A model that provides group, layer and classification items. More...
#include <qgslegendmodel.h>
Public Types | |
enum | ItemType { GroupItem = 0, LayerItem, ClassificationItem } |
Public Slots | |
void | removeLayer (const QString &layerId) |
void | addLayer (QgsMapLayer *theMapLayer, double scaleDenominator=-1, QString rule="") |
Signals | |
void | layersChanged () |
Public Member Functions | |
QgsLegendModel () | |
~QgsLegendModel () | |
void | setLayerSetAndGroups (const QStringList &layerIds, const QList< GroupLayerInfo > &groupInfo) |
Sets layer set and groups. | |
void | setLayerSet (const QStringList &layerIds, double scaleDenominator=-1, QString rule="") |
QStandardItem * | addGroup (QString text=QString::null, int position=-1) |
Adds a group. | |
void | updateItem (QStandardItem *item) |
Tries to automatically update a model entry (e.g. | |
void | updateLayer (QStandardItem *layerItem) |
Updates the whole symbology of a layer. | |
void | updateVectorV2ClassificationItem (QStandardItem *classificationItem, QgsSymbolV2 *symbol, QString itemText) |
Tries to update a single classification item. | |
void | updateRasterClassificationItem (QStandardItem *classificationItem) |
void | updateItemText (QStandardItem *item) |
Update single item text using item userText and other properties like showFeatureCount. | |
bool | writeXML (QDomElement &composerLegendElem, QDomDocument &doc) const |
bool | readXML (const QDomElement &legendModelElem, const QDomDocument &doc) |
Qt::DropActions | supportedDropActions () const |
Qt::ItemFlags | flags (const QModelIndex &index) const |
virtual bool | removeRows (int row, int count, const QModelIndex &parent=QModelIndex()) |
Implemented to support drag operations. | |
QMimeData * | mimeData (const QModelIndexList &indexes) const |
For the drag operation. | |
QStringList | mimeTypes () const |
bool | dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) |
Implements the drop operation. | |
void | setAutoUpdate (bool autoUpdate) |
bool | autoUpdate () |
Protected Attributes | |
QStringList | mLayerIds |
bool | mHasTopLevelWindow |
True if this application has toplevel windows (normally true). | |
bool | mAutoUpdate |
True if the legend is auto updated when layers are added or removed from the map canvas. |
Private Member Functions | |
int | addVectorLayerItemsV2 (QStandardItem *layerItem, QgsVectorLayer *vlayer, double scaleDenominator=-1, QString rule="") |
Adds classification items of vector layers using new symbology. | |
int | addRasterLayerItems (QStandardItem *layerItem, QgsMapLayer *rlayer) |
Adds item of raster layer. | |
void | updateLayerItemText (QStandardItem *layerItem) |
void | updateSymbolV2ItemText (QStandardItem *symbolItem) |
void | updateRasterSymbolItemText (QStandardItem *symbolItem) |
A model that provides group, layer and classification items.
Definition at line 39 of file qgslegendmodel.h.
Definition at line 45 of file qgslegendmodel.h.
QgsLegendModel::QgsLegendModel | ( | ) |
Definition at line 35 of file qgslegendmodel.cpp.
References addLayer(), QgsMapLayerRegistry::instance(), mHasTopLevelWindow, and removeLayer().
QgsLegendModel::~QgsLegendModel | ( | ) |
Definition at line 49 of file qgslegendmodel.cpp.
QStandardItem * QgsLegendModel::addGroup | ( | QString | text = QString::null , |
int | position = -1 |
||
) |
Adds a group.
text | name of group (defaults to translation of "Group") |
position | insertion position (toplevel position (or -1 if it should be placed at the end of the legend). |
Definition at line 118 of file qgslegendmodel.cpp.
References layersChanged(), QgsComposerLegendItem::setUserText(), and tr.
Referenced by setLayerSetAndGroups().
|
slot |
Definition at line 506 of file qgslegendmodel.cpp.
References addRasterLayerItems(), addVectorLayerItemsV2(), QgsMapLayer::id(), layersChanged(), QgsMapLayer::name(), QgsMapLayer::RasterLayer, QgsComposerLayerItem::setDefaultStyle(), QgsComposerLayerItem::setLayerID(), QgsComposerLegendItem::setUserText(), QgsMapLayer::title(), QgsMapLayer::type(), and QgsMapLayer::VectorLayer.
Referenced by QgsLegendModel(), setAutoUpdate(), and setLayerSet().
|
private |
Adds item of raster layer.
Definition at line 219 of file qgslegendmodel.cpp.
References QgsRasterLayer::dataProvider(), QgsRasterDataProvider::getLegendGraphic(), QgsMapLayer::id(), QgsRasterLayer::legendSymbologyItems(), mHasTopLevelWindow, QgsRasterLayer::providerType(), QgsDebugMsg, QgsComposerRasterSymbolItem::setColor(), QgsComposerRasterSymbolItem::setLayerID(), QgsComposerLegendItem::setUserText(), tr, and QgsComposerLegendItem::userText().
Referenced by addLayer(), and updateLayer().
|
private |
Adds classification items of vector layers using new symbology.
Definition at line 138 of file qgslegendmodel.cpp.
References QgsVectorLayer::countSymbolFeatures(), QgsFeatureRendererV2::legendSymbolItems(), mHasTopLevelWindow, QgsDebugMsg, QgsVectorLayer::rendererV2(), QgsComposerSymbolV2Item::setSymbolV2(), QgsComposerLegendItem::setUserText(), QgsComposerLayerItem::showFeatureCount(), QgsSymbolLayerV2Utils::symbolPreviewIcon(), updateSymbolV2ItemText(), and QgsComposerLegendItem::userText().
Referenced by addLayer(), updateLayer(), and updateLayerItemText().
|
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 735 of file qgslegendmodel.cpp.
References index, layersChanged(), and QgsComposerLegendItem::readXML().
Qt::ItemFlags QgsLegendModel::flags | ( | const QModelIndex & | index | ) | const |
Definition at line 624 of file qgslegendmodel.cpp.
References QgsComposerLegendItem::GroupItem, QgsComposerLegendItem::itemType(), QgsComposerLegendItem::LayerItem, and LayerItem.
|
signal |
Referenced by addGroup(), addLayer(), dropMimeData(), and removeLayer().
QMimeData * QgsLegendModel::mimeData | ( | const QModelIndexList & | indexes | ) | const |
For the drag operation.
Definition at line 703 of file qgslegendmodel.cpp.
References QgsComposerLegendItem::writeXML().
QStringList QgsLegendModel::mimeTypes | ( | ) | const |
Definition at line 728 of file qgslegendmodel.cpp.
bool QgsLegendModel::readXML | ( | const QDomElement & | legendModelElem, |
const QDomDocument & | doc | ||
) |
Definition at line 575 of file qgslegendmodel.cpp.
References mHasTopLevelWindow, QgsComposerLegendItem::readXML(), and setAutoUpdate().
Referenced by QgsComposerLegend::readXML().
|
slot |
Definition at line 486 of file qgslegendmodel.cpp.
References QgsComposerLayerItem::layerID(), and layersChanged().
Referenced by QgsLegendModel(), and setAutoUpdate().
|
virtual |
Implemented to support drag operations.
Definition at line 675 of file qgslegendmodel.cpp.
void QgsLegendModel::setAutoUpdate | ( | bool | autoUpdate | ) |
Definition at line 810 of file qgslegendmodel.cpp.
References addLayer(), autoUpdate(), QgsMapLayerRegistry::instance(), mAutoUpdate, and removeLayer().
Referenced by readXML().
void QgsLegendModel::setLayerSet | ( | const QStringList & | layerIds, |
double | scaleDenominator = -1 , |
||
QString | rule = "" |
||
) |
Definition at line 101 of file qgslegendmodel.cpp.
References addLayer(), QgsMapLayerRegistry::instance(), QgsMapLayerRegistry::mapLayer(), and mLayerIds.
Referenced by setLayerSetAndGroups(), and QgsComposerLegend::updateLegend().
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 619 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 378 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 399 of file qgslegendmodel.cpp.
References updateLayerItemText(), updateRasterSymbolItemText(), updateSymbolV2ItemText(), and QgsComposerLegendItem::userText().
void QgsLegendModel::updateLayer | ( | QStandardItem * | layerItem | ) |
Updates the whole symbology of a layer.
Definition at line 438 of file qgslegendmodel.cpp.
References addRasterLayerItems(), addVectorLayerItemsV2(), QgsMapLayerRegistry::instance(), QgsComposerLayerItem::layerID(), QgsMapLayerRegistry::mapLayer(), QgsDebugMsg, and updateLayerItemText().
Referenced by updateItem().
|
private |
Definition at line 464 of file qgslegendmodel.cpp.
References addVectorLayerItemsV2(), QgsVectorLayer::featureCount(), QgsMapLayerRegistry::instance(), QgsComposerLayerItem::layerID(), QgsMapLayerRegistry::mapLayer(), QgsMapLayer::name(), QgsComposerLayerItem::showFeatureCount(), and QgsComposerLegendItem::userText().
Referenced by updateItemText(), and updateLayer().
|
inline |
Definition at line 72 of file qgslegendmodel.h.
|
private |
Definition at line 357 of file qgslegendmodel.cpp.
References QgsMapLayerRegistry::instance(), QgsComposerLayerItem::layerID(), QgsRasterLayer::legendSymbologyItems(), QgsMapLayerRegistry::mapLayer(), and QgsComposerLegendItem::userText().
Referenced by updateItemText().
|
private |
Definition at line 300 of file qgslegendmodel.cpp.
References QgsVectorLayer::countSymbolFeatures(), QgsVectorLayer::featureCount(), QgsMapLayerRegistry::instance(), QgsComposerLayerItem::layerID(), QgsFeatureRendererV2::legendSymbolItems(), QgsMapLayerRegistry::mapLayer(), QgsMapLayer::name(), QgsVectorLayer::rendererV2(), QgsComposerLayerItem::showFeatureCount(), QgsMapLayer::title(), QgsFeatureRendererV2::type(), and QgsComposerLegendItem::userText().
Referenced by addVectorLayerItemsV2(), and updateItemText().
|
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 548 of file qgslegendmodel.cpp.
References mAutoUpdate, and QgsComposerLegendItem::writeXML().
Referenced by QgsComposerLegend::writeXML().
|
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().
|
protected |
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().
|
protected |
Definition at line 119 of file qgslegendmodel.h.
Referenced by setLayerSet().