QGIS API Documentation  3.4.15-Madeira (e83d02e274)
qgsscalebarsettings.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsscalebarsettings.h
3  ---------------------
4  begin : April 2017
5  copyright : (C) 2017 by Nyall Dawson
6  email : nyall dot dawson at gmail dot com
7  ***************************************************************************/
8 /***************************************************************************
9  * *
10  * This program is free software; you can redistribute it and/or modify *
11  * it under the terms of the GNU General Public License as published by *
12  * the Free Software Foundation; either version 2 of the License, or *
13  * (at your option) any later version. *
14  * *
15  ***************************************************************************/
16 
17 #ifndef QGSSCALEBARSETTINGS_H
18 #define QGSSCALEBARSETTINGS_H
19 
20 #include "qgis_core.h"
21 #include "qgis.h"
22 #include "qgsunittypes.h"
23 #include "qgstextrenderer.h"
24 #include <QColor>
25 #include <QFont>
26 #include <QPen>
27 #include <QBrush>
28 
36 class CORE_EXPORT QgsScaleBarSettings
37 {
38  public:
39 
43  enum Alignment
44  {
45  AlignLeft = 0,
48  };
49 
54  {
55  SegmentSizeFixed = 0,
56  SegmentSizeFitWidth = 1
57  };
58 
63  {
64  mPen = QPen( mLineColor );
65  mPen.setJoinStyle( mLineJoinStyle );
66  mPen.setCapStyle( mLineCapStyle );
67  mPen.setWidthF( mLineWidth );
68 
69  mBrush.setColor( mFillColor );
70  mBrush.setStyle( Qt::SolidPattern );
71 
72  mBrush2.setColor( mFillColor2 );
73  mBrush2.setStyle( Qt::SolidPattern );
74 
75  mTextFormat.setSize( 12.0 );
76  mTextFormat.setSizeUnit( QgsUnitTypes::RenderPoints );
77  mTextFormat.setColor( QColor( 0, 0, 0 ) );
78  }
79 
85  int numberOfSegments() const { return mNumSegments; }
86 
92  void setNumberOfSegments( int segments ) { mNumSegments = segments; }
93 
99  int numberOfSegmentsLeft() const { return mNumSegmentsLeft; }
100 
106  void setNumberOfSegmentsLeft( int segments ) { mNumSegmentsLeft = segments; }
107 
112  double unitsPerSegment() const { return mNumUnitsPerSegment; }
113 
118  void setUnitsPerSegment( double units ) { mNumUnitsPerSegment = units; }
119 
126  SegmentSizeMode segmentSizeMode() const { return mSegmentSizeMode; }
127 
134  void setSegmentSizeMode( SegmentSizeMode mode ) { mSegmentSizeMode = mode; }
135 
144  double minimumBarWidth() const { return mMinBarWidth; }
145 
154  void setMinimumBarWidth( double width ) { mMinBarWidth = width; }
155 
164  double maximumBarWidth() const { return mMaxBarWidth; }
165 
174  void setMaximumBarWidth( double width ) { mMaxBarWidth = width; }
175 
180  QgsUnitTypes::DistanceUnit units() const { return mUnits; }
181 
186  void setUnits( QgsUnitTypes::DistanceUnit units ) { mUnits = units; }
187 
192  double mapUnitsPerScaleBarUnit() const { return mNumMapUnitsPerScaleBarUnit; }
193 
198  void setMapUnitsPerScaleBarUnit( double units ) { mNumMapUnitsPerScaleBarUnit = units; }
199 
204  QString unitLabel() const { return mUnitLabeling; }
205 
210  void setUnitLabel( const QString &label ) { mUnitLabeling = label; }
211 
217  QgsTextFormat &textFormat() { return mTextFormat; }
218 
224  QgsTextFormat textFormat() const SIP_SKIP { return mTextFormat; }
225 
231  void setTextFormat( const QgsTextFormat &format ) { mTextFormat = format; }
232 
238  Q_DECL_DEPRECATED QFont font() const SIP_DEPRECATED { return mTextFormat.font(); }
239 
245  Q_DECL_DEPRECATED void setFont( const QFont &font ) SIP_DEPRECATED
246  {
247  mTextFormat.setFont( font );
248  if ( font.pointSizeF() > 0 )
249  {
250  mTextFormat.setSize( font.pointSizeF() );
251  mTextFormat.setSizeUnit( QgsUnitTypes::RenderPoints );
252  }
253  else if ( font.pixelSize() > 0 )
254  {
255  mTextFormat.setSize( font.pixelSize() );
256  mTextFormat.setSizeUnit( QgsUnitTypes::RenderPixels );
257  }
258  }
259 
266  Q_DECL_DEPRECATED QColor fontColor() const SIP_DEPRECATED { return mTextFormat.color(); }
267 
274  Q_DECL_DEPRECATED void setFontColor( const QColor &color ) SIP_DEPRECATED { mTextFormat.setColor( color ); }
275 
281  QColor fillColor() const { return mFillColor; }
282 
288  void setFillColor( const QColor &color ) { mFillColor = color; mBrush.setColor( color ); }
289 
295  QColor fillColor2() const {return mFillColor2;}
296 
302  void setFillColor2( const QColor &color ) { mFillColor2 = color; mBrush2.setColor( color ); }
303 
308  QColor lineColor() const { return mLineColor; }
309 
314  void setLineColor( const QColor &color ) { mLineColor = color; mPen.setColor( mLineColor ); }
315 
320  double lineWidth() const { return mLineWidth; }
321 
326  void setLineWidth( double width ) { mLineWidth = width; mPen.setWidthF( width ); }
327 
333  QPen pen() const { return mPen; }
334 
339  void setPen( const QPen &pen ) { mPen = pen; }
340 
347  QBrush brush() const { return mBrush; }
348 
353  void setBrush( const QBrush &brush ) { mBrush = brush; }
354 
361  QBrush brush2() const { return mBrush2; }
362 
367  void setBrush2( const QBrush &brush ) { mBrush2 = brush; }
368 
373  double height() const { return mHeight; }
374 
379  void setHeight( double height ) { mHeight = height; }
380 
385  double labelBarSpace() const { return mLabelBarSpace; }
386 
391  void setLabelBarSpace( double space ) { mLabelBarSpace = space; }
392 
397  double boxContentSpace() const { return mBoxContentSpace; }
398 
403  void setBoxContentSpace( double space ) { mBoxContentSpace = space; }
404 
409  Alignment alignment() const { return mAlignment; }
410 
415  void setAlignment( Alignment alignment ) { mAlignment = alignment; }
416 
421  Qt::PenJoinStyle lineJoinStyle() const { return mLineJoinStyle; }
422 
427  void setLineJoinStyle( Qt::PenJoinStyle style ) { mLineJoinStyle = style; mPen.setJoinStyle( style ); }
428 
433  Qt::PenCapStyle lineCapStyle() const { return mLineCapStyle; }
434 
439  void setLineCapStyle( Qt::PenCapStyle style ) { mLineCapStyle = style; mPen.setCapStyle( style ); }
440 
441  private:
442 
444  int mNumSegments = 2;
446  int mNumSegmentsLeft = 0;
448  double mNumUnitsPerSegment = 0;
450  double mNumMapUnitsPerScaleBarUnit = 1.0;
452  SegmentSizeMode mSegmentSizeMode = SegmentSizeFixed;
454  double mMinBarWidth = 50.0;
456  double mMaxBarWidth = 150.0;
457 
459  QString mUnitLabeling;
460 
462  QgsTextFormat mTextFormat;
463 
465  QColor mFillColor = QColor( 0, 0, 0 );
467  QColor mFillColor2 = QColor( 255, 255, 255 );
469  QColor mLineColor = QColor( 0, 0, 0 );
471  double mLineWidth = 0.3;
473  QPen mPen;
475  QBrush mBrush;
477  QBrush mBrush2;
479  double mHeight = 3.0;
480 
482  double mLabelBarSpace = 3.0;
483 
485  double mBoxContentSpace = 1.0;
486 
487  Alignment mAlignment = AlignLeft;
488 
490 
491  Qt::PenJoinStyle mLineJoinStyle = Qt::MiterJoin;
492  Qt::PenCapStyle mLineCapStyle = Qt::SquareCap;
493 
494 };
495 
496 #endif // QGSSCALEBARSETTINGS_H
497 
QgsTextFormat textFormat() const
Returns the text format used for drawing text in the scalebar.
double labelBarSpace() const
Returns the spacing (in millimeters) between labels and the scalebar.
void setMinimumBarWidth(double width)
Sets the minimum width (in millimeters) for scale bar segments.
void setLineColor(const QColor &color)
Sets the color used for lines in the scalebar.
double minimumBarWidth() const
Returns the minimum width (in millimeters) for scale bar segments.
void setPen(const QPen &pen)
Sets the pen used for drawing outlines in the scalebar.
double lineWidth() const
Returns the line width in millimeters for lines in the scalebar.
Qt::PenJoinStyle lineJoinStyle() const
Returns the join style used for drawing lines in the scalebar.
int numberOfSegmentsLeft() const
Returns the number of segments included in the left part of the scalebar.
Alignment
Scalebar alignment.
double mapUnitsPerScaleBarUnit() const
Returns the number of map units per scale bar unit used by the scalebar.
Qt::PenCapStyle lineCapStyle() const
Returns the cap style used for drawing lines in the scalebar.
int numberOfSegments() const
Returns the number of segments included in the scalebar.
double maximumBarWidth() const
Returns the maximum width (in millimeters) for scale bar segments.
void setFillColor(const QColor &color)
Sets the color used for fills in the scalebar.
void setLineCapStyle(Qt::PenCapStyle style)
Sets the cap style used when drawing the lines in the scalebar.
void setMapUnitsPerScaleBarUnit(double units)
Sets the number of map units per scale bar unit used by the scalebar.
#define SIP_SKIP
Definition: qgis_sip.h:119
void setAlignment(Alignment alignment)
Sets the scalebar alignment.
Q_DECL_DEPRECATED QColor fontColor() const
Returns the color used for drawing text in the scalebar.
void setMaximumBarWidth(double width)
Sets the maximum width (in millimeters) for scale bar segments.
void setBoxContentSpace(double space)
Sets the space (margin) between the scalebar box and content in millimeters.
void setUnitsPerSegment(double units)
Sets the number of scalebar units per segment.
void setSegmentSizeMode(SegmentSizeMode mode)
Sets the size mode for scale bar segments.
QColor fillColor2() const
Returns the secondary color used for fills in the scalebar.
double unitsPerSegment() const
Returns the number of scalebar units per segment.
void setFillColor2(const QColor &color)
Sets the secondary color used for fills in the scalebar.
SegmentSizeMode
Modes for setting size for scale bar segments.
#define SIP_DEPRECATED
Definition: qgis_sip.h:99
QgsScaleBarSettings()
Constructor for QgsScaleBarSettings.
QgsTextFormat & textFormat()
Returns the text format used for drawing text in the scalebar.
DistanceUnit
Units of distance.
Definition: qgsunittypes.h:53
SegmentSizeMode segmentSizeMode() const
Returns the size mode for the scale bar segments.
void setHeight(double height)
Sets the scalebar height (in millimeters).
double boxContentSpace() const
Returns the spacing (margin) between the scalebar box and content in millimeters. ...
double height() const
Returns the scalebar height (in millimeters).
Q_DECL_DEPRECATED void setFontColor(const QColor &color)
Sets the color used for drawing text in the scalebar.
QColor fillColor() const
Returns the color used for fills in the scalebar.
void setLineJoinStyle(Qt::PenJoinStyle style)
Sets the join style used when drawing the lines in the scalebar.
QBrush brush() const
Returns the primary brush used for filling the scalebar.
QBrush brush2() const
Returns the secondary brush for the scalebar.
QPen pen() const
Returns the pen used for drawing outlines in the scalebar.
void setLineWidth(double width)
Sets the line width in millimeters for lines in the scalebar.
void setLabelBarSpace(double space)
Sets the spacing (in millimeters) between labels and the scalebar.
void setBrush2(const QBrush &brush)
Sets the secondary brush used for filling the scalebar.
Alignment alignment() const
Returns the scalebar alignment.
Q_DECL_DEPRECATED QFont font() const
Returns the font used for drawing text in the scalebar.
QgsUnitTypes::DistanceUnit units() const
Returns the distance units used by the scalebar.
void setNumberOfSegmentsLeft(int segments)
Sets the number of segments included in the left part of the scalebar.
void setTextFormat(const QgsTextFormat &format)
Sets the text format used for drawing text in the scalebar.
Container for all settings relating to text rendering.
QColor lineColor() const
Returns the color used for lines in the scalebar.
void setUnits(QgsUnitTypes::DistanceUnit units)
Sets the distance units used by the scalebar.
void setBrush(const QBrush &brush)
Sets the primary brush used for filling the scalebar.
Q_DECL_DEPRECATED void setFont(const QFont &font)
Sets the font used for drawing text in the scalebar.
void setUnitLabel(const QString &label)
Sets the label for units.
QString unitLabel() const
Returns the label for units.
void setNumberOfSegments(int segments)
Sets the number of segments included in the scalebar.
The QgsScaleBarSettings class stores the appearance and layout settings for scalebar drawing with Qgs...