QGIS API Documentation  3.4.15-Madeira (e83d02e274)
qgsmultirenderchecker.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmultirenderchecker.h
3  --------------------------------------
4  Date : 6.11.2014
5  Copyright : (C) 2014 Matthias Kuhn
6  Email : matthias at opengis dot ch
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSMULTIRENDERCHECKER_H
17 #define QGSMULTIRENDERCHECKER_H
18 
19 #include "qgis_core.h"
20 #include "qgsrenderchecker.h"
21 
53 class CORE_EXPORT QgsMultiRenderChecker
54 {
55  public:
56 
60  QgsMultiRenderChecker() = default;
61 
62  virtual ~QgsMultiRenderChecker() = default;
63 
69  void setControlName( const QString &name );
70 
71  void setControlPathPrefix( const QString &prefix );
72 
79  void setRenderedImage( const QString &renderedImagePath ) { mRenderedImage = renderedImagePath; }
80 
86  void setMapSettings( const QgsMapSettings &mapSettings );
87 
95  void setColorTolerance( unsigned int colorTolerance ) { mColorTolerance = colorTolerance; }
96 
103  void setSizeTolerance( int xTolerance, int yTolerance ) { mMaxSizeDifferenceX = xTolerance; mMaxSizeDifferenceY = yTolerance; }
104 
118  bool runTest( const QString &testName, unsigned int mismatchCount = 0 );
119 
123  QString report() const { return mReport; }
124 
128  QString controlImagePath() const;
129 
134  static void drawBackground( QImage *image ) { QgsRenderChecker::drawBackground( image ); }
135 
136  private:
137  QString mReport;
138  QString mRenderedImage;
139  QString mControlName;
140  QString mControlPathPrefix;
141  unsigned int mColorTolerance = 0;
142  int mMaxSizeDifferenceX = 0;
143  int mMaxSizeDifferenceY = 0;
144  QgsMapSettings mMapSettings;
145 };
146 
147 SIP_FEATURE( TESTS )
148 SIP_IF_FEATURE( TESTS )
149 
150 
158 class CORE_EXPORT QgsLayoutChecker : public QgsMultiRenderChecker
159 {
160  public:
161 
165  QgsLayoutChecker( const QString &testName, QgsLayout *layout );
166 
170  void setSize( QSize size ) { mSize = size; }
171 
186  bool testLayout( QString &report, int page = 0, int pixelDiff = 0, bool createReferenceImage = false );
187 
188  private:
189  QgsLayoutChecker() = delete;
190 
191  QString mTestName;
192  QgsLayout *mLayout = nullptr;
193  QSize mSize;
194  int mDotsPerMeter;
195 };
197 
198 SIP_END
199 
200 
201 #endif // QGSMULTIRENDERCHECKER_H
void setColorTolerance(unsigned int colorTolerance)
Set tolerance for color components used by runTest() Default value is 0.
void setSizeTolerance(int xTolerance, int yTolerance)
Sets the largest allowable difference in size between the rendered and the expected image...
The QgsMapSettings class contains configuration for rendering of the map.
This class allows checking rendered images against comparison images.
QString report() const
Returns a report for this test.
#define SIP_END
Definition: qgis_sip.h:182
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
Definition: qgslayout.h:49
#define SIP_IF_FEATURE(feature)
Definition: qgis_sip.h:155
static void drawBackground(QImage *image)
Draws a checkboard pattern for image backgrounds, so that opacity is visible without requiring a tran...
#define SIP_FEATURE(feature)
Definition: qgis_sip.h:150
static void drawBackground(QImage *image)
Draws a checkboard pattern for image backgrounds, so that opacity is visible without requiring a tran...
void setRenderedImage(const QString &renderedImagePath)
Set the path to the rendered image.