@@ -5901,6 +5901,15 @@ void QgisApp::saveMapAsPdf()
5901
5901
if ( dlg.saveAsRaster() )
5902
5902
{
5903
5903
image = new QImage( dlg.size(), QImage::Format_ARGB32 );
5904
+ if ( image->isNull() )
5905
+ {
5906
+ messageBar()->pushWarning( tr( "Save as PDF" ), tr( "Could not allocate required memory for image" ) );
5907
+ delete p;
5908
+ delete image;
5909
+ delete printer;
5910
+
5911
+ return;
5912
+ }
5904
5913
p->begin( image );
5905
5914
}
5906
5915
else
@@ -5924,7 +5933,6 @@ void QgisApp::saveMapAsPdf()
5924
5933
5925
5934
connect( mapRendererTask, &QgsMapRendererTask::renderingComplete, this, [ this, p, image, printer ]
5926
5935
{
5927
- messageBar()->pushSuccess( tr( "Save as image" ), tr( "Successfully saved map to image" ) );
5928
5936
p->end();
5929
5937
5930
5938
if ( image )
@@ -5936,26 +5944,13 @@ void QgisApp::saveMapAsPdf()
5936
5944
pp.end();
5937
5945
}
5938
5946
5947
+ messageBar()->pushSuccess( tr( "Save as PDF" ), tr( "Successfully saved map to PDF" ) );
5939
5948
delete p;
5940
5949
delete image;
5941
5950
delete printer;
5942
5951
} );
5943
- connect( mapRendererTask, &QgsMapRendererTask::errorOccurred, this, [ this, p, image, printer ]( int error )
5952
+ connect( mapRendererTask, &QgsMapRendererTask::errorOccurred, this, [ this, p, image, printer ]( int )
5944
5953
{
5945
- switch ( error )
5946
- {
5947
- case QgsMapRendererTask::ImageAllocationFail:
5948
- {
5949
- messageBar()->pushWarning( tr( "Save as image" ), tr( "Could not allocate required memory for image" ) );
5950
- break;
5951
- }
5952
- case QgsMapRendererTask::ImageSaveFail:
5953
- {
5954
- messageBar()->pushWarning( tr( "Save as image" ), tr( "Could not save the image to file" ) );
5955
- break;
5956
- }
5957
- }
5958
-
5959
5954
delete p;
5960
5955
delete image;
5961
5956
delete printer;
0 commit comments