Skip to content

Commit b00950b

Browse files
committedJan 21, 2016
[Geometry snapper] Fix progress bar not working
1 parent 7afdecd commit b00950b

File tree

4 files changed

+14
-2
lines changed

4 files changed

+14
-2
lines changed
 

‎src/plugins/geometry_snapper/qgsgeometrysnapper.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,13 @@ QgsGeometrySnapper::QgsGeometrySnapper( QgsVectorLayer *adjustLayer, QgsVectorLa
4949

5050
QFuture<void> QgsGeometrySnapper::processFeatures()
5151
{
52+
emit progressRangeChanged( 0, mFeatures.size() );
5253
return QtConcurrent::map( mFeatures, ProcessFeatureWrapper( this ) );
5354
}
5455

5556
void QgsGeometrySnapper::processFeature( QgsFeatureId id )
5657
{
58+
emit progressStep();
5759
// Get current feature
5860
QgsFeature feature;
5961
if ( !getFeature( mAdjustLayer, mAdjustLayerMutex, id, feature ) )

‎src/plugins/geometry_snapper/qgsgeometrysnapper.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ class QgsGeometrySnapper : public QObject
3535
QFuture<void> processFeatures();
3636
const QStringList& getErrors() const { return mErrors; }
3737

38+
signals:
39+
void progressRangeChanged( int min, int max );
40+
void progressStep();
41+
3842
private:
3943
struct ProcessFeatureWrapper
4044
{

‎src/plugins/geometry_snapper/qgsgeometrysnapperdialog.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,8 +280,6 @@ void QgsGeometrySnapperDialog::run()
280280
/** Run **/
281281
QEventLoop evLoop;
282282
QFutureWatcher<void> futureWatcher;
283-
connect( &futureWatcher, SIGNAL( progressRangeChanged( int, int ) ), progressBar, SLOT( setRange( int, int ) ) );
284-
connect( &futureWatcher, SIGNAL( progressValueChanged( int ) ), progressBar, SLOT( setValue( int ) ) );
285283
connect( &futureWatcher, SIGNAL( finished() ), &evLoop, SLOT( quit() ) );
286284
connect( buttonBox->button( QDialogButtonBox::Abort ), SIGNAL( clicked() ), &futureWatcher, SLOT( cancel() ) );
287285

@@ -294,6 +292,8 @@ void QgsGeometrySnapperDialog::run()
294292
widgetInputs->setEnabled( false );
295293

296294
QgsGeometrySnapper snapper( layer, referenceLayer, selectedOnly, doubleSpinBoxMaxDistance->value(), &mIface->mapCanvas()->mapSettings() );
295+
connect( &snapper, SIGNAL( progressRangeChanged( int, int ) ), progressBar, SLOT( setRange( int, int ) ) );
296+
connect( &snapper, SIGNAL( progressStep() ), this, SLOT( progressStep() ) );
297297
futureWatcher.setFuture( snapper.processFeatures() );
298298
evLoop.exec();
299299

@@ -317,3 +317,8 @@ void QgsGeometrySnapperDialog::run()
317317
hide() ;
318318
}
319319

320+
void QgsGeometrySnapperDialog::progressStep()
321+
{
322+
progressBar->setValue( progressBar->value() + 1 );
323+
}
324+

‎src/plugins/geometry_snapper/qgsgeometrysnapperdialog.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class QgsGeometrySnapperDialog: public QDialog, private Ui::QgsGeometrySnapperDi
4646
void updateLayers();
4747
void validateInput();
4848
void selectOutputFile();
49+
void progressStep();
4950
};
5051

5152
#endif // QGS_GEOMETRY_SNAPPER_DIALOG_H

0 commit comments

Comments
 (0)
Please sign in to comment.