@@ -216,13 +216,15 @@ bool QgsOracleConnectionItem::handleDrop( const QMimeData * data, Qt::DropAction
216
216
217
217
qApp->setOverrideCursor ( Qt::WaitCursor );
218
218
219
- QProgressDialog *progress = new QProgressDialog ( tr ( " Copying features..." ), tr ( " Abort" ), 0 , 0 , 0 );
219
+ QProgressDialog *progress = new QProgressDialog ( tr ( " Copying features..." ), tr ( " Abort" ), 0 , 0 , nullptr );
220
220
progress->setWindowTitle ( tr ( " Import layer" ) );
221
221
progress->setWindowModality ( Qt::WindowModal );
222
222
progress->show ();
223
223
224
224
QStringList importResults;
225
225
bool hasError = false ;
226
+ bool cancelled = false ;
227
+
226
228
QgsMimeDataUtils::UriList lst = QgsMimeDataUtils::decodeUriList ( data );
227
229
Q_FOREACH ( const QgsMimeDataUtils::Uri& u, lst )
228
230
{
@@ -248,9 +250,11 @@ bool QgsOracleConnectionItem::handleDrop( const QMimeData * data, Qt::DropAction
248
250
QgsDebugMsgLevel ( " URI " + uri.uri (), 3 );
249
251
QgsVectorLayerImport::ImportError err;
250
252
QString importError;
251
- err = QgsVectorLayerImport::importLayer ( srcLayer, uri.uri (), " oracle" , &srcLayer->crs (), false , &importError, false , 0 , progress );
253
+ err = QgsVectorLayerImport::importLayer ( srcLayer, uri.uri (), " oracle" , &srcLayer->crs (), false , &importError, false , nullptr , progress );
252
254
if ( err == QgsVectorLayerImport::NoError )
253
255
importResults.append ( tr ( " %1: OK!" ).arg ( u.name ) );
256
+ else if ( err == QgsVectorLayerImport::ErrUserCancelled )
257
+ cancelled = true ;
254
258
else
255
259
{
256
260
importResults.append ( QString ( " %1: %2" ).arg ( u.name ).arg ( importError ) );
@@ -270,7 +274,12 @@ bool QgsOracleConnectionItem::handleDrop( const QMimeData * data, Qt::DropAction
270
274
271
275
qApp->restoreOverrideCursor ();
272
276
273
- if ( hasError )
277
+ if ( cancelled )
278
+ {
279
+ QMessageBox::information ( nullptr , tr ( " Import to Oracle database" ), tr ( " Import cancelled." ) );
280
+ refresh ();
281
+ }
282
+ else if ( hasError )
274
283
{
275
284
QgsMessageOutput *output = QgsMessageOutput::createMessageOutput ();
276
285
output->setTitle ( tr ( " Import to Oracle database" ) );
@@ -283,6 +292,11 @@ bool QgsOracleConnectionItem::handleDrop( const QMimeData * data, Qt::DropAction
283
292
refresh ();
284
293
}
285
294
295
+ if ( state () == Populated )
296
+ refresh ();
297
+ else
298
+ populate ();
299
+
286
300
return true ;
287
301
}
288
302
0 commit comments