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