mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-09 00:08:52 -04:00
Move QgsCompositionChecker to core, speeds up compilation with
tests enabled
This commit is contained in:
parent
df22d565f5
commit
eb31e01a2f
@ -322,6 +322,7 @@ SET(ENABLE_MODELTEST FALSE CACHE BOOL "Enable QT ModelTest (not for production)"
|
|||||||
|
|
||||||
IF (ENABLE_TESTS)
|
IF (ENABLE_TESTS)
|
||||||
SET( QT_USE_QTTEST TRUE )
|
SET( QT_USE_QTTEST TRUE )
|
||||||
|
ADD_DEFINITIONS(-DENABLE_TESTS)
|
||||||
ENABLE_TESTING()
|
ENABLE_TESTING()
|
||||||
# Adds some testing specific build targets e.g. make Experimental
|
# Adds some testing specific build targets e.g. make Experimental
|
||||||
INCLUDE(Dart)
|
INCLUDE(Dart)
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#include "qgsmultirenderchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
|
#include "qgscomposition.h"
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
QgsMultiRenderChecker::QgsMultiRenderChecker()
|
QgsMultiRenderChecker::QgsMultiRenderChecker()
|
||||||
@ -102,3 +102,84 @@ QString QgsMultiRenderChecker::controlImagePath() const
|
|||||||
QDir::separator() + mControlPathPrefix + QDir::separator() + mControlName + QDir::separator();
|
QDir::separator() + mControlPathPrefix + QDir::separator() + mControlName + QDir::separator();
|
||||||
return myControlImageDir;
|
return myControlImageDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_TESTS
|
||||||
|
|
||||||
|
//
|
||||||
|
// QgsCompositionChecker
|
||||||
|
//
|
||||||
|
|
||||||
|
///@cond PRIVATE
|
||||||
|
|
||||||
|
QgsCompositionChecker::QgsCompositionChecker( const QString& testName, QgsComposition* composition )
|
||||||
|
: QgsMultiRenderChecker()
|
||||||
|
, mTestName( testName )
|
||||||
|
, mComposition( composition )
|
||||||
|
, mSize( 1122, 794 )
|
||||||
|
, mDotsPerMeter( 96 / 25.4 * 1000 )
|
||||||
|
{
|
||||||
|
// The composer has some slight render inconsistencies on the whole image sometimes
|
||||||
|
setColorTolerance( 5 );
|
||||||
|
}
|
||||||
|
|
||||||
|
QgsCompositionChecker::QgsCompositionChecker()
|
||||||
|
: mComposition( nullptr )
|
||||||
|
, mDotsPerMeter( 96 / 25.4 * 1000 )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QgsCompositionChecker::~QgsCompositionChecker()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool QgsCompositionChecker::testComposition( QString &theReport, int page, int pixelDiff )
|
||||||
|
{
|
||||||
|
if ( !mComposition )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
setControlName( "expected_" + mTestName );
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
//fake mode to generate expected image
|
||||||
|
//assume 96 dpi and size of the control image 1122 * 794
|
||||||
|
QImage newImage( QSize( 1122, 794 ), QImage::Format_RGB32 );
|
||||||
|
mComposition->setPlotStyle( QgsComposition::Print );
|
||||||
|
newImage.setDotsPerMeterX( 96 / 25.4 * 1000 );
|
||||||
|
newImage.setDotsPerMeterY( 96 / 25.4 * 1000 );
|
||||||
|
drawBackground( &newImage );
|
||||||
|
QPainter expectedPainter( &newImage );
|
||||||
|
//QRectF sourceArea( 0, 0, mComposition->paperWidth(), mComposition->paperHeight() );
|
||||||
|
//QRectF targetArea( 0, 0, 3507, 2480 );
|
||||||
|
mComposition->renderPage( &expectedPainter, page );
|
||||||
|
expectedPainter.end();
|
||||||
|
newImage.save( mExpectedImageFile, "PNG" );
|
||||||
|
return true;
|
||||||
|
#endif //0
|
||||||
|
|
||||||
|
QImage outputImage( mSize, QImage::Format_RGB32 );
|
||||||
|
|
||||||
|
mComposition->setPlotStyle( QgsComposition::Print );
|
||||||
|
outputImage.setDotsPerMeterX( mDotsPerMeter );
|
||||||
|
outputImage.setDotsPerMeterY( mDotsPerMeter );
|
||||||
|
drawBackground( &outputImage );
|
||||||
|
QPainter p( &outputImage );
|
||||||
|
mComposition->renderPage( &p, page );
|
||||||
|
p.end();
|
||||||
|
|
||||||
|
QString renderedFilePath = QDir::tempPath() + '/' + QFileInfo( mTestName ).baseName() + "_rendered.png";
|
||||||
|
outputImage.save( renderedFilePath, "PNG" );
|
||||||
|
|
||||||
|
setRenderedImage( renderedFilePath );
|
||||||
|
|
||||||
|
bool testResult = runTest( mTestName, pixelDiff );
|
||||||
|
|
||||||
|
theReport += report();
|
||||||
|
|
||||||
|
return testResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
///@endcond
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -128,4 +128,29 @@ class CORE_EXPORT QgsMultiRenderChecker
|
|||||||
QgsMapSettings mMapSettings;
|
QgsMapSettings mMapSettings;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef ENABLE_TESTS
|
||||||
|
// Renders a composition to an image and compares with an expected output
|
||||||
|
///@cond PRIVATE
|
||||||
|
class CORE_EXPORT QgsCompositionChecker : public QgsMultiRenderChecker
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
QgsCompositionChecker( const QString& testName, QgsComposition* composition );
|
||||||
|
~QgsCompositionChecker();
|
||||||
|
|
||||||
|
void setSize( QSize size ) { mSize = size; }
|
||||||
|
|
||||||
|
bool testComposition( QString &theReport, int page = 0, int pixelDiff = 0 );
|
||||||
|
|
||||||
|
private:
|
||||||
|
QgsCompositionChecker(); //forbidden
|
||||||
|
|
||||||
|
QString mTestName;
|
||||||
|
QgsComposition* mComposition;
|
||||||
|
QSize mSize;
|
||||||
|
int mDotsPerMeter;
|
||||||
|
};
|
||||||
|
///@endcond
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif // QGSMULTIRENDERCHECKER_H
|
#endif // QGSMULTIRENDERCHECKER_H
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Standard includes and utils to compile into all tests.
|
# Standard includes and utils to compile into all tests.
|
||||||
SET (util_SRCS qgscompositionchecker.cpp)
|
#SET (util_SRCS qgscompositionchecker.cpp)
|
||||||
|
|
||||||
|
|
||||||
#####################################################
|
#####################################################
|
||||||
|
@ -1,87 +0,0 @@
|
|||||||
/***************************************************************************
|
|
||||||
qgscompositionchecker.cpp - check rendering of Qgscomposition against an expected image
|
|
||||||
--------------------------------------
|
|
||||||
Date : 5 Juli 2012
|
|
||||||
Copyright : (C) 2012 by Marco Hugentobler
|
|
||||||
email : marco@sourcepole.ch
|
|
||||||
***************************************************************************
|
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
|
||||||
* it under the terms of the GNU General Public License as published by *
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or *
|
|
||||||
* (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
#include "qgscompositionchecker.h"
|
|
||||||
#include "qgscomposition.h"
|
|
||||||
#include <QDebug>
|
|
||||||
#include <QDir>
|
|
||||||
#include <QFileInfo>
|
|
||||||
#include <QImage>
|
|
||||||
#include <QPainter>
|
|
||||||
|
|
||||||
QgsCompositionChecker::QgsCompositionChecker( const QString& testName, QgsComposition* composition )
|
|
||||||
: QgsMultiRenderChecker()
|
|
||||||
, mTestName( testName )
|
|
||||||
, mComposition( composition )
|
|
||||||
, mSize( 1122, 794 )
|
|
||||||
, mDotsPerMeter( 96 / 25.4 * 1000 )
|
|
||||||
{
|
|
||||||
// The composer has some slight render inconsistencies on the whole image sometimes
|
|
||||||
setColorTolerance( 5 );
|
|
||||||
}
|
|
||||||
|
|
||||||
QgsCompositionChecker::QgsCompositionChecker()
|
|
||||||
: mComposition( nullptr )
|
|
||||||
, mDotsPerMeter( 96 / 25.4 * 1000 )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
bool QgsCompositionChecker::testComposition( QString &theReport, int page, int pixelDiff )
|
|
||||||
{
|
|
||||||
if ( !mComposition )
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
setControlName( "expected_" + mTestName );
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
//fake mode to generate expected image
|
|
||||||
//assume 96 dpi and size of the control image 1122 * 794
|
|
||||||
QImage newImage( QSize( 1122, 794 ), QImage::Format_RGB32 );
|
|
||||||
mComposition->setPlotStyle( QgsComposition::Print );
|
|
||||||
newImage.setDotsPerMeterX( 96 / 25.4 * 1000 );
|
|
||||||
newImage.setDotsPerMeterY( 96 / 25.4 * 1000 );
|
|
||||||
drawBackground( &newImage );
|
|
||||||
QPainter expectedPainter( &newImage );
|
|
||||||
//QRectF sourceArea( 0, 0, mComposition->paperWidth(), mComposition->paperHeight() );
|
|
||||||
//QRectF targetArea( 0, 0, 3507, 2480 );
|
|
||||||
mComposition->renderPage( &expectedPainter, page );
|
|
||||||
expectedPainter.end();
|
|
||||||
newImage.save( mExpectedImageFile, "PNG" );
|
|
||||||
return true;
|
|
||||||
#endif //0
|
|
||||||
|
|
||||||
QImage outputImage( mSize, QImage::Format_RGB32 );
|
|
||||||
|
|
||||||
mComposition->setPlotStyle( QgsComposition::Print );
|
|
||||||
outputImage.setDotsPerMeterX( mDotsPerMeter );
|
|
||||||
outputImage.setDotsPerMeterY( mDotsPerMeter );
|
|
||||||
drawBackground( &outputImage );
|
|
||||||
QPainter p( &outputImage );
|
|
||||||
mComposition->renderPage( &p, page );
|
|
||||||
p.end();
|
|
||||||
|
|
||||||
QString renderedFilePath = QDir::tempPath() + '/' + QFileInfo( mTestName ).baseName() + "_rendered.png";
|
|
||||||
outputImage.save( renderedFilePath, "PNG" );
|
|
||||||
|
|
||||||
setRenderedImage( renderedFilePath );
|
|
||||||
|
|
||||||
bool testResult = runTest( mTestName, pixelDiff );
|
|
||||||
|
|
||||||
theReport += report();
|
|
||||||
|
|
||||||
return testResult;
|
|
||||||
}
|
|
@ -1,44 +0,0 @@
|
|||||||
/***************************************************************************
|
|
||||||
qgscompositionchecker.h - check rendering of Qgscomposition against an expected image
|
|
||||||
--------------------------------------
|
|
||||||
Date : 5 Juli 2012
|
|
||||||
Copyright : (C) 2012 by Marco Hugentobler
|
|
||||||
email : marco@sourcepole.ch
|
|
||||||
***************************************************************************
|
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
|
||||||
* it under the terms of the GNU General Public License as published by *
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or *
|
|
||||||
* (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
#ifndef QGSCOMPOSITIONCHECKER_H
|
|
||||||
#define QGSCOMPOSITIONCHECKER_H
|
|
||||||
|
|
||||||
#include "qgsmultirenderchecker.h"
|
|
||||||
#include <QString>
|
|
||||||
|
|
||||||
class QgsComposition;
|
|
||||||
class QImage;
|
|
||||||
|
|
||||||
/** Renders a composition to an image and compares with an expected output*/
|
|
||||||
class QgsCompositionChecker : public QgsMultiRenderChecker
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QgsCompositionChecker( const QString& testName, QgsComposition* composition );
|
|
||||||
|
|
||||||
void setSize( QSize size ) { mSize = size; }
|
|
||||||
|
|
||||||
bool testComposition( QString &theReport, int page = 0, int pixelDiff = 0 );
|
|
||||||
|
|
||||||
private:
|
|
||||||
QgsCompositionChecker(); //forbidden
|
|
||||||
|
|
||||||
QString mTestName;
|
|
||||||
QgsComposition* mComposition;
|
|
||||||
QSize mSize;
|
|
||||||
int mDotsPerMeter;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // QGSCOMPOSITIONCHECKER_H
|
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgscomposermap.h"
|
#include "qgscomposermap.h"
|
||||||
#include "qgscomposermapoverview.h"
|
#include "qgscomposermapoverview.h"
|
||||||
#include "qgsatlascomposition.h"
|
#include "qgsatlascomposition.h"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgscomposershape.h"
|
#include "qgscomposershape.h"
|
||||||
#include "qgsmaprenderer.h"
|
#include "qgsmaprenderer.h"
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#include "qgscomposeritemgroup.h"
|
#include "qgscomposeritemgroup.h"
|
||||||
#include "qgscomposerlabel.h"
|
#include "qgscomposerlabel.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include "qgscomposerhtml.h"
|
#include "qgscomposerhtml.h"
|
||||||
#include "qgscomposerframe.h"
|
#include "qgscomposerframe.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgsfontutils.h"
|
#include "qgsfontutils.h"
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QtTest/QtTest>
|
#include <QtTest/QtTest>
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgscomposermap.h"
|
#include "qgscomposermap.h"
|
||||||
#include "qgsmaplayerregistry.h"
|
#include "qgsmaplayerregistry.h"
|
||||||
#include "qgsmaprenderer.h"
|
#include "qgsmaprenderer.h"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgscomposermap.h"
|
#include "qgscomposermap.h"
|
||||||
#include "qgscomposermapgrid.h"
|
#include "qgscomposermapgrid.h"
|
||||||
#include "qgsmaplayerregistry.h"
|
#include "qgsmaplayerregistry.h"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgscomposermap.h"
|
#include "qgscomposermap.h"
|
||||||
#include "qgscomposermapoverview.h"
|
#include "qgscomposermapoverview.h"
|
||||||
#include "qgsmaplayerregistry.h"
|
#include "qgsmaplayerregistry.h"
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include "qgscomposerframe.h"
|
#include "qgscomposerframe.h"
|
||||||
#include "qgscomposerlabel.h"
|
#include "qgscomposerlabel.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "qgscomposerobject.h"
|
#include "qgscomposerobject.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgsdatadefined.h"
|
#include "qgsdatadefined.h"
|
||||||
#include "qgsexpression.h"
|
#include "qgsexpression.h"
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgscomposershape.h"
|
#include "qgscomposershape.h"
|
||||||
#include "qgssymbolv2.h"
|
#include "qgssymbolv2.h"
|
||||||
#include "qgssinglesymbolrendererv2.h"
|
#include "qgssinglesymbolrendererv2.h"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgscomposerpicture.h"
|
#include "qgscomposerpicture.h"
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QtTest/QtTest>
|
#include <QtTest/QtTest>
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgscomposershape.h"
|
#include "qgscomposershape.h"
|
||||||
#include "qgscomposermap.h"
|
#include "qgscomposermap.h"
|
||||||
#include "qgscomposerlabel.h"
|
#include "qgscomposerlabel.h"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgscomposermap.h"
|
#include "qgscomposermap.h"
|
||||||
#include "qgscomposerscalebar.h"
|
#include "qgscomposerscalebar.h"
|
||||||
#include "qgsmaplayerregistry.h"
|
#include "qgsmaplayerregistry.h"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgscomposershape.h"
|
#include "qgscomposershape.h"
|
||||||
#include "qgsmapsettings.h"
|
#include "qgsmapsettings.h"
|
||||||
#include "qgssymbolv2.h"
|
#include "qgssymbolv2.h"
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include "qgsvectorlayer.h"
|
#include "qgsvectorlayer.h"
|
||||||
#include "qgsvectordataprovider.h"
|
#include "qgsvectordataprovider.h"
|
||||||
#include "qgsfeature.h"
|
#include "qgsfeature.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgsfontutils.h"
|
#include "qgsfontutils.h"
|
||||||
#include "qgsmaplayerregistry.h"
|
#include "qgsmaplayerregistry.h"
|
||||||
#include "qgsproject.h"
|
#include "qgsproject.h"
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#include "qgsapplication.h" //for standard test font
|
#include "qgsapplication.h" //for standard test font
|
||||||
#include "qgscomposerutils.h"
|
#include "qgscomposerutils.h"
|
||||||
#include "qgscomposition.h"
|
#include "qgscomposition.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgsdatadefined.h"
|
#include "qgsdatadefined.h"
|
||||||
#include "qgsfontutils.h"
|
#include "qgsfontutils.h"
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "qgscomposerhtml.h"
|
#include "qgscomposerhtml.h"
|
||||||
#include "qgscomposerframe.h"
|
#include "qgscomposerframe.h"
|
||||||
#include "qgsmapsettings.h"
|
#include "qgsmapsettings.h"
|
||||||
#include "qgscompositionchecker.h"
|
#include "qgsmultirenderchecker.h"
|
||||||
#include "qgsfillsymbollayerv2.h"
|
#include "qgsfillsymbollayerv2.h"
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user