Quantum GIS API Documentation  master-ce49b66
QgsComposerScaleBar Class Reference

A scale bar item that can be added to a map composition. More...

#include <qgscomposerscalebar.h>

+ Inheritance diagram for QgsComposerScaleBar:
+ Collaboration diagram for QgsComposerScaleBar:

List of all members.

Public Types

enum  Alignment { Left = 0, Middle, Right }
 Added in version 1.8. More...
enum  ScaleBarUnits { MapUnits = 0, Meters, Feet }
 Added in version 1.9. More...

Public Slots

void invalidateCurrentMap ()
 Sets mCompositionMap to 0 if the map is deleted.
void updateSegmentSize ()

Public Member Functions

 QgsComposerScaleBar (QgsComposition *composition)
 ~QgsComposerScaleBar ()
void adjustBoxSize ()
 Sets box size suitable to content.
Alignment alignment () const
 Left / Middle/ Right.
void applyDefaultSettings ()
 Apply default settings.
void applyDefaultSize ()
 Apply default size (scale bar 1/5 of map item width)
double boxContentSpace () const
QBrush brush () const
const QgsComposerMapcomposerMap () const
void correctXPositionAlignment (double width, double widthAfter)
 Moves scalebar position to the left / right depending on alignment and change in item width.
QString firstLabelString () const
 Returns string of first label (important for drawing, labeling, size calculation.
QFont font () const
QColor fontColor () const
double height () const
double labelBarSpace () const
double numMapUnitsPerScaleBarUnit () const
int numSegments () const
int numSegmentsLeft () const
double numUnitsPerSegment () const
void paint (QPainter *painter, const QStyleOptionGraphicsItem *itemStyle, QWidget *pWidget)
 Reimplementation of QCanvasItem::paint.
QPen pen () const
bool readXML (const QDomElement &itemElem, const QDomDocument &doc)
 sets state from Dom document
double segmentMillimeters () const
void segmentPositions (QList< QPair< double, double > > &posWidthList) const
 Returns the x - positions of the segment borders (in item coordinates) and the width of the segment.
void setAlignment (Alignment a)
void setBoxContentSpace (double space)
void setBrush (const QBrush &brush)
void setComposerMap (const QgsComposerMap *map)
void setFont (const QFont &font)
void setFontColor (const QColor &c)
void setHeight (double h)
void setLabelBarSpace (double space)
void setNumMapUnitsPerScaleBarUnit (double d)
void setNumSegments (int nSegments)
void setNumSegmentsLeft (int nSegmentsLeft)
void setNumUnitsPerSegment (double units)
void setPen (const QPen &pen)
void setStyle (const QString &styleName)
 Sets style by name.
void setUnitLabeling (const QString &label)
void setUnits (ScaleBarUnits u)
QString style () const
 Returns style name.
virtual int type () const
 return correct graphics item type.
QString unitLabeling () const
ScaleBarUnits units () const
void update ()
 Adjusts box size and calls QgsComposerItem::update()
bool writeXML (QDomElement &elem, QDomDocument &doc) const
 stores state in Dom element

Protected Member Functions

double mapWidth () const
 Returns diagonal of composer map in selected units (map units / meters / feet)
void refreshSegmentMillimeters ()
 Calculates with of a segment in mm and stores it in mSegmentMillimeters.

Protected Attributes

Alignment mAlignment
double mBoxContentSpace
 Space between content and item box.
QBrush mBrush
 Fill.
const QgsComposerMapmComposerMap
 Reference to composer map object.
QFont mFont
 Font.
QColor mFontColor
double mHeight
 Height of bars/lines.
double mLabelBarSpace
 Space between bar and Text labels.
double mNumMapUnitsPerScaleBarUnit
 Number of map units per scale bar units (e.g.
int mNumSegments
 Number of segments on right side.
int mNumSegmentsLeft
 Number of segments on left side.
double mNumUnitsPerSegment
 Size of a segment (in map units)
QPen mPen
 Outline.
double mSegmentMillimeters
 Width of a segment (in mm)
QgsScaleBarStylemStyle
 Scalebar style.
QString mUnitLabeling
 Labeling of map units.
ScaleBarUnits mUnits

Detailed Description

A scale bar item that can be added to a map composition.

Definition at line 30 of file qgscomposerscalebar.h.


Member Enumeration Documentation

Added in version 1.8.

Enumerator:
Left 
Middle 
Right 

Definition at line 37 of file qgscomposerscalebar.h.

Added in version 1.9.

Enumerator:
MapUnits 
Meters 
Feet 

Definition at line 45 of file qgscomposerscalebar.h.


Constructor & Destructor Documentation

Definition at line 50 of file qgscomposerscalebar.cpp.

References mStyle.


Member Function Documentation

Sets box size suitable to content.

Definition at line 268 of file qgscomposerscalebar.cpp.

References QgsScaleBarStyle::calculateBoxSize(), mStyle, and QgsComposerItem::setSceneRect().

Referenced by applyDefaultSize(), setFont(), and update().

Alignment QgsComposerScaleBar::alignment ( void  ) const [inline]

Left / Middle/ Right.

Note:
: this method was added in version 1.8

Definition at line 106 of file qgscomposerscalebar.h.

QBrush QgsComposerScaleBar::brush ( ) const [inline]

Definition at line 94 of file qgscomposerscalebar.h.

Referenced by readXML(), and QgsNumericScaleBarStyle::scaleText().

void QgsComposerScaleBar::correctXPositionAlignment ( double  width,
double  widthAfter 
)

Moves scalebar position to the left / right depending on alignment and change in item width.

Definition at line 503 of file qgscomposerscalebar.cpp.

References mAlignment, Middle, QgsComposerItem::move(), and Right.

Referenced by setBoxContentSpace(), setNumSegments(), setNumSegmentsLeft(), setNumUnitsPerSegment(), and updateSegmentSize().

Returns string of first label (important for drawing, labeling, size calculation.

Definition at line 369 of file qgscomposerscalebar.cpp.

References mNumMapUnitsPerScaleBarUnit, mNumSegmentsLeft, and mNumUnitsPerSegment.

Referenced by QgsScaleBarStyle::calculateBoxSize(), QgsScaleBarStyle::drawLabels(), and paint().

QColor QgsComposerScaleBar::fontColor ( ) const [inline]

Definition at line 79 of file qgscomposerscalebar.h.

Referenced by QgsScaleBarStyle::drawLabels().

Sets mCompositionMap to 0 if the map is deleted.

Definition at line 155 of file qgscomposerscalebar.cpp.

References mComposerMap, and updateSegmentSize().

Referenced by readXML(), and setComposerMap().

int QgsComposerScaleBar::numSegments ( ) const [inline]

Definition at line 62 of file qgscomposerscalebar.h.

Referenced by QgsScaleBarStyle::calculateBoxSize().

int QgsComposerScaleBar::numSegmentsLeft ( ) const [inline]

Definition at line 65 of file qgscomposerscalebar.h.

Referenced by QgsScaleBarStyle::drawLabels().

void QgsComposerScaleBar::paint ( QPainter *  painter,
const QStyleOptionGraphicsItem *  itemStyle,
QWidget *  pWidget 
)
bool QgsComposerScaleBar::readXML ( const QDomElement &  itemElem,
const QDomDocument &  doc 
) [virtual]

Calculates with of a segment in mm and stores it in mSegmentMillimeters.

Definition at line 162 of file qgscomposerscalebar.cpp.

References QgsComposerMap::extent(), mapWidth(), mComposerMap, mNumUnitsPerSegment, and mSegmentMillimeters.

Referenced by applyDefaultSize(), setComposerMap(), setNumUnitsPerSegment(), setUnits(), and updateSegmentSize().

void QgsComposerScaleBar::segmentPositions ( QList< QPair< double, double > > &  posWidthList) const

Returns the x - positions of the segment borders (in item coordinates) and the width of the segment.

Definition at line 299 of file qgscomposerscalebar.cpp.

References mBoxContentSpace, mNumSegments, mNumSegmentsLeft, mPen, and mSegmentMillimeters.

Referenced by QgsScaleBarStyle::calculateBoxSize(), QgsDoubleBoxScaleBarStyle::draw(), QgsSingleBoxScaleBarStyle::draw(), QgsTicksScaleBarStyle::draw(), and QgsScaleBarStyle::drawLabels().

Note:
: this method was added in version 1.8

Definition at line 109 of file qgscomposerscalebar.h.

void QgsComposerScaleBar::setBrush ( const QBrush &  brush) [inline]

Definition at line 88 of file qgscomposerscalebar.h.

void QgsComposerScaleBar::setFont ( const QFont &  font)
void QgsComposerScaleBar::setFontColor ( const QColor &  c) [inline]

Definition at line 80 of file qgscomposerscalebar.h.

void QgsComposerScaleBar::setHeight ( double  h) [inline]

Definition at line 91 of file qgscomposerscalebar.h.

void QgsComposerScaleBar::setLabelBarSpace ( double  space) [inline]

Definition at line 97 of file qgscomposerscalebar.h.

Definition at line 72 of file qgscomposerscalebar.h.

Referenced by applyDefaultSize().

void QgsComposerScaleBar::setPen ( const QPen &  pen) [inline]

Definition at line 85 of file qgscomposerscalebar.h.

void QgsComposerScaleBar::setStyle ( const QString &  styleName)

Sets style by name.

Parameters:
styleName(untranslated) style name. Possibilities are: 'Single Box', 'Double Box', 'Line Ticks Middle', 'Line Ticks Down', 'Line Ticks Up', 'Numeric'

Definition at line 319 of file qgscomposerscalebar.cpp.

References QgsComposerItem::itemChanged(), mStyle, QgsTicksScaleBarStyle::setTickPosition(), QgsTicksScaleBarStyle::TicksDown, QgsTicksScaleBarStyle::TicksMiddle, and QgsTicksScaleBarStyle::TicksUp.

Referenced by readXML().

void QgsComposerScaleBar::setUnitLabeling ( const QString &  label) [inline]

Definition at line 75 of file qgscomposerscalebar.h.

Referenced by applyDefaultSize().

Note:
: this method was added in version 1.9

Definition at line 205 of file qgscomposerscalebar.cpp.

References QgsComposerItem::itemChanged(), mUnits, and refreshSegmentMillimeters().

Referenced by applyDefaultSize().

QString QgsComposerScaleBar::style ( ) const

Returns style name.

Definition at line 357 of file qgscomposerscalebar.cpp.

References mStyle, and QgsScaleBarStyle::name().

virtual int QgsComposerScaleBar::type ( ) const [inline, virtual]

return correct graphics item type.

Added in v1.7

Reimplemented from QgsComposerItem.

Definition at line 56 of file qgscomposerscalebar.h.

References QgsComposerItem::ComposerScaleBar.

Note:
: this method was added in version 1.9

Definition at line 112 of file qgscomposerscalebar.h.

Referenced by setNumUnitsPerSegment().

Adjusts box size and calls QgsComposerItem::update()

Definition at line 279 of file qgscomposerscalebar.cpp.

References adjustBoxSize().

Referenced by setFont(), and updateSegmentSize().

bool QgsComposerScaleBar::writeXML ( QDomElement &  elem,
QDomDocument &  doc 
) const [virtual]

Member Data Documentation

Space between content and item box.

Definition at line 194 of file qgscomposerscalebar.h.

Referenced by applyDefaultSettings(), readXML(), segmentPositions(), setBoxContentSpace(), and writeXML().

QBrush QgsComposerScaleBar::mBrush [protected]

Fill.

Definition at line 184 of file qgscomposerscalebar.h.

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

QFont QgsComposerScaleBar::mFont [protected]

Font.

Definition at line 179 of file qgscomposerscalebar.h.

Referenced by applyDefaultSettings(), font(), paint(), readXML(), setFont(), and writeXML().

QColor QgsComposerScaleBar::mFontColor [protected]

Definition at line 180 of file qgscomposerscalebar.h.

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

double QgsComposerScaleBar::mHeight [protected]

Height of bars/lines.

Definition at line 186 of file qgscomposerscalebar.h.

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

Space between bar and Text labels.

Definition at line 191 of file qgscomposerscalebar.h.

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

Number of map units per scale bar units (e.g.

1000 to have km for a map with m units)

Definition at line 174 of file qgscomposerscalebar.h.

Referenced by applyDefaultSettings(), firstLabelString(), readXML(), and writeXML().

Number of segments on right side.

Definition at line 168 of file qgscomposerscalebar.h.

Referenced by applyDefaultSettings(), readXML(), segmentPositions(), setNumSegments(), and writeXML().

Number of segments on left side.

Definition at line 170 of file qgscomposerscalebar.h.

Referenced by applyDefaultSettings(), firstLabelString(), readXML(), segmentPositions(), setNumSegmentsLeft(), and writeXML().

Size of a segment (in map units)

Definition at line 172 of file qgscomposerscalebar.h.

Referenced by firstLabelString(), readXML(), refreshSegmentMillimeters(), setNumUnitsPerSegment(), and writeXML().

QPen QgsComposerScaleBar::mPen [protected]

Outline.

Definition at line 182 of file qgscomposerscalebar.h.

Referenced by applyDefaultSettings(), readXML(), segmentPositions(), and writeXML().

Width of a segment (in mm)

Definition at line 197 of file qgscomposerscalebar.h.

Referenced by readXML(), refreshSegmentMillimeters(), segmentPositions(), and writeXML().

Labeling of map units.

Definition at line 177 of file qgscomposerscalebar.h.

Referenced by readXML(), and writeXML().

Definition at line 201 of file qgscomposerscalebar.h.

Referenced by mapWidth(), readXML(), setUnits(), and writeXML().


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