#include <qgslegendmodel.h>
Public Types | |
enum | ItemType { GroupItem = 0, LayerItem, ClassificationItem } |
Public Slots | |
void | removeLayer (const QString &layerId) |
void | addLayer (QgsMapLayer *theMapLayer) |
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) |
QStandardItem * | addGroup (QString text=tr("Group"), int position=-1) |
Adds a group to a toplevel position (or -1 if it should be placed at the end of the legend). | |
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 | updateVectorClassificationItem (QStandardItem *classificationItem, QgsSymbol *symbol, QString itemText) |
Tries to update a single classification item. | |
void | updateVectorV2ClassificationItem (QStandardItem *classificationItem, QgsSymbolV2 *symbol, QString itemText) |
void | updateRasterClassificationItem (QStandardItem *classificationItem) |
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. | |
Protected Attributes | |
QStringList | mLayerIds |
bool | mHasTopLevelWindow |
True if this application has toplevel windows (normally true). | |
Private Member Functions | |
int | addVectorLayerItems (QStandardItem *layerItem, QgsVectorLayer *vlayer) |
Adds classification items of vector layers. | |
int | addVectorLayerItemsV2 (QStandardItem *layerItem, QgsVectorLayer *vlayer) |
Adds classification items of vector layers using new symbology. | |
int | addRasterLayerItem (QStandardItem *layerItem, QgsMapLayer *rlayer) |
Adds item of raster layer. | |
QStandardItem * | itemFromSymbol (QgsSymbol *s, int opacity, const QString &layerID) |
Creates a model item for a vector symbol. |
Definition at line 40 of file qgslegendmodel.h.
QgsLegendModel::QgsLegendModel | ( | ) |
Definition at line 36 of file qgslegendmodel.cpp.
References addLayer(), QgsMapLayerRegistry::instance(), mHasTopLevelWindow, and removeLayer().
QgsLegendModel::~QgsLegendModel | ( | ) |
Definition at line 49 of file qgslegendmodel.cpp.
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().
void QgsLegendModel::setLayerSet | ( | const QStringList & | layerIds | ) |
Definition at line 102 of file qgslegendmodel.cpp.
References addLayer(), QgsMapLayerRegistry::instance(), QgsMapLayerRegistry::mapLayer(), and mLayerIds.
Referenced by setLayerSetAndGroups(), and QgsComposerLegend::updateLegend().
QStandardItem * QgsLegendModel::addGroup | ( | QString | text = tr( "Group" ) , |
|
int | position = -1 | |||
) |
Adds a group to a 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 119 of file qgslegendmodel.cpp.
Referenced by setLayerSetAndGroups().
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 251 of file qgslegendmodel.cpp.
References QgsComposerLegendItem::itemType(), QgsComposerLegendItem::LayerItem, and updateLayer().
void QgsLegendModel::updateLayer | ( | QStandardItem * | layerItem | ) |
Updates the whole symbology of a layer.
Definition at line 272 of file qgslegendmodel.cpp.
References addRasterLayerItem(), addVectorLayerItems(), addVectorLayerItemsV2(), QgsMapLayerRegistry::instance(), QgsVectorLayer::isUsingRendererV2(), QgsComposerLayerItem::layerID(), QgsMapLayerRegistry::mapLayer(), and QgsMapLayer::name().
Referenced by updateItem().
void QgsLegendModel::updateVectorClassificationItem | ( | QStandardItem * | classificationItem, | |
QgsSymbol * | symbol, | |||
QString | itemText | |||
) | [inline] |
void QgsLegendModel::updateVectorV2ClassificationItem | ( | QStandardItem * | classificationItem, | |
QgsSymbolV2 * | symbol, | |||
QString | itemText | |||
) | [inline] |
Definition at line 68 of file qgslegendmodel.h.
void QgsLegendModel::updateRasterClassificationItem | ( | QStandardItem * | classificationItem | ) | [inline] |
Definition at line 69 of file qgslegendmodel.h.
bool QgsLegendModel::writeXML | ( | QDomElement & | composerLegendElem, | |
QDomDocument & | doc | |||
) | const |
Definition at line 454 of file qgslegendmodel.cpp.
References QgsComposerLegendItem::writeXML().
Referenced by QgsComposerLegend::writeXML().
bool QgsLegendModel::readXML | ( | const QDomElement & | legendModelElem, | |
const QDomDocument & | doc | |||
) |
Definition at line 480 of file qgslegendmodel.cpp.
References QgsComposerLegendItem::readXML().
Referenced by QgsComposerLegend::readXML().
Qt::DropActions QgsLegendModel::supportedDropActions | ( | ) | const |
Definition at line 517 of file qgslegendmodel.cpp.
Qt::ItemFlags QgsLegendModel::flags | ( | const QModelIndex & | index | ) | const |
Definition at line 522 of file qgslegendmodel.cpp.
References QgsComposerLegendItem::GroupItem, QgsComposerLegendItem::itemType(), and QgsComposerLegendItem::LayerItem.
bool QgsLegendModel::removeRows | ( | int | row, | |
int | count, | |||
const QModelIndex & | parent = QModelIndex() | |||
) | [virtual] |
QMimeData * QgsLegendModel::mimeData | ( | const QModelIndexList & | indexes | ) | const |
For the drag operation.
Definition at line 578 of file qgslegendmodel.cpp.
References QgsComposerLegendItem::writeXML().
QStringList QgsLegendModel::mimeTypes | ( | ) | const |
Definition at line 603 of file qgslegendmodel.cpp.
bool QgsLegendModel::dropMimeData | ( | const QMimeData * | data, | |
Qt::DropAction | action, | |||
int | row, | |||
int | column, | |||
const QModelIndex & | parent | |||
) |
Implements the drop operation.
Definition at line 610 of file qgslegendmodel.cpp.
References layersChanged(), and QgsComposerLegendItem::readXML().
void QgsLegendModel::removeLayer | ( | const QString & | layerId | ) | [slot] |
Definition at line 312 of file qgslegendmodel.cpp.
References layersChanged().
Referenced by QgsLegendModel().
void QgsLegendModel::addLayer | ( | QgsMapLayer * | theMapLayer | ) | [slot] |
Definition at line 335 of file qgslegendmodel.cpp.
References addRasterLayerItem(), addVectorLayerItems(), addVectorLayerItemsV2(), QgsMapLayer::getLayerID(), QgsVectorLayer::isUsingRendererV2(), layersChanged(), QgsMapLayer::name(), QgsMapLayer::RasterLayer, QgsComposerLayerItem::setLayerID(), QgsMapLayer::type(), and QgsMapLayer::VectorLayer.
Referenced by QgsLegendModel(), and setLayerSet().
void QgsLegendModel::layersChanged | ( | ) | [signal] |
Referenced by addLayer(), dropMimeData(), and removeLayer().
int QgsLegendModel::addVectorLayerItems | ( | QStandardItem * | layerItem, | |
QgsVectorLayer * | vlayer | |||
) | [private] |
Adds classification items of vector layers.
Definition at line 166 of file qgslegendmodel.cpp.
References QgsVectorLayer::attributeDisplayName(), QgsRenderer::classificationAttributes(), ClassificationItem, QgsMapLayer::getLayerID(), QgsMapLayer::getTransparency(), itemFromSymbol(), QgsVectorLayer::pendingFields(), QgsVectorLayer::renderer(), and QgsRenderer::symbols().
Referenced by addLayer(), and updateLayer().
int QgsLegendModel::addVectorLayerItemsV2 | ( | QStandardItem * | layerItem, | |
QgsVectorLayer * | vlayer | |||
) | [private] |
Adds classification items of vector layers using new symbology.
Definition at line 133 of file qgslegendmodel.cpp.
References QgsFeatureRendererV2::legendSymbolItems(), mHasTopLevelWindow, QgsVectorLayer::rendererV2(), QgsComposerSymbolV2Item::setSymbolV2(), and QgsSymbolLayerV2Utils::symbolPreviewIcon().
Referenced by addLayer(), and updateLayer().
int QgsLegendModel::addRasterLayerItem | ( | QStandardItem * | layerItem, | |
QgsMapLayer * | rlayer | |||
) | [private] |
Adds item of raster layer.
Definition at line 225 of file qgslegendmodel.cpp.
References QgsMapLayer::getLayerID(), QgsRasterLayer::legendAsPixmap(), mHasTopLevelWindow, and QgsComposerRasterSymbolItem::setLayerID().
Referenced by addLayer(), and updateLayer().
QStandardItem * QgsLegendModel::itemFromSymbol | ( | QgsSymbol * | s, | |
int | opacity, | |||
const QString & | layerID | |||
) | [private] |
Creates a model item for a vector symbol.
The calling function takes ownership
Definition at line 375 of file qgslegendmodel.cpp.
References QgsSymbol::getLineSymbolAsImage(), QgsSymbol::getPointSymbolAsImage(), QgsSymbol::getPolygonSymbolAsImage(), QgsSymbol::label(), QGis::Line, QgsSymbol::lowerValue(), mHasTopLevelWindow, QGis::Point, QGis::Polygon, QgsComposerSymbolItem::setLayerID(), QgsComposerSymbolItem::setSymbol(), QgsSymbol::type(), and QgsSymbol::upperValue().
Referenced by addVectorLayerItems().
QStringList QgsLegendModel::mLayerIds [protected] |
bool QgsLegendModel::mHasTopLevelWindow [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 114 of file qgslegendmodel.h.
Referenced by addRasterLayerItem(), addVectorLayerItemsV2(), itemFromSymbol(), and QgsLegendModel().