QgsComposerLegend Class Reference
[MapComposer]

A legend that can be placed onto a map composition. More...

#include <qgscomposerlegend.h>

Inheritance diagram for QgsComposerLegend:

Inheritance graph
[legend]
Collaboration diagram for QgsComposerLegend:

Collaboration graph
[legend]

List of all members.

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.
QgsLegendModelmodel ()
 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 &currentYCoord, double &maxXCoord)
 Draws a group item and all subitems.
void drawLayerItem (QPainter *p, QgsComposerLayerItem *layerItem, double &currentYCoord, double &maxXCoord)
 Draws a layer item and all subitems.
void drawLayerChildItems (QPainter *p, QStandardItem *layerItem, double &currentYCoord, double &maxXCoord, int layerOpacity=255)
 Draws child items of a layer item.
void drawSymbol (QPainter *p, QgsSymbol *s, double currentYCoord, double &currentXPosition, 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 &currentXPosition, double &symbolHeight, int layerOpacity=255) const
void drawPointSymbol (QPainter *, QgsSymbol *s, double currentYCoord, double &currentXPosition, double &symbolHeight, int opacity=255) const
void drawLineSymbol (QPainter *, QgsSymbol *s, double currentYCoord, double &currentXPosition, int opacity=255) const
void drawPolygonSymbol (QPainter *p, QgsSymbol *s, double currentYCoord, double &currentXPosition, int opacity=255) const
QStringList layerIdList () const
 Helper function that lists ids of layers contained in map canvas.


Detailed Description

A legend that can be placed onto a map composition.

Definition at line 32 of file qgscomposerlegend.h.


Constructor & Destructor Documentation

QgsComposerLegend::QgsComposerLegend ( QgsComposition composition  ) 

QgsComposerLegend::~QgsComposerLegend (  ) 

Definition at line 58 of file qgscomposerlegend.cpp.

QgsComposerLegend::QgsComposerLegend (  )  [private]

Definition at line 53 of file qgscomposerlegend.cpp.


Member Function Documentation

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  ) 

void QgsComposerLegend::adjustBoxSize (  ) 

QgsLegendModel* QgsComposerLegend::model (  )  [inline]

Returns pointer to the legend model.

Definition at line 50 of file qgscomposerlegend.h.

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

Definition at line 511 of file qgscomposerlegend.cpp.

References mTitleFont.

void QgsComposerLegend::setTitleFont ( const QFont &  f  ) 

Definition at line 483 of file qgscomposerlegend.cpp.

References adjustBoxSize(), and mTitleFont.

QFont QgsComposerLegend::groupFont (  )  const

Definition at line 516 of file qgscomposerlegend.cpp.

References mGroupFont.

void QgsComposerLegend::setGroupFont ( const QFont &  f  ) 

Definition at line 490 of file qgscomposerlegend.cpp.

References adjustBoxSize(), and mGroupFont.

QFont QgsComposerLegend::layerFont (  )  const

Definition at line 521 of file qgscomposerlegend.cpp.

References mLayerFont.

void QgsComposerLegend::setLayerFont ( const QFont &  f  ) 

Definition at line 497 of file qgscomposerlegend.cpp.

References adjustBoxSize(), and mLayerFont.

QFont QgsComposerLegend::itemFont (  )  const

Definition at line 526 of file qgscomposerlegend.cpp.

References mItemFont.

void QgsComposerLegend::setItemFont ( const QFont &  f  ) 

Definition at line 504 of file qgscomposerlegend.cpp.

References adjustBoxSize(), and mItemFont.

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

Parameters:
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

Parameters:
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]

void QgsComposerLegend::drawLayerItem ( QPainter *  p,
QgsComposerLayerItem layerItem,
double &  currentYCoord,
double &  maxXCoord 
) [private]

void QgsComposerLegend::drawLayerChildItems ( QPainter *  p,
QStandardItem *  layerItem,
double &  currentYCoord,
double &  maxXCoord,
int  layerOpacity = 255 
) [private]

Draws child items of a layer item.

Parameters:
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]

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().


Member Data Documentation

QString QgsComposerLegend::mTitle [protected]

Definition at line 106 of file qgscomposerlegend.h.

Referenced by paintAndDetermineSize(), readXML(), and writeXML().

QFont QgsComposerLegend::mTitleFont [protected]

QFont QgsComposerLegend::mGroupFont [protected]

QFont QgsComposerLegend::mLayerFont [protected]

QFont QgsComposerLegend::mItemFont [protected]

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().

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]


The documentation for this class was generated from the following files:

Generated on Sat Feb 4 19:17:27 2012 for Quantum GIS API Documentation by  doxygen 1.5.6