diff --git a/src/app/qgshandlebadlayers.cpp b/src/app/qgshandlebadlayers.cpp index 61b914c6941..7869e3ccd3b 100644 --- a/src/app/qgshandlebadlayers.cpp +++ b/src/app/qgshandlebadlayers.cpp @@ -22,6 +22,7 @@ #include "qgslogger.h" #include "qgsrasterlayer.h" #include "qgsproviderregistry.h" +#include "qgsmessagebar.h" #include #include @@ -37,7 +38,18 @@ void QgsHandleBadLayersHandler::handleBadLayers( QList layers, QDomDoc { QApplication::setOverrideCursor( Qt::ArrowCursor ); QgsHandleBadLayers *dialog = new QgsHandleBadLayers( layers, projectDom ); - dialog->exec(); + + if ( dialog->layerCount() < layers.size() ) + QgisApp::instance()->messageBar()->pushMessage( + tr( "Handle Bad layers" ), + tr( "%1 of %2 bad layers were not not fixable." ) + .arg( layers.size() - dialog->layerCount() ) + .arg( layers.size() ), + QgsMessageBar::WARNING, QgisApp::instance()->messageTimeout() ); + + if ( dialog->layerCount() > 0 ) + dialog->exec(); + delete dialog; QApplication::restoreOverrideCursor(); } @@ -357,3 +369,8 @@ void QgsHandleBadLayers::rejected() QDialog::reject(); } + +int QgsHandleBadLayers::layerCount() +{ + return mLayerList->rowCount(); +} diff --git a/src/app/qgshandlebadlayers.h b/src/app/qgshandlebadlayers.h index f0f79352634..a9bfd49e072 100644 --- a/src/app/qgshandlebadlayers.h +++ b/src/app/qgshandlebadlayers.h @@ -46,6 +46,8 @@ class QgsHandleBadLayers QgsHandleBadLayers( const QList &layers, const QDomDocument &dom ); ~QgsHandleBadLayers(); + int layerCount(); + private slots: void selectionChanged(); void browseClicked();