Fix #12932 - Send and show layer load errors to user

This commit is contained in:
Nathan Woodrow 2017-11-13 15:51:36 +10:00
parent 9369e5c137
commit 66c7d6868c
3 changed files with 9 additions and 5 deletions

View File

@ -10021,7 +10021,8 @@ QgsVectorLayer *QgisApp::addVectorLayer( const QString &vectorLayerPath, const Q
}
else
{
QString msg = tr( "The layer %1 is not a valid layer and can not be added to the map" ).arg( vectorLayerPath );
QString message = layer->dataProvider()->error().message( QgsErrorMessage::Text );
QString msg = tr( "The layer %1 is not a valid layer and can not be added to the map. Reason: %2" ).arg( vectorLayerPath ).arg( message );
messageBar()->pushMessage( tr( "Layer is not valid" ), msg, QgsMessageBar::CRITICAL, messageTimeout() );
delete layer;

View File

@ -363,6 +363,12 @@ void QgsMssqlProvider::loadMetadata()
}
}
void QgsMssqlProvider::setLastError( const QString &error )
{
appendError( error );
mLastError = error;
}
void QgsMssqlProvider::loadFields()
{
bool isIdentity = false;

View File

@ -207,10 +207,7 @@ class QgsMssqlProvider : public QgsVectorDataProvider
QString mSqlWhereClause;
// Sets the error messages
void setLastError( const QString &error )
{
mLastError = error;
}
void setLastError( const QString &error );
static void mssqlWkbTypeAndDimension( QgsWkbTypes::Type wkbType, QString &geometryType, int &dim );
static QgsWkbTypes::Type getWkbType( const QString &wkbType );