@@ -29,6 +29,7 @@ email : jef at norbit dot de
29
29
#include " qgsvectorlayer.h"
30
30
#include " qgsoraclecolumntypethread.h"
31
31
#include " qgssettings.h"
32
+ #include " qgsproxyprogresstask.h"
32
33
33
34
#include < QFileDialog>
34
35
#include < QInputDialog>
@@ -516,15 +517,20 @@ void QgsOracleSourceSelect::on_btnConnect_clicked()
516
517
QgsOracleConn::restrictToSchema ( cmbConnections->currentText () ),
517
518
uri.useEstimatedMetadata (),
518
519
cbxAllowGeometrylessTables->isChecked () );
520
+ mColumnTypeTask = new QgsProxyProgressTask ( tr ( " Scanning tables for %1" ).arg ( cmbConnections->currentText () ) );
521
+ QgsApplication::taskManager ()->addTask ( mColumnTypeTask );
519
522
520
523
connect ( mColumnTypeThread , &QgsOracleColumnTypeThread::setLayerType,
521
524
this , &QgsOracleSourceSelect::setLayerType );
522
525
connect ( mColumnTypeThread , &QThread::finished,
523
526
this , &QgsOracleSourceSelect::columnThreadFinished );
524
527
connect ( mColumnTypeThread , &QgsOracleColumnTypeThread::progress,
525
- this , &QgsOracleSourceSelect::progress );
528
+ mColumnTypeTask , [ = ]( int i, int n )
529
+ {
530
+ mColumnTypeTask ->setProxyProgress ( 100.0 * static_cast < double >( i ) / n );
531
+ } );
526
532
connect ( mColumnTypeThread , &QgsOracleColumnTypeThread::progressMessage,
527
- this , &QgsOracleSourceSelect ::progressMessage );
533
+ this , &QgsAbstractDataSourceWidget ::progressMessage );
528
534
529
535
btnConnect->setText ( tr ( " Stop" ) );
530
536
mColumnTypeThread ->start ();
@@ -565,6 +571,10 @@ void QgsOracleSourceSelect::columnThreadFinished()
565
571
566
572
delete mColumnTypeThread ;
567
573
mColumnTypeThread = nullptr ;
574
+
575
+ mColumnTypeTask ->finalize ( true );
576
+ mColumnTypeTask = nullptr ;
577
+
568
578
btnConnect->setText ( tr ( " Connect" ) );
569
579
570
580
finishList ();
0 commit comments