@@ -629,7 +629,8 @@ void QgsMapCanvas::rendererJobFinished()
629
629
p.end ();
630
630
631
631
mMap ->setContent ( img, imageRect ( img, mSettings ) );
632
- startPreviewJobs ();
632
+ if ( mUsePreviewJobs )
633
+ startPreviewJobs ();
633
634
}
634
635
635
636
// now we are in a slot called from mJob - do not delete it immediately
@@ -664,6 +665,16 @@ QgsRectangle QgsMapCanvas::imageRect( const QImage &img, const QgsMapSettings &m
664
665
return rect;
665
666
}
666
667
668
+ bool QgsMapCanvas::previewJobsEnabled () const
669
+ {
670
+ return mUsePreviewJobs ;
671
+ }
672
+
673
+ void QgsMapCanvas::setPreviewJobsEnabled ( bool enabled )
674
+ {
675
+ mUsePreviewJobs = enabled;
676
+ }
677
+
667
678
void QgsMapCanvas::mapUpdateTimeout ()
668
679
{
669
680
if ( mJob )
@@ -2132,7 +2143,7 @@ const QgsLabelingEngineSettings &QgsMapCanvas::labelingEngineSettings() const
2132
2143
void QgsMapCanvas::startPreviewJobs ()
2133
2144
{
2134
2145
stopPreviewJobs (); // just in case still running
2135
- startPreviewJob ( 0 );
2146
+ schedulePreviewJob ( 0 );
2136
2147
}
2137
2148
2138
2149
void QgsMapCanvas::startPreviewJob ( int number )
@@ -2160,22 +2171,14 @@ void QgsMapCanvas::startPreviewJob( int number )
2160
2171
jobSettings.setExtent ( jobExtent );
2161
2172
jobSettings.setFlag ( QgsMapSettings::DrawLabeling, false );
2162
2173
2163
- QgsMapRendererQImageJob *job = new QgsMapRendererParallelJob ( jobSettings );
2174
+ QgsMapRendererQImageJob *job = new QgsMapRendererSequentialJob ( jobSettings );
2164
2175
mPreviewJobs .append ( job );
2165
2176
connect ( job, &QgsMapRendererJob::finished, this , &QgsMapCanvas::previewJobFinished );
2166
2177
job->start ();
2167
2178
2168
2179
if ( number < 8 )
2169
2180
{
2170
- mPreviewTimer .setSingleShot ( true );
2171
- mPreviewTimer .setInterval ( 250 );
2172
- disconnect ( mPreviewTimerConnection );
2173
- mPreviewTimerConnection = connect ( &mPreviewTimer , &QTimer::timeout, [ = ]()
2174
- {
2175
- startPreviewJob ( number + 1 );
2176
- }
2177
- );
2178
- mPreviewTimer .start ();
2181
+ schedulePreviewJob ( number + 1 );
2179
2182
}
2180
2183
}
2181
2184
@@ -2194,3 +2197,16 @@ void QgsMapCanvas::stopPreviewJobs()
2194
2197
}
2195
2198
mPreviewJobs .clear ();
2196
2199
}
2200
+
2201
+ void QgsMapCanvas::schedulePreviewJob ( int number )
2202
+ {
2203
+ mPreviewTimer .setSingleShot ( true );
2204
+ mPreviewTimer .setInterval ( 250 );
2205
+ disconnect ( mPreviewTimerConnection );
2206
+ mPreviewTimerConnection = connect ( &mPreviewTimer , &QTimer::timeout, [ = ]()
2207
+ {
2208
+ startPreviewJob ( number );
2209
+ }
2210
+ );
2211
+ mPreviewTimer .start ();
2212
+ }
0 commit comments