mirror of
https://github.com/qgis/QGIS.git
synced 2025-06-19 00:02:48 -04:00
Merge pull request #9653 from elpaso/bugfix-badlayers-apply-no-style
Fix bad layers style loss when "apply"
This commit is contained in:
commit
ca80fb6052
@ -412,11 +412,22 @@ void QgsHandleBadLayers::apply()
|
||||
if ( QgsProject::instance()->mapLayer( layerId ) )
|
||||
{
|
||||
QgsMapLayer *mapLayer = QgsProject::instance()->mapLayer( layerId );
|
||||
if ( mapLayer )
|
||||
QgsDataProvider::ProviderOptions options;
|
||||
const auto absolutePath { QgsProject::instance()->pathResolver().readPath( datasource ) };
|
||||
mapLayer->setDataSource( absolutePath, name, provider, options );
|
||||
dataSourceFixed = mapLayer->isValid();
|
||||
if ( dataSourceFixed )
|
||||
{
|
||||
QgsDataProvider::ProviderOptions options;
|
||||
mapLayer->setDataSource( datasource, name, provider, options );
|
||||
dataSourceFixed = mapLayer->isValid();
|
||||
QString errorMsg;
|
||||
QgsReadWriteContext context;
|
||||
context.setPathResolver( QgsProject::instance()->pathResolver() );
|
||||
context.setProjectTranslator( QgsProject::instance() );
|
||||
if ( ! mapLayer->readSymbology( node, errorMsg, context ) )
|
||||
{
|
||||
QgsDebugMsg( QStringLiteral( "Failed to restore original layer style from node XML for layer %1: %2" )
|
||||
.arg( mapLayer->name( ) )
|
||||
.arg( errorMsg ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user