#include <qgscomposerlegend.h>
Public Slots | |
void | synchronizeWithModel () |
Data changed. | |
Public Member Functions | |
QgsComposerLegend (QgsComposition *composition) | |
~QgsComposerLegend () | |
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 | 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 | 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 |
QFont | mTitleFont |
QFont | mGroupFont |
QFont | mLayerFont |
QFont | mItemFont |
double | mBoxSpace |
Space between item box and contents. | |
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. | |
QgsLegendModel | mLegendModel |
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. |
Definition at line 32 of file qgscomposerlegend.h.
QgsComposerLegend::QgsComposerLegend | ( | QgsComposition * | composition | ) |
Definition at line 30 of file qgscomposerlegend.cpp.
References adjustBoxSize(), mGroupFont, mItemFont, mLayerFont, mLegendModel, mSymbolHeight, mSymbolWidth, mTitleFont, and synchronizeWithModel().
QgsComposerLegend::~QgsComposerLegend | ( | ) |
Definition at line 58 of file qgscomposerlegend.cpp.
QgsComposerLegend::QgsComposerLegend | ( | ) | [private] |
Definition at line 53 of file qgscomposerlegend.cpp.
void QgsComposerLegend::paint | ( | QPainter * | painter, | |
const QStyleOptionGraphicsItem * | itemStyle, | |||
QWidget * | pWidget | |||
) |
Reimplementation of QCanvasItem::paint.
Definition at line 63 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 68 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, mTitle, mTitleFont, QgsComposerItem::setSceneRect(), and QgsComposerItem::textWidthMillimeters().
Referenced by adjustBoxSize(), and paint().
void QgsComposerLegend::adjustBoxSize | ( | ) |
Sets item box to the whole content.
Definition at line 221 of file qgscomposerlegend.cpp.
References paintAndDetermineSize(), and QgsComposerItem::setSceneRect().
Referenced by QgsComposerLegend(), setGroupFont(), setItemFont(), setLayerFont(), setTitleFont(), synchronizeWithModel(), and updateLegend().
QgsLegendModel* QgsComposerLegend::model | ( | ) | [inline] |
void QgsComposerLegend::setTitle | ( | const QString & | t | ) | [inline] |
Definition at line 53 of file qgscomposerlegend.h.
QString QgsComposerLegend::title | ( | ) | const [inline] |
Definition at line 54 of file qgscomposerlegend.h.
QFont QgsComposerLegend::titleFont | ( | ) | const |
void QgsComposerLegend::setTitleFont | ( | const QFont & | f | ) |
QFont QgsComposerLegend::groupFont | ( | ) | const |
void QgsComposerLegend::setGroupFont | ( | const QFont & | f | ) |
QFont QgsComposerLegend::layerFont | ( | ) | const |
void QgsComposerLegend::setLayerFont | ( | const QFont & | f | ) |
QFont QgsComposerLegend::itemFont | ( | ) | const |
void QgsComposerLegend::setItemFont | ( | const QFont & | f | ) |
double QgsComposerLegend::boxSpace | ( | ) | const [inline] |
Definition at line 68 of file qgscomposerlegend.h.
void QgsComposerLegend::setBoxSpace | ( | double | s | ) | [inline] |
Definition at line 69 of file qgscomposerlegend.h.
double QgsComposerLegend::layerSpace | ( | ) | const [inline] |
Definition at line 71 of file qgscomposerlegend.h.
void QgsComposerLegend::setLayerSpace | ( | double | s | ) | [inline] |
Definition at line 72 of file qgscomposerlegend.h.
double QgsComposerLegend::symbolSpace | ( | ) | const [inline] |
Definition at line 74 of file qgscomposerlegend.h.
void QgsComposerLegend::setSymbolSpace | ( | double | s | ) | [inline] |
Definition at line 75 of file qgscomposerlegend.h.
double QgsComposerLegend::iconLabelSpace | ( | ) | const [inline] |
Definition at line 77 of file qgscomposerlegend.h.
void QgsComposerLegend::setIconLabelSpace | ( | double | s | ) | [inline] |
Definition at line 78 of file qgscomposerlegend.h.
double QgsComposerLegend::symbolWidth | ( | ) | const [inline] |
Definition at line 80 of file qgscomposerlegend.h.
void QgsComposerLegend::setSymbolWidth | ( | double | w | ) | [inline] |
Definition at line 81 of file qgscomposerlegend.h.
double QgsComposerLegend::symbolHeight | ( | ) | const [inline] |
Definition at line 83 of file qgscomposerlegend.h.
void QgsComposerLegend::setSymbolHeight | ( | double | h | ) | [inline] |
Definition at line 84 of file qgscomposerlegend.h.
void QgsComposerLegend::updateLegend | ( | ) |
Updates the model and all legend entries.
Definition at line 531 of file qgscomposerlegend.cpp.
References adjustBoxSize(), layerIdList(), mLegendModel, and QgsLegendModel::setLayerSet().
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 538 of file qgscomposerlegend.cpp.
References QgsComposerItem::_writeXML(), mBoxSpace, mGroupFont, mIconLabelSpace, mItemFont, mLayerFont, mLayerSpace, mLegendModel, mSymbolHeight, mSymbolSpace, mSymbolWidth, mTitle, mTitleFont, and QgsLegendModel::writeXML().
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 567 of file qgscomposerlegend.cpp.
References QgsComposerItem::_readXML(), mBoxSpace, mGroupFont, mIconLabelSpace, mItemFont, mLayerFont, mLayerSpace, mLegendModel, mSymbolHeight, mSymbolSpace, mSymbolWidth, mTitle, mTitleFont, and QgsLegendModel::readXML().
void QgsComposerLegend::synchronizeWithModel | ( | ) | [slot] |
Data changed.
Definition at line 477 of file qgscomposerlegend.cpp.
References adjustBoxSize().
Referenced by QgsComposerLegend().
void QgsComposerLegend::drawGroupItem | ( | QPainter * | p, | |
QgsComposerGroupItem * | groupItem, | |||
double & | currentYCoord, | |||
double & | maxXCoord | |||
) | [private] |
Draws a group item and all subitems.
Definition at line 154 of file qgscomposerlegend.cpp.
References drawLayerItem(), QgsComposerItem::drawText(), QgsComposerItem::fontAscentMillimeters(), QgsComposerLegendItem::GroupItem, QgsComposerLegendItem::itemType(), QgsComposerLegendItem::LayerItem, MathUtils::max(), mBoxSpace, mGroupFont, mLayerSpace, and QgsComposerItem::textWidthMillimeters().
Referenced by paintAndDetermineSize().
void QgsComposerLegend::drawLayerItem | ( | QPainter * | p, | |
QgsComposerLayerItem * | layerItem, | |||
double & | currentYCoord, | |||
double & | maxXCoord | |||
) | [private] |
Draws a layer item and all subitems.
Definition at line 188 of file qgscomposerlegend.cpp.
References drawLayerChildItems(), QgsComposerItem::drawText(), QgsComposerItem::fontAscentMillimeters(), QgsMapLayer::getTransparency(), QgsMapLayerRegistry::instance(), QgsComposerLayerItem::layerID(), QgsMapLayerRegistry::mapLayer(), MathUtils::max(), mBoxSpace, mLayerFont, mLayerSpace, and QgsComposerItem::textWidthMillimeters().
Referenced by drawGroupItem(), and 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 230 of file qgscomposerlegend.cpp.
References drawSymbol(), drawSymbolV2(), QgsComposerItem::drawText(), QgsComposerItem::fontAscentMillimeters(), MathUtils::max(), mBoxSpace, mIconLabelSpace, mItemFont, mSymbolHeight, mSymbolSpace, mSymbolWidth, QgsComposerSymbolItem::symbol(), QgsComposerSymbolV2Item::symbolV2(), and QgsComposerItem::textWidthMillimeters().
Referenced by drawLayerItem().
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 313 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 341 of file qgscomposerlegend.cpp.
References QgsSymbolV2::drawPreviewIcon(), mSymbolHeight, and mSymbolWidth.
Referenced by drawLayerChildItems().
void QgsComposerLegend::drawPointSymbol | ( | QPainter * | p, | |
QgsSymbol * | s, | |||
double | currentYCoord, | |||
double & | currentXPosition, | |||
double & | symbolHeight, | |||
int | opacity = 255 | |||
) | const [private] |
Definition at line 367 of file qgscomposerlegend.cpp.
References QgsSymbol::getPointSymbolAsImage(), and QgsSymbol::pointSize().
Referenced by drawSymbol().
void QgsComposerLegend::drawLineSymbol | ( | QPainter * | p, | |
QgsSymbol * | s, | |||
double | currentYCoord, | |||
double & | currentXPosition, | |||
int | opacity = 255 | |||
) | const [private] |
Definition at line 404 of file qgscomposerlegend.cpp.
References mSymbolHeight, mSymbolWidth, and QgsSymbol::pen().
Referenced by drawSymbol().
void QgsComposerLegend::drawPolygonSymbol | ( | QPainter * | p, | |
QgsSymbol * | s, | |||
double | currentYCoord, | |||
double & | currentXPosition, | |||
int | opacity = 255 | |||
) | const [private] |
Definition at line 429 of file qgscomposerlegend.cpp.
References QgsSymbol::brush(), mSymbolHeight, mSymbolWidth, QgsSymbol::pen(), and QgsRenderer::scaleBrush().
Referenced by drawSymbol().
QStringList QgsComposerLegend::layerIdList | ( | ) | const [private] |
Helper function that lists ids of layers contained in map canvas.
Definition at line 463 of file qgscomposerlegend.cpp.
References QgsMapRenderer::layerSet(), QgsComposition::mapRenderer(), and QgsComposerItem::mComposition.
Referenced by updateLegend().
QString QgsComposerLegend::mTitle [protected] |
Definition at line 106 of file qgscomposerlegend.h.
Referenced by paintAndDetermineSize(), readXML(), and writeXML().
QFont QgsComposerLegend::mTitleFont [protected] |
Definition at line 109 of file qgscomposerlegend.h.
Referenced by paintAndDetermineSize(), QgsComposerLegend(), readXML(), setTitleFont(), titleFont(), and writeXML().
QFont QgsComposerLegend::mGroupFont [protected] |
Definition at line 110 of file qgscomposerlegend.h.
Referenced by drawGroupItem(), groupFont(), QgsComposerLegend(), readXML(), setGroupFont(), and writeXML().
QFont QgsComposerLegend::mLayerFont [protected] |
Definition at line 111 of file qgscomposerlegend.h.
Referenced by drawLayerItem(), layerFont(), QgsComposerLegend(), readXML(), setLayerFont(), and writeXML().
QFont QgsComposerLegend::mItemFont [protected] |
Definition at line 112 of file qgscomposerlegend.h.
Referenced by drawLayerChildItems(), itemFont(), QgsComposerLegend(), readXML(), setItemFont(), and writeXML().
double QgsComposerLegend::mBoxSpace [protected] |
Space between item box and contents.
Definition at line 115 of file qgscomposerlegend.h.
Referenced by drawGroupItem(), drawLayerChildItems(), drawLayerItem(), paintAndDetermineSize(), readXML(), and writeXML().
double QgsComposerLegend::mLayerSpace [protected] |
Vertical space between layer entries.
Definition at line 117 of file qgscomposerlegend.h.
Referenced by drawGroupItem(), drawLayerItem(), readXML(), and writeXML().
double QgsComposerLegend::mSymbolSpace [protected] |
Vertical space between symbol entries.
Definition at line 119 of file qgscomposerlegend.h.
Referenced by drawLayerChildItems(), readXML(), and writeXML().
double QgsComposerLegend::mIconLabelSpace [protected] |
Horizontal space between item icon and label.
Definition at line 121 of file qgscomposerlegend.h.
Referenced by drawLayerChildItems(), readXML(), and writeXML().
double QgsComposerLegend::mSymbolWidth [protected] |
Width of symbol icon.
Definition at line 123 of file qgscomposerlegend.h.
Referenced by drawLayerChildItems(), drawLineSymbol(), drawPolygonSymbol(), drawSymbolV2(), QgsComposerLegend(), readXML(), and writeXML().
double QgsComposerLegend::mSymbolHeight [protected] |
Height of symbol icon.
Definition at line 125 of file qgscomposerlegend.h.
Referenced by drawLayerChildItems(), drawLineSymbol(), drawPolygonSymbol(), drawSymbol(), drawSymbolV2(), QgsComposerLegend(), readXML(), and writeXML().
QgsLegendModel QgsComposerLegend::mLegendModel [protected] |
Definition at line 127 of file qgscomposerlegend.h.
Referenced by paintAndDetermineSize(), QgsComposerLegend(), readXML(), updateLegend(), and writeXML().