Quantum GIS API Documentation  1.8
Public Slots | Public Member Functions | Protected Attributes | Private Member Functions
QgsComposerLegend Class Reference

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.
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.
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 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 QgsComposerMapcomposerMap () 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 QgsComposerMapmComposerMap
 Reference to map (because symbols are sometimes in map units)

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.
QStringList splitStringForWrapping (QString stringToSplt)
 Splits a string using the the wrap char taking into account handling empty wrap char which means no wrapping.

Detailed Description

A legend that can be placed onto a map composition.

Definition at line 33 of file qgscomposerlegend.h.


Constructor & Destructor Documentation

Definition at line 64 of file qgscomposerlegend.cpp.

Definition at line 59 of file qgscomposerlegend.cpp.


Member Function Documentation

double QgsComposerLegend::boxSpace ( ) const [inline]

Definition at line 72 of file qgscomposerlegend.h.

Definition at line 97 of file qgscomposerlegend.h.

void QgsComposerLegend::drawGroupItem ( QPainter *  p,
QgsComposerGroupItem groupItem,
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:
ppainter
layerItemparent model item (layer)
currentYCoordin/out: current y position of legend item
maxXCoordin/out: maximum x-coordinate of the whole legend
layerOpacityopacity 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]
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]
void QgsComposerLegend::drawPolygonSymbol ( QPainter *  p,
QgsSymbol s,
double  currentYCoord,
double &  currentXPosition,
int  opacity = 255 
) const [private]
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 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.

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.

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.

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)
bool QgsComposerLegend::readXML ( const QDomElement &  itemElem,
const QDomDocument &  doc 
) [virtual]
void QgsComposerLegend::setBoxSpace ( double  s) [inline]

Definition at line 73 of file qgscomposerlegend.h.

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.

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.

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

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

Parameters:
elemis Dom element corresponding to 'Composer' tag
docDom 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().


Member Data Documentation

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

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]
double QgsComposerLegend::mGroupSpace [protected]

Vertical space between group entries.

Definition at line 133 of file qgscomposerlegend.h.

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

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]
QFont QgsComposerLegend::mLayerFont [protected]
double QgsComposerLegend::mLayerSpace [protected]

Vertical space between layer entries.

Definition at line 135 of file qgscomposerlegend.h.

Referenced by drawLayerItem(), readXML(), 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::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]
QString QgsComposerLegend::mTitle [protected]

Definition at line 121 of file qgscomposerlegend.h.

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

QFont QgsComposerLegend::mTitleFont [protected]
QString QgsComposerLegend::mWrapChar [protected]

Definition at line 122 of file qgscomposerlegend.h.

Referenced by QgsComposerLegend(), readXML(), splitStringForWrapping(), and writeXML().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines