Quantum GIS API Documentation
1.8
|
A legend that can be placed onto a map composition. More...
#include <qgscomposerlegend.h>
Public Slots | |
void | synchronizeWithModel () |
Data changed. | |
void | invalidateCurrentMap () |
Sets mCompositionMap to 0 if the map is deleted. | |
Public Member Functions | |
QgsComposerLegend (QgsComposition *composition) | |
~QgsComposerLegend () | |
virtual int | type () const |
return correct graphics item type. | |
void | paint (QPainter *painter, const QStyleOptionGraphicsItem *itemStyle, QWidget *pWidget) |
Reimplementation of QCanvasItem::paint. | |
QSizeF | paintAndDetermineSize (QPainter *painter) |
Paints the legend and calculates its size. | |
void | adjustBoxSize () |
Sets item box to the whole content. | |
QgsLegendModel * | model () |
Returns pointer to the legend model. | |
void | setTitle (const QString &t) |
QString | title () const |
QFont | titleFont () const |
void | setTitleFont (const QFont &f) |
QFont | groupFont () const |
void | setGroupFont (const QFont &f) |
QFont | layerFont () const |
void | setLayerFont (const QFont &f) |
QFont | itemFont () const |
void | setItemFont (const QFont &f) |
double | boxSpace () const |
void | setBoxSpace (double s) |
double | groupSpace () const |
void | setGroupSpace (double s) |
double | layerSpace () const |
void | setLayerSpace (double s) |
double | symbolSpace () const |
void | setSymbolSpace (double s) |
double | iconLabelSpace () const |
void | setIconLabelSpace (double s) |
double | symbolWidth () const |
void | setSymbolWidth (double w) |
double | symbolHeight () const |
void | setSymbolHeight (double h) |
void | setWrapChar (const QString &t) |
QString | wrapChar () const |
void | setComposerMap (const QgsComposerMap *map) |
const QgsComposerMap * | composerMap () const |
void | updateLegend () |
Updates the model and all legend entries. | |
bool | writeXML (QDomElement &elem, QDomDocument &doc) const |
stores state in Dom node | |
bool | readXML (const QDomElement &itemElem, const QDomDocument &doc) |
sets state from Dom document | |
Protected Attributes | |
QString | mTitle |
QString | mWrapChar |
QFont | mTitleFont |
QFont | mGroupFont |
QFont | mLayerFont |
QFont | mItemFont |
double | mBoxSpace |
Space between item box and contents. | |
double | mGroupSpace |
Vertical space between group entries. | |
double | mLayerSpace |
Vertical space between layer entries. | |
double | mSymbolSpace |
Vertical space between symbol entries. | |
double | mIconLabelSpace |
Horizontal space between item icon and label. | |
double | mSymbolWidth |
Width of symbol icon. | |
double | mSymbolHeight |
Height of symbol icon. | |
double | mlineSpacing |
Spacing between lines when wrapped. | |
QgsLegendModel | mLegendModel |
const QgsComposerMap * | mComposerMap |
Reference to map (because symbols are sometimes in map units) | |
Private Member Functions | |
QgsComposerLegend () | |
void | drawGroupItem (QPainter *p, QgsComposerGroupItem *groupItem, double ¤tYCoord, double &maxXCoord) |
Draws a group item and all subitems. | |
void | drawLayerItem (QPainter *p, QgsComposerLayerItem *layerItem, double ¤tYCoord, double &maxXCoord) |
Draws a layer item and all subitems. | |
void | drawLayerChildItems (QPainter *p, QStandardItem *layerItem, double ¤tYCoord, double &maxXCoord, int layerOpacity=255) |
Draws child items of a layer item. | |
void | drawSymbol (QPainter *p, QgsSymbol *s, double currentYCoord, double ¤tXPosition, double &symbolHeight, int layerOpacity=255) const |
Draws a symbol at the current y position and returns the new x position. | |
void | drawSymbolV2 (QPainter *p, QgsSymbolV2 *s, double currentYCoord, double ¤tXPosition, double &symbolHeight, int layerOpacity=255) const |
void | drawPointSymbol (QPainter *, QgsSymbol *s, double currentYCoord, double ¤tXPosition, double &symbolHeight, int opacity=255) const |
void | drawLineSymbol (QPainter *, QgsSymbol *s, double currentYCoord, double ¤tXPosition, int opacity=255) const |
void | drawPolygonSymbol (QPainter *p, QgsSymbol *s, double currentYCoord, double ¤tXPosition, int opacity=255) const |
QStringList | layerIdList () const |
Helper function that lists ids of layers contained in map canvas. | |
QStringList | splitStringForWrapping (QString stringToSplt) |
Splits a string using the the wrap char taking into account handling empty wrap char which means no wrapping. |
A legend that can be placed onto a map composition.
Definition at line 33 of file qgscomposerlegend.h.
QgsComposerLegend::QgsComposerLegend | ( | QgsComposition * | composition | ) |
Definition at line 31 of file qgscomposerlegend.cpp.
References adjustBoxSize(), mGroupFont, mItemFont, mLayerFont, mLegendModel, mlineSpacing, mSymbolHeight, mSymbolWidth, mTitleFont, mWrapChar, and synchronizeWithModel().
Definition at line 64 of file qgscomposerlegend.cpp.
QgsComposerLegend::QgsComposerLegend | ( | ) | [private] |
Definition at line 59 of file qgscomposerlegend.cpp.
void QgsComposerLegend::adjustBoxSize | ( | ) |
Sets item box to the whole content.
Definition at line 264 of file qgscomposerlegend.cpp.
References paintAndDetermineSize(), QgsComposerItem::setSceneRect(), and size.
Referenced by QgsComposerLegend(), setGroupFont(), setItemFont(), setLayerFont(), setTitleFont(), synchronizeWithModel(), and updateLegend().
double QgsComposerLegend::boxSpace | ( | ) | const [inline] |
Definition at line 72 of file qgscomposerlegend.h.
const QgsComposerMap* QgsComposerLegend::composerMap | ( | ) | const [inline] |
Definition at line 97 of file qgscomposerlegend.h.
void QgsComposerLegend::drawGroupItem | ( | QPainter * | p, |
QgsComposerGroupItem * | groupItem, | ||
double & | currentYCoord, | ||
double & | maxXCoord | ||
) | [private] |
Draws a group item and all subitems.
Definition at line 174 of file qgscomposerlegend.cpp.
References drawLayerItem(), QgsComposerItem::drawText(), QgsComposerItem::fontAscentMillimeters(), QgsComposerLegendItem::GroupItem, QgsComposerLegendItem::itemType(), QgsComposerLegendItem::LayerItem, mBoxSpace, mGroupFont, mGroupSpace, mlineSpacing, splitStringForWrapping(), QgsComposerItem::textWidthMillimeters(), and type().
Referenced by paintAndDetermineSize().
void QgsComposerLegend::drawLayerChildItems | ( | QPainter * | p, |
QStandardItem * | layerItem, | ||
double & | currentYCoord, | ||
double & | maxXCoord, | ||
int | layerOpacity = 255 |
||
) | [private] |
Draws child items of a layer item.
p | painter |
layerItem | parent model item (layer) |
currentYCoord | in/out: current y position of legend item |
maxXCoord | in/out: maximum x-coordinate of the whole legend |
layerOpacity | opacity of the corresponding map layer |
Definition at line 273 of file qgscomposerlegend.cpp.
References QgsComposerRasterSymbolItem::color(), drawSymbol(), drawSymbolV2(), QgsComposerItem::drawText(), QgsComposerItem::fontHeightCharacterMM(), mBoxSpace, mIconLabelSpace, mItemFont, mlineSpacing, mSymbolHeight, mSymbolSpace, mSymbolWidth, splitStringForWrapping(), QgsComposerSymbolItem::symbol(), QgsComposerSymbolV2Item::symbolV2(), and QgsComposerItem::textWidthMillimeters().
Referenced by drawLayerItem().
void QgsComposerLegend::drawLayerItem | ( | QPainter * | p, |
QgsComposerLayerItem * | layerItem, | ||
double & | currentYCoord, | ||
double & | maxXCoord | ||
) | [private] |
Draws a layer item and all subitems.
Definition at line 219 of file qgscomposerlegend.cpp.
References drawLayerChildItems(), QgsComposerItem::drawText(), QgsComposerItem::fontAscentMillimeters(), QgsMapLayer::getTransparency(), QgsMapLayerRegistry::instance(), QgsComposerLayerItem::layerID(), QgsMapLayerRegistry::mapLayer(), mBoxSpace, mLayerFont, mLayerSpace, mlineSpacing, mSymbolSpace, splitStringForWrapping(), and QgsComposerItem::textWidthMillimeters().
Referenced by drawGroupItem(), and paintAndDetermineSize().
void QgsComposerLegend::drawLineSymbol | ( | QPainter * | p, |
QgsSymbol * | s, | ||
double | currentYCoord, | ||
double & | currentXPosition, | ||
int | opacity = 255 |
||
) | const [private] |
Definition at line 530 of file qgscomposerlegend.cpp.
References mSymbolHeight, mSymbolWidth, and QgsSymbol::pen().
Referenced by drawSymbol().
void QgsComposerLegend::drawPointSymbol | ( | QPainter * | p, |
QgsSymbol * | s, | ||
double | currentYCoord, | ||
double & | currentXPosition, | ||
double & | symbolHeight, | ||
int | opacity = 255 |
||
) | const [private] |
Definition at line 493 of file qgscomposerlegend.cpp.
References QgsSymbol::getPointSymbolAsImage(), QgsSymbol::pointSize(), and rasterScaleFactor.
Referenced by drawSymbol().
void QgsComposerLegend::drawPolygonSymbol | ( | QPainter * | p, |
QgsSymbol * | s, | ||
double | currentYCoord, | ||
double & | currentXPosition, | ||
int | opacity = 255 |
||
) | const [private] |
Definition at line 555 of file qgscomposerlegend.cpp.
References QgsSymbol::brush(), mSymbolHeight, mSymbolWidth, QgsSymbol::pen(), rasterScaleFactor, and QgsRenderer::scaleBrush().
Referenced by drawSymbol().
void QgsComposerLegend::drawSymbol | ( | QPainter * | p, |
QgsSymbol * | s, | ||
double | currentYCoord, | ||
double & | currentXPosition, | ||
double & | symbolHeight, | ||
int | layerOpacity = 255 |
||
) | const [private] |
Draws a symbol at the current y position and returns the new x position.
Returns real symbol height, because for points, it is possible that it differs from mSymbolHeight
Definition at line 386 of file qgscomposerlegend.cpp.
References drawLineSymbol(), drawPointSymbol(), drawPolygonSymbol(), QGis::Line, mSymbolHeight, QGis::NoGeometry, QGis::Point, QGis::Polygon, QgsSymbol::type(), and QGis::UnknownGeometry.
Referenced by drawLayerChildItems().
void QgsComposerLegend::drawSymbolV2 | ( | QPainter * | p, |
QgsSymbolV2 * | s, | ||
double | currentYCoord, | ||
double & | currentXPosition, | ||
double & | symbolHeight, | ||
int | layerOpacity = 255 |
||
) | const [private] |
Definition at line 414 of file qgscomposerlegend.cpp.
References QgsSymbolV2::drawPreviewIcon(), QgsSymbolV2::MapUnit, QgsComposerMap::mapUnitsToMM(), mComposerMap, QgsSymbolV2::MM, mSymbolHeight, mSymbolWidth, QgsSymbolV2::outputUnit(), rasterScaleFactor, QgsSymbolV2::setOutputUnit(), QgsMarkerSymbolV2::setSize(), size, and QgsMarkerSymbolV2::size().
Referenced by drawLayerChildItems().
QFont QgsComposerLegend::groupFont | ( | ) | const |
Definition at line 642 of file qgscomposerlegend.cpp.
References mGroupFont.
double QgsComposerLegend::groupSpace | ( | ) | const [inline] |
Definition at line 75 of file qgscomposerlegend.h.
double QgsComposerLegend::iconLabelSpace | ( | ) | const [inline] |
Definition at line 84 of file qgscomposerlegend.h.
void QgsComposerLegend::invalidateCurrentMap | ( | ) | [slot] |
Sets mCompositionMap to 0 if the map is deleted.
Definition at line 778 of file qgscomposerlegend.cpp.
References mComposerMap.
Referenced by setComposerMap().
QFont QgsComposerLegend::itemFont | ( | ) | const |
Definition at line 652 of file qgscomposerlegend.cpp.
References mItemFont.
QFont QgsComposerLegend::layerFont | ( | ) | const |
Definition at line 647 of file qgscomposerlegend.cpp.
References mLayerFont.
QStringList QgsComposerLegend::layerIdList | ( | ) | const [private] |
Helper function that lists ids of layers contained in map canvas.
Definition at line 589 of file qgscomposerlegend.cpp.
References QgsMapRenderer::layerSet(), QgsComposition::mapRenderer(), and QgsComposerItem::mComposition.
Referenced by updateLegend().
double QgsComposerLegend::layerSpace | ( | ) | const [inline] |
Definition at line 78 of file qgscomposerlegend.h.
QgsLegendModel* QgsComposerLegend::model | ( | ) | [inline] |
Returns pointer to the legend model.
Definition at line 54 of file qgscomposerlegend.h.
void QgsComposerLegend::paint | ( | QPainter * | painter, |
const QStyleOptionGraphicsItem * | itemStyle, | ||
QWidget * | pWidget | ||
) |
Reimplementation of QCanvasItem::paint.
Definition at line 69 of file qgscomposerlegend.cpp.
References paintAndDetermineSize().
QSizeF QgsComposerLegend::paintAndDetermineSize | ( | QPainter * | painter | ) |
Paints the legend and calculates its size.
If painter is 0, only size is calculated
Definition at line 76 of file qgscomposerlegend.cpp.
References QgsComposerItem::drawBackground(), QgsComposerItem::drawFrame(), drawGroupItem(), drawLayerItem(), QgsComposerItem::drawSelectionBoxes(), QgsComposerItem::drawText(), QgsComposerItem::fontAscentMillimeters(), QgsComposerLegendItem::GroupItem, QgsComposerLegendItem::itemType(), QgsComposerLegendItem::LayerItem, mBoxSpace, mLegendModel, mlineSpacing, mTitle, mTitleFont, QgsComposerItem::setSceneRect(), size, splitStringForWrapping(), QgsComposerItem::textWidthMillimeters(), and type().
Referenced by adjustBoxSize(), and paint().
bool QgsComposerLegend::readXML | ( | const QDomElement & | itemElem, |
const QDomDocument & | doc | ||
) | [virtual] |
sets state from Dom document
itemElem | is Dom node corresponding to item tag |
doc | is Dom document |
Implements QgsComposerItem.
Definition at line 700 of file qgscomposerlegend.cpp.
References QgsComposerItem::_readXML(), QgsComposition::getComposerMapById(), QgsComposerItem::itemChanged(), mBoxSpace, mComposerMap, QgsComposerItem::mComposition, mGroupFont, mGroupSpace, mIconLabelSpace, mItemFont, mLayerFont, mLayerSpace, mLegendModel, mSymbolHeight, mSymbolSpace, mSymbolWidth, mTitle, mTitleFont, mWrapChar, and QgsLegendModel::readXML().
Referenced by QgsComposition::addItemsFromXML().
void QgsComposerLegend::setBoxSpace | ( | double | s | ) | [inline] |
Definition at line 73 of file qgscomposerlegend.h.
void QgsComposerLegend::setComposerMap | ( | const QgsComposerMap * | map | ) |
Definition at line 772 of file qgscomposerlegend.cpp.
References invalidateCurrentMap(), and mComposerMap.
Referenced by QgsComposition::addComposerLegend().
void QgsComposerLegend::setGroupFont | ( | const QFont & | f | ) |
Definition at line 616 of file qgscomposerlegend.cpp.
References adjustBoxSize(), and mGroupFont.
void QgsComposerLegend::setGroupSpace | ( | double | s | ) | [inline] |
Definition at line 76 of file qgscomposerlegend.h.
void QgsComposerLegend::setIconLabelSpace | ( | double | s | ) | [inline] |
Definition at line 85 of file qgscomposerlegend.h.
void QgsComposerLegend::setItemFont | ( | const QFont & | f | ) |
Definition at line 630 of file qgscomposerlegend.cpp.
References adjustBoxSize(), and mItemFont.
void QgsComposerLegend::setLayerFont | ( | const QFont & | f | ) |
Definition at line 623 of file qgscomposerlegend.cpp.
References adjustBoxSize(), and mLayerFont.
void QgsComposerLegend::setLayerSpace | ( | double | s | ) | [inline] |
Definition at line 79 of file qgscomposerlegend.h.
void QgsComposerLegend::setSymbolHeight | ( | double | h | ) | [inline] |
Definition at line 91 of file qgscomposerlegend.h.
void QgsComposerLegend::setSymbolSpace | ( | double | s | ) | [inline] |
Definition at line 82 of file qgscomposerlegend.h.
void QgsComposerLegend::setSymbolWidth | ( | double | w | ) | [inline] |
Definition at line 88 of file qgscomposerlegend.h.
void QgsComposerLegend::setTitle | ( | const QString & | t | ) | [inline] |
Definition at line 57 of file qgscomposerlegend.h.
void QgsComposerLegend::setTitleFont | ( | const QFont & | f | ) |
Definition at line 609 of file qgscomposerlegend.cpp.
References adjustBoxSize(), and mTitleFont.
void QgsComposerLegend::setWrapChar | ( | const QString & | t | ) | [inline] |
Definition at line 93 of file qgscomposerlegend.h.
QStringList QgsComposerLegend::splitStringForWrapping | ( | QString | stringToSplt | ) | [private] |
Splits a string using the the wrap char taking into account handling empty wrap char which means no wrapping.
Definition at line 784 of file qgscomposerlegend.cpp.
References mWrapChar.
Referenced by drawGroupItem(), drawLayerChildItems(), drawLayerItem(), and paintAndDetermineSize().
double QgsComposerLegend::symbolHeight | ( | ) | const [inline] |
Definition at line 90 of file qgscomposerlegend.h.
double QgsComposerLegend::symbolSpace | ( | ) | const [inline] |
Definition at line 81 of file qgscomposerlegend.h.
double QgsComposerLegend::symbolWidth | ( | ) | const [inline] |
Definition at line 87 of file qgscomposerlegend.h.
void QgsComposerLegend::synchronizeWithModel | ( | ) | [slot] |
Data changed.
Definition at line 603 of file qgscomposerlegend.cpp.
References adjustBoxSize().
Referenced by QgsComposerLegend().
QString QgsComposerLegend::title | ( | ) | const [inline] |
Definition at line 58 of file qgscomposerlegend.h.
QFont QgsComposerLegend::titleFont | ( | ) | const |
Definition at line 637 of file qgscomposerlegend.cpp.
References mTitleFont.
virtual int QgsComposerLegend::type | ( | ) | const [inline, virtual] |
return correct graphics item type.
Added in v1.7
Reimplemented from QgsComposerItem.
Definition at line 42 of file qgscomposerlegend.h.
References QgsComposerItem::ComposerLegend.
Referenced by drawGroupItem(), and paintAndDetermineSize().
void QgsComposerLegend::updateLegend | ( | ) |
Updates the model and all legend entries.
Definition at line 657 of file qgscomposerlegend.cpp.
References adjustBoxSize(), layerIdList(), mLegendModel, and QgsLegendModel::setLayerSet().
Referenced by QgsComposerView::mousePressEvent().
QString QgsComposerLegend::wrapChar | ( | ) | const [inline] |
Definition at line 94 of file qgscomposerlegend.h.
bool QgsComposerLegend::writeXML | ( | QDomElement & | elem, |
QDomDocument & | doc | ||
) | const [virtual] |
stores state in Dom node
elem | is Dom element corresponding to 'Composer' tag |
doc | Dom document |
Implements QgsComposerItem.
Definition at line 664 of file qgscomposerlegend.cpp.
References QgsComposerItem::_writeXML(), QgsComposerMap::id(), mBoxSpace, mComposerMap, mGroupFont, mGroupSpace, mIconLabelSpace, mItemFont, mLayerFont, mLayerSpace, mLegendModel, mSymbolHeight, mSymbolSpace, mSymbolWidth, mTitle, mTitleFont, mWrapChar, and QgsLegendModel::writeXML().
double QgsComposerLegend::mBoxSpace [protected] |
Space between item box and contents.
Definition at line 131 of file qgscomposerlegend.h.
Referenced by drawGroupItem(), drawLayerChildItems(), drawLayerItem(), paintAndDetermineSize(), readXML(), and writeXML().
const QgsComposerMap* QgsComposerLegend::mComposerMap [protected] |
Reference to map (because symbols are sometimes in map units)
Definition at line 151 of file qgscomposerlegend.h.
Referenced by drawSymbolV2(), invalidateCurrentMap(), readXML(), setComposerMap(), and writeXML().
QFont QgsComposerLegend::mGroupFont [protected] |
Definition at line 126 of file qgscomposerlegend.h.
Referenced by drawGroupItem(), groupFont(), QgsComposerLegend(), readXML(), setGroupFont(), and writeXML().
double QgsComposerLegend::mGroupSpace [protected] |
Vertical space between group entries.
Definition at line 133 of file qgscomposerlegend.h.
Referenced by drawGroupItem(), readXML(), and writeXML().
double QgsComposerLegend::mIconLabelSpace [protected] |
Horizontal space between item icon and label.
Definition at line 139 of file qgscomposerlegend.h.
Referenced by drawLayerChildItems(), readXML(), and writeXML().
QFont QgsComposerLegend::mItemFont [protected] |
Definition at line 128 of file qgscomposerlegend.h.
Referenced by drawLayerChildItems(), itemFont(), QgsComposerLegend(), readXML(), setItemFont(), and writeXML().
QFont QgsComposerLegend::mLayerFont [protected] |
Definition at line 127 of file qgscomposerlegend.h.
Referenced by drawLayerItem(), layerFont(), QgsComposerLegend(), readXML(), setLayerFont(), and writeXML().
double QgsComposerLegend::mLayerSpace [protected] |
Vertical space between layer entries.
Definition at line 135 of file qgscomposerlegend.h.
Referenced by drawLayerItem(), readXML(), and writeXML().
QgsLegendModel QgsComposerLegend::mLegendModel [protected] |
Definition at line 148 of file qgscomposerlegend.h.
Referenced by paintAndDetermineSize(), QgsComposerLegend(), readXML(), updateLegend(), and writeXML().
double QgsComposerLegend::mlineSpacing [protected] |
Spacing between lines when wrapped.
Definition at line 146 of file qgscomposerlegend.h.
Referenced by drawGroupItem(), drawLayerChildItems(), drawLayerItem(), paintAndDetermineSize(), and QgsComposerLegend().
double QgsComposerLegend::mSymbolHeight [protected] |
Height of symbol icon.
Definition at line 143 of file qgscomposerlegend.h.
Referenced by drawLayerChildItems(), drawLineSymbol(), drawPolygonSymbol(), drawSymbol(), drawSymbolV2(), QgsComposerLegend(), readXML(), and writeXML().
double QgsComposerLegend::mSymbolSpace [protected] |
Vertical space between symbol entries.
Definition at line 137 of file qgscomposerlegend.h.
Referenced by drawLayerChildItems(), drawLayerItem(), readXML(), and writeXML().
double QgsComposerLegend::mSymbolWidth [protected] |
Width of symbol icon.
Definition at line 141 of file qgscomposerlegend.h.
Referenced by drawLayerChildItems(), drawLineSymbol(), drawPolygonSymbol(), drawSymbolV2(), QgsComposerLegend(), readXML(), and writeXML().
QString QgsComposerLegend::mTitle [protected] |
Definition at line 121 of file qgscomposerlegend.h.
Referenced by paintAndDetermineSize(), readXML(), and writeXML().
QFont QgsComposerLegend::mTitleFont [protected] |
Definition at line 125 of file qgscomposerlegend.h.
Referenced by paintAndDetermineSize(), QgsComposerLegend(), readXML(), setTitleFont(), titleFont(), and writeXML().
QString QgsComposerLegend::mWrapChar [protected] |
Definition at line 122 of file qgscomposerlegend.h.
Referenced by QgsComposerLegend(), readXML(), splitStringForWrapping(), and writeXML().