QGIS API Documentation  2.99.0-Master (7705179)
qgscomposerutils.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgscomposerutils.h
3  -------------------
4  begin : July 2014
5  copyright : (C) 2014 by Nyall Dawson
6  email : nyall dot dawson at gmail dot com
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 #ifndef QGSCOMPOSERUTILS_H
18 #define QGSCOMPOSERUTILS_H
19 
20 #include "qgis_core.h"
21 #include "qgscomposition.h" //for page size and orientation enums
22 #include "qgsrendercontext.h"
23 #include <QPointF>
24 #include <QRectF>
25 
26 class QPainter;
27 
31 class CORE_EXPORT QgsComposerUtils
32 {
33  public:
34 
43  static void drawArrowHead( QPainter *p, const double x, const double y, const double angle, const double arrowHeadWidth );
44 
51  static double angle( QPointF p1, QPointF p2 );
52 
58  static void rotate( const double angle, double &x, double &y );
59 
65  static double normalizedAngle( const double angle );
66 
71  static double snappedAngle( const double angle );
72 
80  static QRectF largestRotatedRectWithinBounds( const QRectF &originalRect, const QRectF &boundsRect, const double rotation );
81 
86  static double pointsToMM( const double pointSize );
87 
92  static double mmToPoints( const double mmSize );
93 
101  static void relativeResizeRect( QRectF &rectToResize, const QRectF &boundsBefore, const QRectF &boundsAfter );
102 
111  static double relativePosition( const double position, const double beforeMin, const double beforeMax, const double afterMin, const double afterMax );
112 
118  static QgsComposition::PaperOrientation decodePaperOrientation( const QString &orientationString, bool &ok );
119 
126  static bool decodePresetPaperSize( const QString &presetString, double &width, double &height );
127 
133  static void readOldDataDefinedPropertyMap( const QDomElement &itemElem,
134  QgsPropertyCollection &dataDefinedProperties );
135 
140  static QgsProperty readOldDataDefinedProperty( const QgsComposerObject::DataDefinedProperty property, const QDomElement &ddElem );
141 
148  static QFont scaledFontPixelSize( const QFont &font );
149 
159  static double fontAscentMM( const QFont &font );
160 
170  static double fontDescentMM( const QFont &font );
171 
182  static double fontHeightMM( const QFont &font );
183 
195  static double fontHeightCharacterMM( const QFont &font, QChar character );
196 
209  static double textWidthMM( const QFont &font, const QString &text );
210 
221  static double textHeightMM( const QFont &font, const QString &text, double multiLineHeight = 1.0 );
222 
232  static void drawText( QPainter *painter, QPointF pos, const QString &text, const QFont &font, const QColor &color = QColor() );
233 
246  static void drawText( QPainter *painter, const QRectF &rect, const QString &text, const QFont &font, const QColor &color = QColor(), const Qt::AlignmentFlag halignment = Qt::AlignLeft, const Qt::AlignmentFlag valignment = Qt::AlignTop, const int flags = Qt::TextWordWrap );
247 
256  static QgsRenderContext createRenderContextForMap( QgsComposerMap *map, QPainter *painter, double dpi = -1 );
257 
265  static QgsRenderContext createRenderContextForComposition( QgsComposition *composition, QPainter *painter );
266 
267 };
268 
269 #endif
double ANALYSIS_EXPORT angle(QgsPoint *p1, QgsPoint *p2, QgsPoint *p3, QgsPoint *p4)
Calculates the angle between two segments (in 2 dimension, z-values are ignored)
Definition: MathUtils.cpp:786
DataDefinedProperty
Data defined properties for different item types.
A store for object properties.
Definition: qgsproperty.h:189
Graphics scene for map printing.
Object representing map window.
Contains information about the context of a rendering operation.
A grouped map of multiple QgsProperty objects, each referenced by a integer key value.
Utilities for compositions.