@@ -28,6 +28,7 @@ email : sherman at mrcc.com
28
28
#include " qgsvectorlayer.h"
29
29
#include " qgscolumntypethread.h"
30
30
#include " qgssettings.h"
31
+ #include " qgsproxyprogresstask.h"
31
32
32
33
#include < QFileDialog>
33
34
#include < QInputDialog>
@@ -545,13 +546,18 @@ void QgsPgSourceSelect::btnConnect_clicked()
545
546
QApplication::setOverrideCursor ( Qt::BusyCursor );
546
547
547
548
mColumnTypeThread = new QgsGeomColumnTypeThread ( cmbConnections->currentText (), mUseEstimatedMetadata , cbxAllowGeometrylessTables->isChecked () );
549
+ mColumnTypeTask = new QgsProxyProgressTask ( tr ( " Scanning tables for %1" ).arg ( cmbConnections->currentText () ) );
550
+ QgsApplication::taskManager ()->addTask ( mColumnTypeTask );
548
551
549
552
connect ( mColumnTypeThread , &QgsGeomColumnTypeThread::setLayerType,
550
553
this , &QgsPgSourceSelect::setLayerType );
551
554
connect ( mColumnTypeThread , &QThread::finished,
552
555
this , &QgsPgSourceSelect::columnThreadFinished );
553
556
connect ( mColumnTypeThread , &QgsGeomColumnTypeThread::progress,
554
- this , &QgsPgSourceSelect::progress );
557
+ mColumnTypeTask , [ = ]( int i, int n )
558
+ {
559
+ mColumnTypeTask ->setProxyProgress ( 100.0 * static_cast < double >( i ) / n );
560
+ } );
555
561
connect ( mColumnTypeThread , &QgsGeomColumnTypeThread::progressMessage,
556
562
this , &QgsPgSourceSelect::progressMessage );
557
563
@@ -572,6 +578,8 @@ void QgsPgSourceSelect::columnThreadFinished()
572
578
delete mColumnTypeThread ;
573
579
mColumnTypeThread = nullptr ;
574
580
btnConnect->setText ( tr ( " Connect" ) );
581
+ mColumnTypeTask ->finalize ( true );
582
+ mColumnTypeTask = nullptr ;
575
583
576
584
finishList ();
577
585
}
0 commit comments