handle bad layer: show unfixable layer count as message bar and skip dialog when list is empty.

This commit is contained in:
Juergen E. Fischer 2013-05-10 16:26:28 +02:00
parent 5346c8013c
commit 0088f28931
2 changed files with 20 additions and 1 deletions

View File

@ -22,6 +22,7 @@
#include "qgslogger.h"
#include "qgsrasterlayer.h"
#include "qgsproviderregistry.h"
#include "qgsmessagebar.h"
#include <QDomDocument>
#include <QDomElement>
@ -37,7 +38,18 @@ void QgsHandleBadLayersHandler::handleBadLayers( QList<QDomNode> layers, QDomDoc
{
QApplication::setOverrideCursor( Qt::ArrowCursor );
QgsHandleBadLayers *dialog = new QgsHandleBadLayers( layers, projectDom );
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();
}

View File

@ -46,6 +46,8 @@ class QgsHandleBadLayers
QgsHandleBadLayers( const QList<QDomNode> &layers, const QDomDocument &dom );
~QgsHandleBadLayers();
int layerCount();
private slots:
void selectionChanged();
void browseClicked();