QgsComposerLegend Class Reference
[MapComposer]

#include <qgscomposerlegend.h>

Inheritance diagram for QgsComposerLegend:

Inheritance graph
[legend]
Collaboration diagram for QgsComposerLegend:

Collaboration graph
[legend]
List of all members.

Detailed Description

A legend that can be placed onto a map composition.

Definition at line 30 of file 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.
QgsLegendModelmodel ()
 Returns pointer to the legend model.
void setTitle (const QString &t)
QString title () const
QFont titleFont () const
void setTitleFont (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 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 drawLayerChildItems (QPainter *p, QStandardItem *layerItem, double &currentYCoord, double &maxXCoord)
 Draws child items of a layer item.
void drawSymbol (QPainter *p, QgsSymbol *s, double currentYCoord, double &currentXPosition, double &symbolHeight) const
 Draws a symbol at the current y position and returns the new x position.
void drawPointSymbol (QPainter *, QgsSymbol *s, double currentYCoord, double &currentXPosition, double &symbolHeight) const
void drawLineSymbol (QPainter *, QgsSymbol *s, double currentYCoord, double &currentXPosition) const
void drawPolygonSymbol (QPainter *p, QgsSymbol *s, double currentYCoord, double &currentXPosition) const
QStringList layerIdList () const
 Helper function that lists ids of layers contained in map canvas.


Constructor & Destructor Documentation

QgsComposerLegend::QgsComposerLegend ( QgsComposition composition  ) 

Definition at line 27 of file qgscomposerlegend.cpp.

References adjustBoxSize(), layerIdList(), mItemFont, mLayerFont, mLegendModel, mSymbolHeight, mSymbolWidth, mTitleFont, QgsLegendModel::setLayerSet(), and synchronizeWithModel().

QgsComposerLegend::~QgsComposerLegend (  ) 

Definition at line 48 of file qgscomposerlegend.cpp.

QgsComposerLegend::QgsComposerLegend (  )  [private]

Definition at line 43 of file qgscomposerlegend.cpp.


Member Function Documentation

void QgsComposerLegend::paint ( QPainter *  painter,
const QStyleOptionGraphicsItem *  itemStyle,
QWidget *  pWidget 
)

Reimplementation of QCanvasItem::paint.

Definition at line 53 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 58 of file qgscomposerlegend.cpp.

References QgsComposerItem::drawBackground(), QgsComposerItem::drawFrame(), drawLayerChildItems(), QgsComposerItem::drawSelectionBoxes(), QgsComposerItem::drawText(), QgsComposerItem::fontAscentMillimeters(), QgsMapRenderer::layerSet(), QgsComposition::mapRenderer(), mBoxSpace, QgsComposerItem::mComposition, mLayerFont, mLayerSpace, 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 163 of file qgscomposerlegend.cpp.

References paintAndDetermineSize(), and QgsComposerItem::setSceneRect().

Referenced by QgsComposerLegend(), setItemFont(), setLayerFont(), setTitleFont(), synchronizeWithModel(), and updateLegend().

QgsLegendModel* QgsComposerLegend::model (  )  [inline]

Returns pointer to the legend model.

Definition at line 48 of file qgscomposerlegend.h.

void QgsComposerLegend::setTitle ( const QString &  t  )  [inline]

Definition at line 51 of file qgscomposerlegend.h.

QString QgsComposerLegend::title (  )  const [inline]

Definition at line 52 of file qgscomposerlegend.h.

QFont QgsComposerLegend::titleFont (  )  const

Definition at line 383 of file qgscomposerlegend.cpp.

References mTitleFont.

void QgsComposerLegend::setTitleFont ( const QFont &  f  ) 

Definition at line 362 of file qgscomposerlegend.cpp.

References adjustBoxSize(), and mTitleFont.

QFont QgsComposerLegend::layerFont (  )  const

Definition at line 388 of file qgscomposerlegend.cpp.

References mLayerFont.

void QgsComposerLegend::setLayerFont ( const QFont &  f  ) 

Definition at line 369 of file qgscomposerlegend.cpp.

References adjustBoxSize(), and mLayerFont.

QFont QgsComposerLegend::itemFont (  )  const

Definition at line 393 of file qgscomposerlegend.cpp.

References mItemFont.

void QgsComposerLegend::setItemFont ( const QFont &  f  ) 

Definition at line 376 of file qgscomposerlegend.cpp.

References adjustBoxSize(), and mItemFont.

double QgsComposerLegend::boxSpace (  )  const [inline]

Definition at line 63 of file qgscomposerlegend.h.

void QgsComposerLegend::setBoxSpace ( double  s  )  [inline]

Definition at line 64 of file qgscomposerlegend.h.

double QgsComposerLegend::layerSpace (  )  const [inline]

Definition at line 66 of file qgscomposerlegend.h.

void QgsComposerLegend::setLayerSpace ( double  s  )  [inline]

Definition at line 67 of file qgscomposerlegend.h.

double QgsComposerLegend::symbolSpace (  )  const [inline]

Definition at line 69 of file qgscomposerlegend.h.

void QgsComposerLegend::setSymbolSpace ( double  s  )  [inline]

Definition at line 70 of file qgscomposerlegend.h.

double QgsComposerLegend::iconLabelSpace (  )  const [inline]

Definition at line 72 of file qgscomposerlegend.h.

void QgsComposerLegend::setIconLabelSpace ( double  s  )  [inline]

Definition at line 73 of file qgscomposerlegend.h.

double QgsComposerLegend::symbolWidth (  )  const [inline]

Definition at line 75 of file qgscomposerlegend.h.

void QgsComposerLegend::setSymbolWidth ( double  w  )  [inline]

Definition at line 76 of file qgscomposerlegend.h.

double QgsComposerLegend::symbolHeight (  )  const [inline]

Definition at line 78 of file qgscomposerlegend.h.

void QgsComposerLegend::setSymbolHeight ( double  h  )  [inline]

Definition at line 79 of file qgscomposerlegend.h.

void QgsComposerLegend::updateLegend (  ) 

Updates the model and all legend entries.

Definition at line 398 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
temp write template file

Implements QgsComposerItem.

Definition at line 405 of file qgscomposerlegend.cpp.

References QgsComposerItem::_writeXML(), mBoxSpace, 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

Implements QgsComposerItem.

Definition at line 433 of file qgscomposerlegend.cpp.

References QgsComposerItem::_readXML(), mBoxSpace, mIconLabelSpace, mItemFont, mLayerFont, mLayerSpace, mLegendModel, mSymbolHeight, mSymbolSpace, mSymbolWidth, mTitle, mTitleFont, and QgsLegendModel::readXML().

void QgsComposerLegend::synchronizeWithModel (  )  [slot]

Data changed.

Definition at line 356 of file qgscomposerlegend.cpp.

References adjustBoxSize().

Referenced by QgsComposerLegend().

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

Draws child items of a layer item.

Parameters:
layerItem parent model item (layer)
currentYCoord in/out: current y position of legend item
maxXCoord in/out: maximum x-coordinate of the whole legend

Definition at line 172 of file qgscomposerlegend.cpp.

References drawSymbol(), QgsComposerItem::drawText(), QgsComposerItem::fontAscentMillimeters(), mBoxSpace, mIconLabelSpace, mItemFont, mSymbolHeight, mSymbolSpace, mSymbolWidth, and QgsComposerItem::textWidthMillimeters().

Referenced by paintAndDetermineSize().

void QgsComposerLegend::drawSymbol ( QPainter *  p,
QgsSymbol s,
double  currentYCoord,
double &  currentXPosition,
double &  symbolHeight 
) 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 241 of file qgscomposerlegend.cpp.

References drawLineSymbol(), drawPointSymbol(), drawPolygonSymbol(), QGis::Line, mSymbolHeight, QGis::Point, QGis::Polygon, QgsSymbol::type(), and QGis::UnknownGeometry.

Referenced by drawLayerChildItems().

void QgsComposerLegend::drawPointSymbol ( QPainter *  ,
QgsSymbol s,
double  currentYCoord,
double &  currentXPosition,
double &  symbolHeight 
) const [private]

Definition at line 268 of file qgscomposerlegend.cpp.

References QgsSymbol::getPointSymbolAsImage(), and QgsSymbol::pointSize().

Referenced by drawSymbol().

void QgsComposerLegend::drawLineSymbol ( QPainter *  ,
QgsSymbol s,
double  currentYCoord,
double &  currentXPosition 
) const [private]

Definition at line 305 of file qgscomposerlegend.cpp.

References mSymbolHeight, mSymbolWidth, and QgsSymbol::pen().

Referenced by drawSymbol().

void QgsComposerLegend::drawPolygonSymbol ( QPainter *  p,
QgsSymbol s,
double  currentYCoord,
double &  currentXPosition 
) const [private]

Definition at line 325 of file qgscomposerlegend.cpp.

References QgsSymbol::brush(), mSymbolHeight, mSymbolWidth, and QgsSymbol::pen().

Referenced by drawSymbol().

QStringList QgsComposerLegend::layerIdList (  )  const [private]

Helper function that lists ids of layers contained in map canvas.

Definition at line 342 of file qgscomposerlegend.cpp.

References QgsMapLayerRegistry::instance(), and QgsMapLayerRegistry::mapLayers().

Referenced by QgsComposerLegend(), and updateLegend().


Member Data Documentation

QString QgsComposerLegend::mTitle [protected]

Definition at line 100 of file qgscomposerlegend.h.

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

QFont QgsComposerLegend::mTitleFont [protected]

Definition at line 103 of file qgscomposerlegend.h.

Referenced by paintAndDetermineSize(), QgsComposerLegend(), readXML(), setTitleFont(), titleFont(), and writeXML().

QFont QgsComposerLegend::mLayerFont [protected]

Definition at line 104 of file qgscomposerlegend.h.

Referenced by layerFont(), paintAndDetermineSize(), QgsComposerLegend(), readXML(), setLayerFont(), and writeXML().

QFont QgsComposerLegend::mItemFont [protected]

Definition at line 105 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 108 of file qgscomposerlegend.h.

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

double QgsComposerLegend::mLayerSpace [protected]

Vertical space between layer entries.

Definition at line 110 of file qgscomposerlegend.h.

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

double QgsComposerLegend::mSymbolSpace [protected]

Vertical space between symbol entries.

Definition at line 112 of file qgscomposerlegend.h.

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

double QgsComposerLegend::mIconLabelSpace [protected]

Horizontal space between item icon and label.

Definition at line 114 of file qgscomposerlegend.h.

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

double QgsComposerLegend::mSymbolWidth [protected]

Width of symbol icon.

Definition at line 116 of file qgscomposerlegend.h.

Referenced by drawLayerChildItems(), drawLineSymbol(), drawPolygonSymbol(), QgsComposerLegend(), readXML(), and writeXML().

double QgsComposerLegend::mSymbolHeight [protected]

Height of symbol icon.

Definition at line 118 of file qgscomposerlegend.h.

Referenced by drawLayerChildItems(), drawLineSymbol(), drawPolygonSymbol(), drawSymbol(), QgsComposerLegend(), readXML(), and writeXML().

QgsLegendModel QgsComposerLegend::mLegendModel [protected]

Definition at line 120 of file qgscomposerlegend.h.

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


The documentation for this class was generated from the following files:
Generated on Wed Jan 7 01:51:24 2009 for Quantum GIS API Documentation by  doxygen 1.5.1