QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
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.h"
21#include "qgis_core.h"
22#include "qgstextformat.h"
23
24#include <QBrush>
25#include <QColor>
26#include <QFont>
27#include <QPen>
28
30class QgsLineSymbol;
31class QgsFillSymbol;
32
39class CORE_EXPORT QgsScaleBarSettings
40{
41 public:
42
44
46
48
50
56 int numberOfSegments() const { return mNumSegments; }
57
63 void setNumberOfSegments( int segments ) { mNumSegments = segments; }
64
70 int numberOfSegmentsLeft() const { return mNumSegmentsLeft; }
71
77 void setNumberOfSegmentsLeft( int segments ) { mNumSegmentsLeft = segments; }
78
88 int numberOfSubdivisions() const { return mNumSubdivisions; }
89
99 void setNumberOfSubdivisions( int subdivisions ) { mNumSubdivisions = subdivisions; }
100
106 double subdivisionsHeight() const { return mSubdivisionsHeight; }
107
113 void setSubdivisionsHeight( double height ) { mSubdivisionsHeight = height; }
114
119 double unitsPerSegment() const { return mNumUnitsPerSegment; }
120
125 void setUnitsPerSegment( double units ) { mNumUnitsPerSegment = units; }
126
133 Qgis::ScaleBarSegmentSizeMode segmentSizeMode() const { return mSegmentSizeMode; }
134
141 void setSegmentSizeMode( Qgis::ScaleBarSegmentSizeMode mode ) { mSegmentSizeMode = mode; }
142
151 double minimumBarWidth() const { return mMinBarWidth; }
152
161 void setMinimumBarWidth( double width ) { mMinBarWidth = width; }
162
171 double maximumBarWidth() const { return mMaxBarWidth; }
172
181 void setMaximumBarWidth( double width ) { mMaxBarWidth = width; }
182
187 Qgis::DistanceUnit units() const { return mUnits; }
188
194
199 double mapUnitsPerScaleBarUnit() const { return mNumMapUnitsPerScaleBarUnit; }
200
205 void setMapUnitsPerScaleBarUnit( double units ) { mNumMapUnitsPerScaleBarUnit = units; }
206
211 QString unitLabel() const { return mUnitLabeling; }
212
217 void setUnitLabel( const QString &label ) { mUnitLabeling = label; }
218
224 QgsTextFormat &textFormat() { return mTextFormat; }
225
231 QgsTextFormat textFormat() const SIP_SKIP { return mTextFormat; }
232
238 void setTextFormat( const QgsTextFormat &format ) { mTextFormat = format; }
239
245 Q_DECL_DEPRECATED QFont font() const SIP_DEPRECATED { return mTextFormat.font(); }
246
252 Q_DECL_DEPRECATED void setFont( const QFont &font ) SIP_DEPRECATED
253 {
254 mTextFormat.setFont( font );
255 if ( font.pointSizeF() > 0 )
256 {
257 mTextFormat.setSize( font.pointSizeF() );
258 mTextFormat.setSizeUnit( Qgis::RenderUnit::Points );
259 }
260 else if ( font.pixelSize() > 0 )
261 {
262 mTextFormat.setSize( font.pixelSize() );
263 mTextFormat.setSizeUnit( Qgis::RenderUnit::Pixels );
264 }
265 }
266
273 Q_DECL_DEPRECATED QColor fontColor() const SIP_DEPRECATED { return mTextFormat.color(); }
274
281 Q_DECL_DEPRECATED void setFontColor( const QColor &color ) SIP_DEPRECATED { mTextFormat.setColor( color ); }
282
289 Q_DECL_DEPRECATED QColor fillColor() const SIP_DEPRECATED;
290
297 Q_DECL_DEPRECATED void setFillColor( const QColor &color ) SIP_DEPRECATED;
298
305 Q_DECL_DEPRECATED QColor fillColor2() const SIP_DEPRECATED;
306
313 Q_DECL_DEPRECATED void setFillColor2( const QColor &color ) SIP_DEPRECATED;
314
320 Q_DECL_DEPRECATED QColor lineColor() const SIP_DEPRECATED;
321
327 Q_DECL_DEPRECATED void setLineColor( const QColor &color ) SIP_DEPRECATED;
328
334 Q_DECL_DEPRECATED double lineWidth() const SIP_DEPRECATED;
335
341 Q_DECL_DEPRECATED void setLineWidth( double width ) SIP_DEPRECATED;
342
349 Q_DECL_DEPRECATED QPen pen() const SIP_DEPRECATED;
350
356 Q_DECL_DEPRECATED void setPen( const QPen &pen ) SIP_DEPRECATED;
357
368 QgsLineSymbol *lineSymbol() const;
369
379 void setLineSymbol( QgsLineSymbol *symbol SIP_TRANSFER );
380
391 QgsLineSymbol *divisionLineSymbol() const;
392
402 void setDivisionLineSymbol( QgsLineSymbol *symbol SIP_TRANSFER );
403
414 QgsLineSymbol *subdivisionLineSymbol() const;
415
425 void setSubdivisionLineSymbol( QgsLineSymbol *symbol SIP_TRANSFER );
426
436 QgsFillSymbol *fillSymbol() const;
437
446 void setFillSymbol( QgsFillSymbol *symbol SIP_TRANSFER );
447
448
458 QgsFillSymbol *alternateFillSymbol() const;
459
468 void setAlternateFillSymbol( QgsFillSymbol *symbol SIP_TRANSFER );
469
477 Q_DECL_DEPRECATED QBrush brush() const SIP_DEPRECATED;
478
484 Q_DECL_DEPRECATED void setBrush( const QBrush &brush ) SIP_DEPRECATED;
485
493 Q_DECL_DEPRECATED QBrush brush2() const SIP_DEPRECATED;
494
500 Q_DECL_DEPRECATED void setBrush2( const QBrush &brush ) SIP_DEPRECATED;
501
506 double height() const { return mHeight; }
507
512 void setHeight( double height ) { mHeight = height; }
513
518 double labelBarSpace() const { return mLabelBarSpace; }
519
524 void setLabelBarSpace( double space ) { mLabelBarSpace = space; }
525
532
538 void setLabelVerticalPlacement( Qgis::ScaleBarDistanceLabelVerticalPlacement placement ) { mLabelVerticalPlacement = placement; }
539
546
552 void setLabelHorizontalPlacement( Qgis::ScaleBarDistanceLabelHorizontalPlacement placement ) { mLabelHorizontalPlacement = placement; }
553
558 double boxContentSpace() const { return mBoxContentSpace; }
559
564 void setBoxContentSpace( double space ) { mBoxContentSpace = space; }
565
570 Qgis::ScaleBarAlignment alignment() const { return mAlignment; }
571
577
583 Q_DECL_DEPRECATED Qt::PenJoinStyle lineJoinStyle() const SIP_DEPRECATED;
584
590 Q_DECL_DEPRECATED void setLineJoinStyle( Qt::PenJoinStyle style ) SIP_DEPRECATED;
591
597 Q_DECL_DEPRECATED Qt::PenCapStyle lineCapStyle() const SIP_DEPRECATED;
598
604 Q_DECL_DEPRECATED void setLineCapStyle( Qt::PenCapStyle style ) SIP_DEPRECATED;
605
612 const QgsNumericFormat *numericFormat() const;
613
622 void setNumericFormat( QgsNumericFormat *format SIP_TRANSFER );
623
624 private:
625
627 int mNumSegments = 2;
629 int mNumSegmentsLeft = 0;
631 int mNumSubdivisions = 1;
633 double mSubdivisionsHeight = 1.5;
635 double mNumUnitsPerSegment = 0;
637 double mNumMapUnitsPerScaleBarUnit = 1.0;
639 Qgis::ScaleBarSegmentSizeMode mSegmentSizeMode = Qgis::ScaleBarSegmentSizeMode::Fixed;
641 double mMinBarWidth = 50.0;
643 double mMaxBarWidth = 150.0;
644
646 QString mUnitLabeling;
647
649 QgsTextFormat mTextFormat;
650
652 double mHeight = 3.0;
653
654 std::unique_ptr< QgsLineSymbol > mLineSymbol;
655 std::unique_ptr< QgsLineSymbol > mDivisionLineSymbol;
656 std::unique_ptr< QgsLineSymbol > mSubdivisionLineSymbol;
657 std::unique_ptr< QgsFillSymbol > mFillSymbol;
658 std::unique_ptr< QgsFillSymbol > mAlternateFillSymbol;
659
661 double mLabelBarSpace = 3.0;
663 Qgis::ScaleBarDistanceLabelVerticalPlacement mLabelVerticalPlacement = Qgis::ScaleBarDistanceLabelVerticalPlacement::AboveSegment;
665 Qgis::ScaleBarDistanceLabelHorizontalPlacement mLabelHorizontalPlacement = Qgis::ScaleBarDistanceLabelHorizontalPlacement::CenteredEdge;
666
668 double mBoxContentSpace = 1.0;
669
670 Qgis::ScaleBarAlignment mAlignment = Qgis::ScaleBarAlignment::Left;
671
672 Qgis::DistanceUnit mUnits = Qgis::DistanceUnit::Meters;
673
674 std::unique_ptr< QgsNumericFormat > mNumericFormat;
675
676};
677
678#endif // QGSSCALEBARSETTINGS_H
679
Provides global constants and enumerations for use throughout the application.
Definition qgis.h:56
ScaleBarDistanceLabelHorizontalPlacement
Scale bar distance label horizontal placement.
Definition qgis.h:5345
ScaleBarDistanceLabelVerticalPlacement
Scale bar distance label vertical placement.
Definition qgis.h:5331
ScaleBarAlignment
Scalebar alignment.
Definition qgis.h:5302
DistanceUnit
Units of distance.
Definition qgis.h:5013
@ Points
Points (e.g., for font sizes).
Definition qgis.h:5188
@ Pixels
Pixels.
Definition qgis.h:5186
ScaleBarSegmentSizeMode
Modes for setting size for scale bar segments.
Definition qgis.h:5317
A fill symbol type, for rendering Polygon and MultiPolygon geometries.
A line symbol type, for rendering LineString and MultiLineString geometries.
Abstract base class for numeric formatters, which allow for formatting a numeric value for display.
Qgis::ScaleBarAlignment alignment() const
Returns the scalebar alignment.
double subdivisionsHeight() const
Returns the scalebar subdivisions height (in millimeters) for segments included in the right part of ...
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 setLabelHorizontalPlacement(Qgis::ScaleBarDistanceLabelHorizontalPlacement placement)
Sets the horizontal placement of text labels.
Qgis::ScaleBarDistanceLabelVerticalPlacement labelVerticalPlacement() const
Returns the vertical placement of text labels.
double unitsPerSegment() const
Returns the number of scalebar units per segment.
Q_DECL_DEPRECATED QColor fontColor() const
Returns the color used for drawing text in the scalebar.
QgsTextFormat & textFormat()
Returns the text format used for drawing text in the scalebar.
void setUnitLabel(const QString &label)
Sets the label for units.
void setSegmentSizeMode(Qgis::ScaleBarSegmentSizeMode mode)
Sets the size mode for scale bar segments.
void setBoxContentSpace(double space)
Sets the space (margin) between the scalebar box and content in millimeters.
double boxContentSpace() const
Returns the spacing (margin) between the scalebar box and content in millimeters.
void setHeight(double height)
Sets the scalebar height (in millimeters).
Qgis::ScaleBarSegmentSizeMode segmentSizeMode() const
Returns the size mode for the scale bar segments.
void setLabelVerticalPlacement(Qgis::ScaleBarDistanceLabelVerticalPlacement placement)
Sets the vertical placement of text labels.
Q_DECL_DEPRECATED void setFontColor(const QColor &color)
Sets the color used for drawing text in the scalebar.
void setNumberOfSubdivisions(int subdivisions)
Sets the number of subdivisions for segments included in the right part of the scalebar (only used fo...
QgsTextFormat textFormat() const
Returns the text format used for drawing text in the scalebar.
void setTextFormat(const QgsTextFormat &format)
Sets the text format used for drawing text in the scalebar.
double minimumBarWidth() const
Returns the minimum width (in millimeters) for scale bar segments.
QString unitLabel() const
Returns the label for units.
int numberOfSubdivisions() const
Returns the number of subdivisions for segments included in the right part of the scalebar (only used...
Qgis::ScaleBarDistanceLabelHorizontalPlacement labelHorizontalPlacement() const
Returns the horizontal placement of text labels.
Q_DECL_DEPRECATED QFont font() const
Returns the font used for drawing text in the scalebar.
Qgis::DistanceUnit units() const
Returns the distance units used by the scalebar.
void setLabelBarSpace(double space)
Sets the spacing (in millimeters) between labels and the scalebar.
void setAlignment(Qgis::ScaleBarAlignment alignment)
Sets the scalebar alignment.
void setNumberOfSegments(int segments)
Sets the number of segments included in the scalebar.
void setUnitsPerSegment(double units)
Sets the number of scalebar units per segment.
void setSubdivisionsHeight(double height)
Sets the scalebar subdivisions height (in millimeters) for segments included in the right part of the...
double labelBarSpace() const
Returns the spacing (in millimeters) between labels and the scalebar.
QgsScaleBarSettings & operator=(const QgsScaleBarSettings &other)
double height() const
Returns the scalebar height (in millimeters).
int numberOfSegmentsLeft() const
Returns the number of segments included in the left part of the scalebar.
Q_DECL_DEPRECATED void setFont(const QFont &font)
Sets the font used for drawing text in the scalebar.
void setNumberOfSegmentsLeft(int segments)
Sets the number of segments included in the left part of the scalebar.
void setMapUnitsPerScaleBarUnit(double units)
Sets the number of map units per scale bar unit used by the scalebar.
void setUnits(Qgis::DistanceUnit units)
Sets the distance units used by the scalebar.
double mapUnitsPerScaleBarUnit() const
Returns the number of map units per scale bar unit used by the scalebar.
void setMinimumBarWidth(double width)
Sets the minimum width (in millimeters) for scale bar segments.
void setMaximumBarWidth(double width)
Sets the maximum width (in millimeters) for scale bar segments.
Container for all settings relating to text rendering.
#define SIP_DEPRECATED
Definition qgis_sip.h:114
#define SIP_SKIP
Definition qgis_sip.h:134
#define SIP_TRANSFER
Definition qgis_sip.h:36