Skip to content

Commit c9b8738

Browse files
committedMar 21, 2017
Fix restoration of compositions from legacy projects
1 parent 54d1a93 commit c9b8738

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed
 

‎src/core/composer/qgslayoutmanager.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,19 +102,25 @@ bool QgsLayoutManager::readXml( const QDomElement &element, const QDomDocument &
102102
layoutsElem = element.firstChildElement( QStringLiteral( "Layouts" ) );
103103
}
104104
if ( layoutsElem.isNull() )
105-
return false;
105+
{
106+
// handle legacy projects
107+
layoutsElem = doc.documentElement();
108+
}
106109

107110
//restore each composer
108111
bool result = true;
109112
QDomNodeList composerNodes = element.elementsByTagName( QStringLiteral( "Composer" ) );
110113
for ( int i = 0; i < composerNodes.size(); ++i )
111114
{
115+
QString legacyTitle = composerNodes.at( i ).toElement().attribute( QStringLiteral( "title" ) );
112116
QgsComposition *c = createCompositionFromXml( composerNodes.at( i ).toElement(), doc );
113117
if ( !c )
114118
{
115119
result = false;
116120
continue;
117121
}
122+
if ( c->name().isEmpty() )
123+
c->setName( legacyTitle );
118124
result = result && addComposition( c );
119125
}
120126
return result;

0 commit comments

Comments
 (0)