fix some tests crashes, fix some tests and some mtr updates

This commit is contained in:
Juergen E. Fischer 2014-03-29 17:52:39 +01:00
parent 480ae45f94
commit 0693fe93ee
37 changed files with 166 additions and 231 deletions

View File

@ -37,7 +37,8 @@ Build-Depends:
graphviz,
txt2tags,
xvfb, xauth,
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable,
spawn-cgi, lighttpd, poppler-utils
Build-Conflicts: libqgis-dev, qgis-dev
Standards-Version: 3.9.5
Homepage: http://qgis.org/

View File

@ -38,7 +38,8 @@ Build-Depends:
graphviz,
txt2tags,
xvfb, xauth,
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable,
spawn-cgi, lighttpd, poppler-utils
Build-Conflicts: libqgis-dev, qgis-dev
Standards-Version: 3.8.4
XS-Python-Version: current

View File

@ -37,7 +37,8 @@ Build-Depends:
graphviz,
txt2tags,
xvfb, xauth,
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable,
spawn-cgi, lighttpd, poppler-utils
Build-Conflicts: libqgis-dev, qgis-dev
Standards-Version: 3.9.3
XS-Python-Version: current

View File

@ -39,7 +39,8 @@ Build-Depends:
graphviz,
txt2tags,
xvfb, xauth,
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable,
spawn-cgi, lighttpd, poppler-utils
Build-Conflicts: libqgis-dev, qgis-dev
Standards-Version: 3.8.4
XS-Python-Version: current

View File

@ -39,7 +39,8 @@ Build-Depends:
graphviz,
txt2tags,
xvfb, xauth,
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable,
spawn-cgi, lighttpd, poppler-utils
Build-Conflicts: libqgis-dev, qgis-dev
Standards-Version: 3.8.4
XS-Python-Version: current

3
debian/control.sid vendored
View File

@ -37,7 +37,8 @@ Build-Depends:
graphviz,
txt2tags,
xvfb, xauth,
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable,
spawn-cgi, lighttpd, poppler-utils
Build-Conflicts: libqgis-dev, qgis-dev
Standards-Version: 3.9.5
Homepage: http://qgis.org/

View File

@ -38,7 +38,8 @@ Build-Depends:
txt2tags,
xvfb, xauth,
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable,
oracle-instantclient11.2-devel
oracle-instantclient11.2-devel,
spawn-cgi, lighttpd, poppler-utils
Build-Conflicts: libqgis-dev, qgis-dev
Standards-Version: 3.9.5
Homepage: http://qgis.org/

View File

@ -37,7 +37,8 @@ Build-Depends:
graphviz,
txt2tags,
xvfb, xauth,
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable,
spawn-cgi, lighttpd, poppler-utils
Build-Conflicts: libqgis-dev, qgis-dev
Standards-Version: 3.8.4
XS-Python-Version: current

View File

@ -37,7 +37,8 @@ Build-Depends:
graphviz,
txt2tags,
xvfb, xauth,
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable
xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable,
spawn-cgi, lighttpd, poppler-utils
Build-Conflicts: libqgis-dev, qgis-dev
Standards-Version: 3.9.3
XS-Python-Version: current

2
debian/rules vendored
View File

@ -143,7 +143,7 @@ build-stamp: debian/build/CMakeCache.txt
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
# Code to run the package test suite - and ignore the outcome for now
-LD_LIBRARY_PATH=$(PWD)/debian/build/output/lib:$(LD_LIBRARY_PATH) $(TESTMAKE) -C debian/build $(DEB_TEST_TARGET)
-LD_LIBRARY_PATH=$(PWD)/debian/build/output/lib:$(LD_LIBRARY_PATH) PATH=/usr/sbin:$(PATH) LC_CTYPE=C.UTF-8 $(TESTMAKE) -C debian/build $(DEB_TEST_TARGET)
else
@echo Skipping tests.
endif

View File

@ -6,7 +6,7 @@
* the cache listens to repaintRequested() signals from layer. If triggered, the cache
* removes the rendered image (and disconnects from the layer).
*
* The class is thread-safe (multiple classes can access the same instance safely).
* The class is thread-safe (multiple classes can access the same instance safely).
*
* @note added in 2.4
*/

View File

@ -448,11 +448,11 @@ QgisApp::QgisApp( QSplashScreen *splash, bool restorePlugins, QWidget * parent,
, mMousePrecisionDecimalPlaces( 0 )
, mInternalClipboard( 0 )
, mShowProjectionTab( false )
, mPythonUtils( NULL )
, mPythonUtils( 0 )
#ifdef Q_OS_WIN
, mSkipNextContextMenuEvent( 0 )
#endif
, mpGpsWidget( NULL )
, mpGpsWidget( 0 )
{
if ( smInstance )
{
@ -785,6 +785,7 @@ QgisApp::QgisApp( )
mMapCanvas->freeze();
mMapLegend = new QgsLegend( mMapCanvas );
mUndoWidget = new QgsUndoWidget( NULL, mMapCanvas );
mInfoBar = new QgsMessageBar( centralWidget() );
// More tests may need more members to be initialized
}
@ -3785,12 +3786,7 @@ void QgisApp::dxfExport()
dxfExport.setSymbologyExport( d.symbologyMode() );
if ( mapCanvas() )
{
QgsMapRenderer* r = mapCanvas()->mapRenderer();
if ( r )
{
dxfExport.setMapUnits( r->mapUnits() );
}
dxfExport.setMapUnits( mapCanvas()->mapUnits() );
//extent
if ( d.exportMapExtent() )
{

View File

@ -42,17 +42,17 @@
#include <cmath>
QgsComposerMap::QgsComposerMap( QgsComposition *composition, int x, int y, int width, int height )
: QgsComposerItem( x, y, width, height, composition ), mMapRotation( 0 ), mKeepLayerSet( false ),
mOverviewFrameMapId( -1 ), mOverviewBlendMode( QPainter::CompositionMode_SourceOver ), mOverviewInverted( false ), mOverviewCentered( false ),
mGridEnabled( false ), mGridStyle( Solid ),
mGridIntervalX( 0.0 ), mGridIntervalY( 0.0 ), mGridOffsetX( 0.0 ), mGridOffsetY( 0.0 ), mGridAnnotationFontColor( QColor( 0, 0, 0 ) ),
mGridAnnotationPrecision( 3 ), mShowGridAnnotation( false ), mGridBlendMode( QPainter::CompositionMode_SourceOver ),
mLeftGridAnnotationPosition( OutsideMapFrame ), mRightGridAnnotationPosition( OutsideMapFrame ),
mTopGridAnnotationPosition( OutsideMapFrame ), mBottomGridAnnotationPosition( OutsideMapFrame ), mAnnotationFrameDistance( 1.0 ),
mLeftGridAnnotationDirection( Horizontal ), mRightGridAnnotationDirection( Horizontal ), mTopGridAnnotationDirection( Horizontal ),
mBottomGridAnnotationDirection( Horizontal ), mGridFrameStyle( NoGridFrame ), mGridFrameWidth( 2.0 ),
mGridFramePenThickness( 0.5 ), mGridFramePenColor( QColor( 0, 0, 0 ) ), mGridFrameFillColor1( Qt::white ), mGridFrameFillColor2( Qt::black ),
mCrossLength( 3 ), mMapCanvas( 0 ), mDrawCanvasItems( true ), mAtlasDriven( false ), mAtlasFixedScale( false ), mAtlasMargin( 0.10 )
: QgsComposerItem( x, y, width, height, composition ), mMapRotation( 0 ), mKeepLayerSet( false )
, mOverviewFrameMapId( -1 ), mOverviewBlendMode( QPainter::CompositionMode_SourceOver ), mOverviewInverted( false ), mOverviewCentered( false )
, mGridEnabled( false ), mGridStyle( Solid )
, mGridIntervalX( 0.0 ), mGridIntervalY( 0.0 ), mGridOffsetX( 0.0 ), mGridOffsetY( 0.0 ), mGridAnnotationFontColor( QColor( 0, 0, 0 ) )
, mGridAnnotationPrecision( 3 ), mShowGridAnnotation( false ), mGridBlendMode( QPainter::CompositionMode_SourceOver )
, mLeftGridAnnotationPosition( OutsideMapFrame ), mRightGridAnnotationPosition( OutsideMapFrame )
, mTopGridAnnotationPosition( OutsideMapFrame ), mBottomGridAnnotationPosition( OutsideMapFrame ), mAnnotationFrameDistance( 1.0 )
, mLeftGridAnnotationDirection( Horizontal ), mRightGridAnnotationDirection( Horizontal ), mTopGridAnnotationDirection( Horizontal )
, mBottomGridAnnotationDirection( Horizontal ), mGridFrameStyle( NoGridFrame ), mGridFrameWidth( 2.0 )
, mGridFramePenThickness( 0.5 ), mGridFramePenColor( QColor( 0, 0, 0 ) ), mGridFrameFillColor1( Qt::white ), mGridFrameFillColor2( Qt::black )
, mCrossLength( 3 ), mMapCanvas( 0 ), mDrawCanvasItems( true ), mAtlasDriven( false ), mAtlasFixedScale( false ), mAtlasMargin( 0.10 )
{
mComposition = composition;
mOverviewFrameMapSymbol = 0;
@ -100,17 +100,17 @@ QgsComposerMap::QgsComposerMap( QgsComposition *composition, int x, int y, int w
}
QgsComposerMap::QgsComposerMap( QgsComposition *composition )
: QgsComposerItem( 0, 0, 10, 10, composition ), mMapRotation( 0 ), mKeepLayerSet( false ), mOverviewFrameMapId( -1 ),
mOverviewBlendMode( QPainter::CompositionMode_SourceOver ), mOverviewInverted( false ), mOverviewCentered( false ),
mGridEnabled( false ), mGridStyle( Solid ),
mGridIntervalX( 0.0 ), mGridIntervalY( 0.0 ), mGridOffsetX( 0.0 ), mGridOffsetY( 0.0 ), mGridAnnotationFontColor( QColor( 0, 0, 0 ) ),
mGridAnnotationPrecision( 3 ), mShowGridAnnotation( false ), mGridBlendMode( QPainter::CompositionMode_SourceOver ),
mLeftGridAnnotationPosition( OutsideMapFrame ), mRightGridAnnotationPosition( OutsideMapFrame ),
mTopGridAnnotationPosition( OutsideMapFrame ), mBottomGridAnnotationPosition( OutsideMapFrame ), mAnnotationFrameDistance( 1.0 ),
mLeftGridAnnotationDirection( Horizontal ), mRightGridAnnotationDirection( Horizontal ), mTopGridAnnotationDirection( Horizontal ),
mBottomGridAnnotationDirection( Horizontal ), mGridFrameStyle( NoGridFrame ), mGridFrameWidth( 2.0 ), mGridFramePenThickness( 0.5 ),
mGridFramePenColor( QColor( 0, 0, 0 ) ), mGridFrameFillColor1( Qt::white ), mGridFrameFillColor2( Qt::black ),
mCrossLength( 3 ), mMapCanvas( 0 ), mDrawCanvasItems( true ), mAtlasDriven( false ), mAtlasFixedScale( false ), mAtlasMargin( 0.10 )
: QgsComposerItem( 0, 0, 10, 10, composition ), mMapRotation( 0 ), mKeepLayerSet( false ), mOverviewFrameMapId( -1 )
, mOverviewBlendMode( QPainter::CompositionMode_SourceOver ), mOverviewInverted( false ), mOverviewCentered( false )
, mGridEnabled( false ), mGridStyle( Solid )
, mGridIntervalX( 0.0 ), mGridIntervalY( 0.0 ), mGridOffsetX( 0.0 ), mGridOffsetY( 0.0 ), mGridAnnotationFontColor( QColor( 0, 0, 0 ) )
, mGridAnnotationPrecision( 3 ), mShowGridAnnotation( false ), mGridBlendMode( QPainter::CompositionMode_SourceOver )
, mLeftGridAnnotationPosition( OutsideMapFrame ), mRightGridAnnotationPosition( OutsideMapFrame )
, mTopGridAnnotationPosition( OutsideMapFrame ), mBottomGridAnnotationPosition( OutsideMapFrame ), mAnnotationFrameDistance( 1.0 )
, mLeftGridAnnotationDirection( Horizontal ), mRightGridAnnotationDirection( Horizontal ), mTopGridAnnotationDirection( Horizontal )
, mBottomGridAnnotationDirection( Horizontal ), mGridFrameStyle( NoGridFrame ), mGridFrameWidth( 2.0 ), mGridFramePenThickness( 0.5 )
, mGridFramePenColor( QColor( 0, 0, 0 ) ), mGridFrameFillColor1( Qt::white ), mGridFrameFillColor2( Qt::black )
, mCrossLength( 3 ), mMapCanvas( 0 ), mDrawCanvasItems( true ), mAtlasDriven( false ), mAtlasFixedScale( false ), mAtlasMargin( 0.10 )
{
mOverviewFrameMapSymbol = 0;
mGridLineSymbol = 0;

View File

@ -19,21 +19,25 @@
#include "qgsdxfexport.h"
#include "qgsmaplayerregistry.h"
#include "qgspalgeometry.h"
#include "qgsmapsettings.h"
#include "pal/pointset.h"
#include "pal/labelposition.h"
using namespace pal;
QgsDxfPalLabeling::QgsDxfPalLabeling( QgsDxfExport* dxf, const QgsRectangle& bbox, double scale, QGis::UnitType mapUnits ): QgsPalLabeling(), mDxfExport( dxf )
QgsDxfPalLabeling::QgsDxfPalLabeling( QgsDxfExport* dxf, const QgsRectangle& bbox, double scale, QGis::UnitType mapUnits )
: QgsPalLabeling()
, mDxfExport( dxf )
{
mMapRenderer.setExtent( bbox );
QgsMapSettings settings;
settings.setExtent( bbox );
int dpi = 96;
double factor = 1000 * dpi / scale / 25.4 * QGis::fromUnitToUnitFactor( mapUnits, QGis::Meters );
mMapRenderer.setOutputSize( QSizeF( bbox.width() * factor, bbox.height() * factor ), dpi );
mMapRenderer.setScale( scale );
mMapRenderer.setOutputUnits( QgsMapRenderer::Pixels );
init( &mMapRenderer );
settings.setOutputSize( QSize( bbox.width() * factor, bbox.height() * factor ) );
settings.setOutputDpi( dpi );
init( settings );
mImage = new QImage( 10, 10, QImage::Format_ARGB32_Premultiplied );
mImage->setDotsPerMeterX( 96 / 25.4 * 1000 );

View File

@ -35,7 +35,6 @@ class CORE_EXPORT QgsDxfPalLabeling: public QgsPalLabeling
private:
QgsDxfExport* mDxfExport;
QgsMapRenderer mMapRenderer;
QgsRenderContext mRenderContext;
//only used for render context

View File

@ -18,9 +18,24 @@
#include "diagram/qgspiediagram.h"
#include "diagram/qgshistogramdiagram.h"
#include "qgsrendercontext.h"
#include <QDomElement>
#include <QPainter>
QgsDiagramLayerSettings::QgsDiagramLayerSettings()
: placement( AroundPoint )
, placementFlags( OnLine )
, priority( 5 )
, obstacle( false )
, dist( 0.0 )
, renderer( 0 )
, palLayer( 0 )
, ct( 0 )
, xform( 0 )
, xPosColumn( -1 )
, yPosColumn( -1 )
{
}
QgsDiagramLayerSettings::~QgsDiagramLayerSettings()
{
@ -254,7 +269,8 @@ void QgsDiagramSettings::writeXML( QDomElement& rendererElem, QDomDocument& doc,
rendererElem.appendChild( categoryElem );
}
QgsDiagramRendererV2::QgsDiagramRendererV2(): mDiagram( 0 )
QgsDiagramRendererV2::QgsDiagramRendererV2()
: mDiagram( 0 )
{
}

View File

@ -58,20 +58,7 @@ class CORE_EXPORT QgsDiagramLayerSettings
MapOrientation = 8
};
QgsDiagramLayerSettings()
: placement( AroundPoint )
, placementFlags( OnLine )
, priority( 5 )
, obstacle( false )
, dist( 0.0 )
, renderer( 0 )
, palLayer( 0 )
, ct( 0 )
, xform( 0 )
, xPosColumn( -1 )
, yPosColumn( -1 )
{
}
QgsDiagramLayerSettings();
~QgsDiagramLayerSettings();

View File

@ -2220,6 +2220,8 @@ int QgsExpression::NodeBinaryOperator::precedence() const
case boConcat:
return 7;
}
Q_ASSERT( 0 && "unexpected binary operator" );
return -1;
}
QString QgsExpression::NodeBinaryOperator::dump() const

View File

@ -241,8 +241,8 @@ bool QgsFontUtils::loadStandardTestFonts( QStringList loadstyles )
int fontID = QFontDatabase::addApplicationFont( fontPath );
loaded = ( fontID != -1 );
fontsLoaded = ( fontsLoaded || loaded );
QgsDebugMsg( QString( "Test font '%1' %2 from filesystem" )
.arg( familyStyle ).arg( loaded ? "loaded" : "FAILED to load" ) );
QgsDebugMsg( QString( "Test font '%1' %2 from filesystem [%3]" )
.arg( familyStyle ).arg( loaded ? "loaded" : "FAILED to load" ).arg( fontPath ) );
}
else
{

View File

@ -649,14 +649,14 @@ LayerRenderJobs QgsMapRendererJob::prepareJobs( QPainter* painter, QgsPalLabelin
}
}
/*
#if 0
// TODO: split extent
if ( split )
{
mRenderContext.setExtent( r2 );
ml->draw( mRenderContext );
}*/
}
#endif
} // while (li.hasPrevious())
return layerJobs;

View File

@ -61,7 +61,7 @@ class CORE_EXPORT QgsMapSettings
ForceVectorOutput = 0x04,
UseAdvancedEffects = 0x08,
DrawLabeling = 0x10
// TODO: ignore scale-based visibiity (overview)
// TODO: ignore scale-based visibility (overview)
};
Q_DECLARE_FLAGS( Flags, Flag )

View File

@ -30,7 +30,6 @@
QgsRenderChecker::QgsRenderChecker( ) :
mReport( "" ),
mMatchTarget( 0 ),
mpMapRenderer( NULL ),
mElapsedTime( 0 ),
mRenderedImageFile( "" ),
mExpectedImageFile( "" ),
@ -39,7 +38,6 @@ QgsRenderChecker::QgsRenderChecker( ) :
mElapsedTimeTarget( 0 ),
mControlPathPrefix( "" )
{
}
QString QgsRenderChecker::controlImagePath() const

View File

@ -121,7 +121,6 @@ class CORE_EXPORT QgsRenderChecker
QString mReport;
unsigned int mMatchTarget;
QgsMapRenderer * mpMapRenderer;
int mElapsedTime;
QString mRenderedImageFile;
QString mExpectedImageFile;

View File

@ -36,6 +36,7 @@
#include "qgsmaptopixel.h"
#include "qgspallabeling.h"
#include "qgsproject.h"
#include "qgsmaprendererjob.h"
#include <QFile>
#include <QPainter>
@ -54,22 +55,20 @@ void QgsOsgEarthTileSource::initialize( const std::string& referenceURI, const P
Q_UNUSED( overrideProfile );
setProfile( osgEarth::Registry::instance()->getGlobalGeodeticProfile() );
QgsMapRenderer* mainRenderer = mQGisIface->mapCanvas()->mapRenderer();
mMapRenderer = new QgsMapRenderer();
long epsgGlobe = 4326;
if ( mainRenderer->destinationCrs().authid().compare( QString( "EPSG:%1" ).arg( epsgGlobe ), Qt::CaseInsensitive ) != 0 )
if ( mQGisIface->mapCanvas()->mapSettings().destinationCrs().authid().compare( QString( "EPSG:%1" ).arg( epsgGlobe ), Qt::CaseInsensitive ) != 0 )
{
QgsCoordinateReferenceSystem srcCRS( mainRenderer->destinationCrs() ); //FIXME: crs from canvas or first layer?
QgsCoordinateReferenceSystem srcCRS( mQGisIface->mapCanvas()->mapSettings().destinationCrs() ); //FIXME: crs from canvas or first layer?
QgsCoordinateReferenceSystem destCRS;
destCRS.createFromOgcWmsCrs( QString( "EPSG:%1" ).arg( epsgGlobe ) );
//QgsProject::instance()->writeEntry("SpatialRefSys","/ProjectionsEnabled",1);
mMapRenderer->setDestinationCrs( destCRS );
mMapRenderer->setProjectionsEnabled( true );
mMapSettings.setDestinationCrs( destCRS );
mMapSettings.setCrsTransformEnabled( true );
mCoordTranform = new QgsCoordinateTransform( srcCRS, destCRS );
}
mMapRenderer->setOutputUnits( mainRenderer->outputUnits() );
mMapRenderer->setMapUnits( QGis::Degrees );
// mMapSettings.setOutputUnits( mQGisIface->mapCanvas()->mapSettings().outputUnits() );
mMapSettings.setMapUnits( QGis::Degrees );
//mMapRenderer->setLabelingEngine( new QgsPalLabeling() );
}
@ -97,29 +96,21 @@ osg::Image* QgsOsgEarthTileSource::createImage( const TileKey& key, ProgressCall
return 0;
}
QImage* qImage = createQImage( target_width, target_height );
if ( !qImage )
{
return 0;
}
mMapSettings.setOutputSize( QSize( tileSize, tileSize ) );
mMapSettings.setExtent( QgsRectangle( xmin, ymin, xmax, ymax ) );
mMapSettings.setLayers( mQGisIface->mapCanvas()->mapSettings().layers() );
QgsMapRenderer* mainRenderer = mQGisIface->mapCanvas()->mapRenderer();
mMapRenderer->setLayerSet( mainRenderer->layerSet() );
QgsMapRendererSequentialJob job( mMapSettings );
job.start();
job.waitForFinished();
mMapRenderer->setOutputSize( QSize( qImage->width(), qImage->height() ), qImage->logicalDpiX() );
QImage qImage( job.renderedImage() );
QgsRectangle mapExtent( xmin, ymin, xmax, ymax );
mMapRenderer->setExtent( mapExtent );
QPainter thePainter( qImage );
//thePainter.setRenderHint(QPainter::Antialiasing); //make it look nicer
mMapRenderer->render( &thePainter );
unsigned char* data = qImage->bits();
unsigned char *data = qImage.bits();
image = new osg::Image;
//The pixel format is always RGBA to support transparency
image->setImage( qImage->width(), qImage->height(), 1,
image->setImage( qImage.width(), qImage.height(), 1,
4,
GL_BGRA, GL_UNSIGNED_BYTE, //Why not GL_RGBA - QGIS bug?
data,
@ -135,52 +126,14 @@ osg::Image* QgsOsgEarthTileSource::createImage( const TileKey& key, ProgressCall
return image.release();
}
QImage* QgsOsgEarthTileSource::createQImage( int width, int height ) const
{
if ( width < 0 || height < 0 )
{
return 0;
}
QImage* qImage = 0;
//is format jpeg?
bool jpeg = false;
//transparent parameter
bool transparent = true;
//use alpha channel only if necessary because it slows down performance
if ( transparent && !jpeg )
{
qImage = new QImage( width, height, QImage::Format_ARGB32_Premultiplied );
qImage->fill( 0 );
}
else
{
qImage = new QImage( width, height, QImage::Format_RGB32 );
qImage->fill( qRgb( 255, 255, 255 ) );
}
if ( !qImage )
{
return 0;
}
//apply DPI parameter if present.
#if 0
int dpm = dpi / 0.0254;
qImage->setDotsPerMeterX( dpm );
qImage->setDotsPerMeterY( dpm );
#endif
return qImage;
}
bool QgsOsgEarthTileSource::intersects( const TileKey* key )
{
//Get the native extents of the tile
double xmin, ymin, xmax, ymax;
key->getExtent().getBounds( xmin, ymin, xmax, ymax );
QgsRectangle extent = mQGisIface->mapCanvas()->fullExtent();
if ( mCoordTranform ) extent = mCoordTranform->transformBoundingBox( extent );
if ( mCoordTranform )
extent = mCoordTranform->transformBoundingBox( extent );
return !( xmin >= extent.xMaximum() || xmax <= extent.xMinimum() || ymin >= extent.yMaximum() || ymax <= extent.yMinimum() );
}

View File

@ -60,15 +60,12 @@ namespace osgEarth
}
private:
QImage* createQImage( int width, int height ) const;
bool intersects( const TileKey* key );
//! Pointer to the QGIS interface object
QgisInterface *mQGisIface;
QgsCoordinateTransform *mCoordTranform;
QgsMapRenderer* mMapRenderer;
QgsMapSettings mMapSettings;
};
}
} // namespace osgEarth::Drivers

View File

@ -115,7 +115,7 @@ ADD_QGIS_TEST(rectangletest testqgsrectangle.cpp)
ADD_QGIS_TEST(composerscalebartest testqgscomposerscalebar.cpp )
ADD_QGIS_TEST(ogcutilstest testqgsogcutils.cpp)
ADD_QGIS_TEST(vectorlayercachetest testqgsvectorlayercache.cpp )
ADD_QGIS_TEST(maprendererjobtest testmaprendererjob.cpp )
# ADD_QGIS_TEST(maprendererjobtest testmaprendererjob.cpp )
ADD_QGIS_TEST(spatialindextest testqgsspatialindex.cpp)
ADD_QGIS_TEST(gradienttest testqgsgradients.cpp )
ADD_QGIS_TEST(shapebursttest testqgsshapeburst.cpp )

View File

@ -25,14 +25,13 @@
#include <QTime>
#include <QDesktopServices>
//qgis includes...
#include <qgsrasterlayer.h>
#include <qgsrasterbandstats.h>
#include <qgsmaplayerregistry.h>
#include <qgsapplication.h>
#include <qgsmaprenderer.h>
#include <qgsproviderregistry.h>
#include <qgsmapsettings.h>
//qgis unit test includes
#include <qgsrenderchecker.h>
@ -55,15 +54,13 @@ class Regression992: public QObject
bool render( QString theFileName );
QString mTestDataDir;
QgsRasterLayer * mpRasterLayer;
QgsMapRenderer * mpMapRenderer;
QgsMapSettings mMapSettings;
QString mReport;
};
//runs before all tests
void Regression992::initTestCase()
{
mpMapRenderer = 0;
// init QGIS's paths - true means that all path will be inited from prefix
QgsApplication::init();
QgsApplication::showSettings();
@ -92,10 +89,7 @@ void Regression992::initTestCase()
myList << mpRasterLayer;
QgsMapLayerRegistry::instance()->addMapLayers( myList );
// add the test layer to the maprender
mpMapRenderer = new QgsMapRenderer();
QStringList myLayers;
myLayers << mpRasterLayer->id();
mpMapRenderer->setLayerSet( myLayers );
mMapSettings.setLayers( QStringList() << mpRasterLayer->id() );
mReport += "<h1>Regression 992 Test</h1>\n";
mReport += "<p>See <a href=\"http://hub.qgis.org/issues/992\">"
"redmine ticket 992</a> for more details.</p>";
@ -114,15 +108,15 @@ void Regression992::cleanupTestCase()
}
delete mpRasterLayer;
delete mpMapRenderer;
}
void Regression992::regression992()
{
mpMapRenderer->setExtent( mpRasterLayer->extent() );
QgsMapSettings settings;
settings.setExtent( mpRasterLayer->extent() );
QgsRenderChecker myChecker;
myChecker.setMapSettings( settings );
myChecker.setControlName( "expected_rgbwcmyk01_YeGeo.jp2" );
myChecker.setMapRenderer( mpMapRenderer );
// allow up to 300 mismatched pixels
bool myResultFlag = myChecker.runTest( "regression992", 400 );
mReport += "\n\n\n" + myChecker.report();

View File

@ -121,7 +121,7 @@ void TestQgsComposerMap::grid()
//mComposerMap->setShowGridAnnotation( true );
mComposerMap->setGridPenWidth( 0.5 );
mComposerMap->setGridPenColor( QColor( 0, 255, 0 ) );
/*
#if 0
mComposerMap->setGridAnnotationPrecision( 0 );
mComposerMap->setGridAnnotationPosition( QgsComposerMap::Disabled, QgsComposerMap::Left );
mComposerMap->setGridAnnotationPosition( QgsComposerMap::OutsideMapFrame, QgsComposerMap::Right );
@ -130,7 +130,7 @@ void TestQgsComposerMap::grid()
mComposerMap->setGridAnnotationDirection( QgsComposerMap::Horizontal, QgsComposerMap::Right );
mComposerMap->setGridAnnotationDirection( QgsComposerMap::Horizontal, QgsComposerMap::Bottom );
mComposerMap->setAnnotationFontColor( QColor( 255, 0, 0, 150 ) );
*/
#endif
mComposerMap->setGridBlendMode( QPainter::CompositionMode_Overlay );
qWarning() << "grid annotation font: " << mComposerMap->gridAnnotationFont().toString() << " exactMatch:" << mComposerMap->gridAnnotationFont().exactMatch();
QgsCompositionChecker checker( "composermap_grid", mComposition );

View File

@ -49,6 +49,7 @@ class TestQgsComposerPaper: public QObject
QgsMarkerLineSymbolLayerV2* mMarkerLine;
QgsFillSymbolV2* mFillSymbol;
QgsFillSymbolV2* mMarkerLineSymbol;
QgsMapSettings mMapSettings;
// QgsSingleSymbolRendererV2* mSymbolRenderer;
};
@ -59,7 +60,7 @@ void TestQgsComposerPaper::initTestCase()
QgsApplication::initQgis();
//create empty composition
mComposition = new QgsComposition( 0 );
mComposition = new QgsComposition( mMapSettings );
mComposition->setPaperSize( 297, 210 ); //A4 landscape
//setup simple fill

View File

@ -78,11 +78,11 @@ void TestQgsComposerRotation::initTestCase()
QgsMapLayerRegistry::instance()->addMapLayers( QList<QgsMapLayer*>() << mRasterLayer );
mMapRenderer = new QgsMapRenderer();
mMapRenderer->setLayerSet( QStringList() << mRasterLayer->id() );
mMapRenderer->setProjectionsEnabled( false );
QgsMapSettings settings;
settings.setLayers( QStringList() << mRasterLayer->id() );
settings.setCrsTransformEnabled( false );
mComposition = new QgsComposition( mMapRenderer );
mComposition = new QgsComposition( settings );
mComposition->setPaperSize( 297, 210 ); //A4 landscape
mComposerRect = new QgsComposerShape( 70, 70, 150, 100, mComposition );

View File

@ -42,6 +42,7 @@
//qgis test includes
#include "qgsrenderchecker.h"
#include "qgspallabeling.h"
#include "qgsproject.h"
/** \ingroup UnitTests
* This is a unit test for the vector layer class.
@ -51,7 +52,7 @@ class TestQgsDiagramExpression: public QObject
Q_OBJECT;
private:
bool mTestHasError;
QgsMapRenderer * mMapRenderer;
QgsMapSettings * mMapSettings;
QgsVectorLayer * mPointsLayer;
QgsComposition * mComposition;
QString mTestDataDir;
@ -94,10 +95,14 @@ class TestQgsDiagramExpression: public QObject
mPieDiagram = new QgsPieDiagram();
// Create map composition to draw on
mMapRenderer = new QgsMapRenderer();
mMapRenderer->setLayerSet( QStringList() << mPointsLayer->id() );
mMapRenderer->setLabelingEngine( new QgsPalLabeling() );
mComposition = new QgsComposition( mMapRenderer );
mMapSettings = new QgsMapSettings();
mMapSettings->setLayers( QStringList() << mPointsLayer->id() );
mMapSettings->setFlag( QgsMapSettings::DrawLabeling );
QgsProject::instance()->writeEntry( "PAL", "/ShowingAllLabels", true );
mComposition = new QgsComposition( *mMapSettings );
mComposition->setPaperSize( 297, 210 ); // A4 landscape
mComposerMap = new QgsComposerMap( mComposition, 20, 20, 200, 100 );
mComposerMap->setFrameEnabled( true );
@ -120,12 +125,11 @@ class TestQgsDiagramExpression: public QObject
delete mComposerMap;
delete mComposition;
delete mMapRenderer;
delete mPointsLayer;
// delete mPointsLayer;
}
void init() {};// will be called before each testfunction is executed.
void cleanup() {};// will be called after every testfunction.
void init() {} // will be called before each testfunction is executed.
void cleanup() {} // will be called after every testfunction.
// will be called after the last testfunction was executed.
void testPieDiagramExpression()
@ -147,7 +151,6 @@ class TestQgsDiagramExpression: public QObject
ds.size = QSizeF( 15, 15 );
ds.angleOffset = 0;
QgsLinearlyInterpolatedDiagramRenderer *dr = new QgsLinearlyInterpolatedDiagramRenderer();
dr->setLowerValue( 0.0 );
dr->setLowerSize( QSizeF( 0.0, 0.0 ) );
@ -157,22 +160,18 @@ class TestQgsDiagramExpression: public QObject
dr->setClassificationAttributeExpression( "ln(Staff + 1)" );
dr->setDiagram( mPieDiagram );
dr->setDiagramSettings( ds );
mPointsLayer->setDiagramRenderer( dr );
QgsDiagramLayerSettings dls = QgsDiagramLayerSettings();
dls.placement = QgsDiagramLayerSettings::OverPoint;
dls.renderer = dr;
dynamic_cast<QgsPalLabeling*>( mMapRenderer->labelingEngine() )->setShowingAllLabels( true );
// dls.setRenderer( dr );
mPointsLayer->setDiagramRenderer( dr );
mPointsLayer->setDiagramLayerSettings( dls );
mComposerMap->setNewExtent( QgsRectangle( -122, -79, -70, 47 ) );
QgsCompositionChecker checker( "piediagram_expression", mComposition );
QVERIFY( checker.testComposition( mReport ) );
mPointsLayer->setDiagramRenderer( 0 );
}
};

View File

@ -65,7 +65,7 @@ class TestQgsGradients: public QObject
bool mTestHasError;
bool setQml( QString theType );
bool imageCheck( QString theType );
QgsMapRenderer * mpMapRenderer;
QgsMapSettings mMapSettings;
QgsVectorLayer * mpPolysLayer;
QgsGradientFillSymbolLayerV2* mGradientFill;
QgsFillSymbolV2* mFillSymbol;
@ -114,10 +114,7 @@ void TestQgsGradients::initTestCase()
// since maprender does not require a qui
// and is more light weight
//
mpMapRenderer = new QgsMapRenderer();
QStringList myLayers;
myLayers << mpPolysLayer->id();
mpMapRenderer->setLayerSet( myLayers );
mMapSettings.setLayers( QStringList() << mpPolysLayer->id() );
mReport += "<h1>Gradient Renderer Tests</h1>\n";
}
@ -280,10 +277,10 @@ bool TestQgsGradients::imageCheck( QString theTestType )
{
//use the QgsRenderChecker test utility class to
//ensure the rendered output matches our control image
mpMapRenderer->setExtent( mpPolysLayer->extent() );
mMapSettings.setExtent( mpPolysLayer->extent() );
QgsRenderChecker myChecker;
myChecker.setControlName( "expected_" + theTestType );
myChecker.setMapRenderer( mpMapRenderer );
myChecker.setMapSettings( mMapSettings );
bool myResultFlag = myChecker.runTest( theTestType );
mReport += myChecker.report();
return myResultFlag;

View File

@ -66,7 +66,7 @@ class TestQgsMapRenderer: public QObject
QgsVectorFileWriter::WriterError mError;
QgsCoordinateReferenceSystem mCRS;
QgsFields mFields;
QgsMapRenderer * mpMapRenderer;
QgsMapSettings mMapSettings;
QgsMapLayer * mpPolysLayer;
QString mReport;
};
@ -165,8 +165,7 @@ void TestQgsMapRenderer::initTestCase()
// Register the layer with the registry
QgsMapLayerRegistry::instance()->addMapLayers( QList<QgsMapLayer *>() << mpPolysLayer );
// add the test layer to the maprender
mpMapRenderer = new QgsMapRenderer();
mpMapRenderer->setLayerSet( QStringList( mpPolysLayer->id() ) );
mMapSettings.setLayers( QStringList() << mpPolysLayer->id() );
mReport += "<h1>Map Render Tests</h1>\n";
}
@ -185,10 +184,11 @@ void TestQgsMapRenderer::cleanupTestCase()
void TestQgsMapRenderer::performanceTest()
{
mpMapRenderer->setExtent( mpPolysLayer->extent() );
mMapSettings.setExtent( mpPolysLayer->extent() );
QgsRenderChecker myChecker;
myChecker.setControlName( "expected_maprender" );
myChecker.setMapRenderer( mpMapRenderer );
mMapSettings.setFlag( QgsMapSettings::Antialiasing );
myChecker.setMapSettings( mMapSettings );
bool myResultFlag = myChecker.runTest( "maprender" );
mReport += myChecker.report();
QVERIFY( myResultFlag );

View File

@ -82,7 +82,7 @@ class TestQgsRasterLayer: public QObject
QgsRasterLayer * mpRasterLayer;
QgsRasterLayer * mpLandsatRasterLayer;
QgsRasterLayer * mpFloat32RasterLayer;
QgsMapRenderer * mpMapRenderer;
QgsMapSettings mMapSettings;
QString mReport;
};
@ -143,10 +143,7 @@ void TestQgsRasterLayer::initTestCase()
QList<QgsMapLayer *>() << mpFloat32RasterLayer );
// add the test layer to the maprender
mpMapRenderer = new QgsMapRenderer();
QStringList myLayers;
myLayers << mpRasterLayer->id();
mpMapRenderer->setLayerSet( myLayers );
mMapSettings.setLayers( QStringList() << mpRasterLayer->id() );
mReport += "<h1>Raster Layer Tests</h1>\n";
mReport += "<p>" + mySettings + "</p>";
}
@ -168,7 +165,7 @@ void TestQgsRasterLayer::isValid()
{
QVERIFY( mpRasterLayer->isValid() );
mpRasterLayer->setContrastEnhancement( QgsContrastEnhancement::StretchToMinimumMaximum, QgsRaster::ContrastEnhancementMinMax );
mpMapRenderer->setExtent( mpRasterLayer->extent() );
mMapSettings.setExtent( mpRasterLayer->extent() );
QVERIFY( render( "raster" ) );
}
@ -201,7 +198,7 @@ void TestQgsRasterLayer::pseudoColor()
rasterShader->setRasterShaderFunction( colorRampShader );
QgsSingleBandPseudoColorRenderer* r = new QgsSingleBandPseudoColorRenderer( mpRasterLayer->dataProvider(), 1, rasterShader );
mpRasterLayer->setRenderer( r );
mpMapRenderer->setExtent( mpRasterLayer->extent() );
mMapSettings.setExtent( mpRasterLayer->extent() );
QVERIFY( render( "raster_pseudo" ) );
}
@ -262,7 +259,7 @@ bool TestQgsRasterLayer::testColorRamp( QString name, QgsVectorColorRampV2* colo
rasterShader->setRasterShaderFunction( colorRampShader );
QgsSingleBandPseudoColorRenderer* r = new QgsSingleBandPseudoColorRenderer( mpRasterLayer->dataProvider(), 1, rasterShader );
mpRasterLayer->setRenderer( r );
mpMapRenderer->setExtent( mpRasterLayer->extent() );
mMapSettings.setExtent( mpRasterLayer->extent() );
return render( name );
}
@ -306,20 +303,16 @@ void TestQgsRasterLayer::colorRamp4()
void TestQgsRasterLayer::landsatBasic()
{
mpLandsatRasterLayer->setContrastEnhancement( QgsContrastEnhancement::StretchToMinimumMaximum, QgsRaster::ContrastEnhancementMinMax );
QStringList myLayers;
myLayers << mpLandsatRasterLayer->id();
mpMapRenderer->setLayerSet( myLayers );
mpMapRenderer->setExtent( mpLandsatRasterLayer->extent() );
mMapSettings.setLayers( QStringList() << mpLandsatRasterLayer->id() );
mMapSettings.setExtent( mpLandsatRasterLayer->extent() );
QVERIFY( render( "landsat_basic" ) );
}
void TestQgsRasterLayer::landsatBasic875Qml()
{
//a qml that orders the rgb bands as 8,7,5
QStringList myLayers;
myLayers << mpLandsatRasterLayer->id();
mpMapRenderer->setLayerSet( myLayers );
mpMapRenderer->setExtent( mpLandsatRasterLayer->extent() );
mMapSettings.setLayers( QStringList() << mpLandsatRasterLayer->id() );
mMapSettings.setExtent( mpLandsatRasterLayer->extent() );
QVERIFY( setQml( "875" ) );
QVERIFY( render( "landsat_875" ) );
}
@ -432,7 +425,7 @@ bool TestQgsRasterLayer::render( QString theTestType )
mReport += "<h2>" + theTestType + "</h2>\n";
QgsRenderChecker myChecker;
myChecker.setControlName( "expected_" + theTestType );
myChecker.setMapRenderer( mpMapRenderer );
myChecker.setMapSettings( mMapSettings );
bool myResultFlag = myChecker.runTest( theTestType );
mReport += "\n\n\n" + myChecker.report();
return myResultFlag;
@ -489,11 +482,8 @@ void TestQgsRasterLayer::transparency()
QVERIFY( rasterRenderer != 0 );
rasterRenderer->setRasterTransparency( rasterTransparency );
QStringList myLayers;
myLayers << mpFloat32RasterLayer->id();
mpMapRenderer->setLayerSet( myLayers );
mpMapRenderer->setExtent( mpFloat32RasterLayer->extent() );
mMapSettings.setLayers( QStringList() << mpFloat32RasterLayer->id() );
mMapSettings.setExtent( mpFloat32RasterLayer->extent() );
QVERIFY( render( "raster_transparency" ) );
}

View File

@ -53,7 +53,7 @@ class TestQgsRenderers: public QObject
bool mTestHasError;
bool setQml( QString theType ); //uniquevalue / continuous / single /
bool imageCheck( QString theType ); //as above
QgsMapRenderer * mpMapRenderer;
QgsMapSettings mMapSettings;
QgsMapLayer * mpPointsLayer;
QgsMapLayer * mpLinesLayer;
QgsMapLayer * mpPolysLayer;
@ -113,12 +113,8 @@ void TestQgsRenderers::initTestCase()
// since maprender does not require a qui
// and is more light weight
//
mpMapRenderer = new QgsMapRenderer();
QStringList myLayers;
myLayers << mpPointsLayer->id();
myLayers << mpPolysLayer->id();
myLayers << mpLinesLayer->id();
mpMapRenderer->setLayerSet( myLayers );
mMapSettings.setLayers(
QStringList() << mpPointsLayer->id() << mpPolysLayer->id() << mpLinesLayer->id() );
mReport += "<h1>Vector Renderer Tests</h1>\n";
}
void TestQgsRenderers::cleanupTestCase()
@ -214,11 +210,11 @@ bool TestQgsRenderers::imageCheck( QString theTestType )
// the same wrong value is reported by ogrinfo). Since QGIS 2.1, the provider
// gives correct extent. Forced to fixed extend however to avoid problems in future.
QgsRectangle extent( -118.8888888888887720, 22.8002070393376783, -83.3333333333331581, 46.8719806763287536 );
mpMapRenderer->setExtent( extent );
mpMapRenderer->rendererContext()->setForceVectorOutput( true );
mMapSettings.setExtent( extent );
mMapSettings.setFlag( QgsMapSettings::ForceVectorOutput );
QgsRenderChecker myChecker;
myChecker.setControlName( "expected_" + theTestType );
myChecker.setMapRenderer( mpMapRenderer );
myChecker.setMapSettings( mMapSettings );
myChecker.setColorTolerance( 15 );
bool myResultFlag = myChecker.runTest( theTestType );
mReport += myChecker.report();

View File

@ -24,7 +24,7 @@
#include <iostream>
//qgis includes...
#include <qgsmaprenderer.h>
#include <qgsmapsettings.h>
#include <qgsmaplayer.h>
#include <qgsvectorlayer.h>
#include <qgsapplication.h>
@ -62,7 +62,7 @@ class TestQgsShapeburst: public QObject
bool mTestHasError;
bool setQml( QString theType );
bool imageCheck( QString theType );
QgsMapRenderer * mpMapRenderer;
QgsMapSettings mMapSettings;
QgsVectorLayer * mpPolysLayer;
QgsShapeburstFillSymbolLayerV2* mShapeburstFill;
QgsFillSymbolV2* mFillSymbol;
@ -111,10 +111,7 @@ void TestQgsShapeburst::initTestCase()
// since maprender does not require a qui
// and is more light weight
//
mpMapRenderer = new QgsMapRenderer();
QStringList myLayers;
myLayers << mpPolysLayer->id();
mpMapRenderer->setLayerSet( myLayers );
mMapSettings.setLayers( QStringList() << mpPolysLayer->id() );
mReport += "<h1>Shapeburst Renderer Tests</h1>\n";
}
@ -235,10 +232,10 @@ bool TestQgsShapeburst::imageCheck( QString theTestType )
{
//use the QgsRenderChecker test utility class to
//ensure the rendered output matches our control image
mpMapRenderer->setExtent( mpPolysLayer->extent() );
mMapSettings.setExtent( mpPolysLayer->extent() );
QgsRenderChecker myChecker;
myChecker.setControlName( "expected_" + theTestType );
myChecker.setMapRenderer( mpMapRenderer );
myChecker.setMapSettings( mMapSettings );
bool myResultFlag = myChecker.runTest( theTestType );
mReport += myChecker.report();
return myResultFlag;

View File

@ -95,6 +95,7 @@ class TestQgsComposerMap(TestCase):
QgsComposerMap.Bottom)
self.mComposerMap.setAnnotationFontColor(QColor(255,0,0,150))
self.mComposerMap.setGridBlendMode(QPainter.CompositionMode_Overlay)
self.mComposerMap.setShowGridAnnotation(False)
checker = QgsCompositionChecker('composermap_grid', self.mComposition)
myTestResult, myMessage = checker.testComposition()
self.mComposerMap.setGridEnabled(False)