@@ -187,7 +187,7 @@ QgsLayoutChecker::QgsLayoutChecker( const QString &testName, QgsLayout *layout )
187
187
setColorTolerance ( 5 );
188
188
}
189
189
190
- bool QgsLayoutChecker::testLayout ( QString &checkedReport, int page, int pixelDiff )
190
+ bool QgsLayoutChecker::testLayout ( QString &checkedReport, int page, int pixelDiff, bool createReferenceImage )
191
191
{
192
192
if ( !mLayout )
193
193
{
@@ -196,22 +196,28 @@ bool QgsLayoutChecker::testLayout( QString &checkedReport, int page, int pixelDi
196
196
197
197
setControlName ( " expected_" + mTestName );
198
198
199
- #if 0
200
- //fake mode to generate expected image
201
- //assume 96 dpi and size of the control image 1122 * 794
202
- QImage newImage( QSize( 1122, 794 ), QImage::Format_RGB32 );
203
- mComposition->setPlotStyle( QgsComposition::Print );
204
- newImage.setDotsPerMeterX( 96 / 25.4 * 1000 );
205
- newImage.setDotsPerMeterY( 96 / 25.4 * 1000 );
206
- drawBackground( &newImage );
207
- QPainter expectedPainter( &newImage );
208
- //QRectF sourceArea( 0, 0, mComposition->paperWidth(), mComposition->paperHeight() );
209
- //QRectF targetArea( 0, 0, 3507, 2480 );
210
- mComposition->renderPage( &expectedPainter, page );
211
- expectedPainter.end();
212
- newImage.save( controlImagePath() + QDir::separator() + "expected_" + mTestName + ".png", "PNG" );
213
- return true;
214
- #endif // 0
199
+
200
+ if ( createReferenceImage )
201
+ {
202
+ // fake mode to generate expected image
203
+ // assume 96 dpi
204
+
205
+
206
+ QImage _outputImage ( mSize , QImage::Format_RGB32 );
207
+ _outputImage.setDotsPerMeterX ( 96 / 25.4 * 1000 );
208
+ _outputImage.setDotsPerMeterY ( 96 / 25.4 * 1000 );
209
+ QPainter _p ( &_outputImage );
210
+ mLayout ->exporter ().renderPage ( &_p, page );
211
+ _p.end ();
212
+
213
+ if ( ! QDir ( controlImagePath () ).exists () )
214
+ {
215
+ QDir ().mkdir ( controlImagePath () );
216
+ }
217
+ _outputImage.save ( controlImagePath () + QDir::separator () + " expected_" + mTestName + " .png" , " PNG" );
218
+ qDebug ( ) << " Reference image saved to : " + controlImagePath () + QDir::separator () + " expected_" + mTestName + " .png" ;
219
+
220
+ }
215
221
216
222
QImage outputImage ( mSize , QImage::Format_RGB32 );
217
223
outputImage.setDotsPerMeterX ( mDotsPerMeter );
0 commit comments