|
@@ -453,34 +453,26 @@ int QgsLayoutMultiFrame::frameIndex( QgsLayoutFrame *frame ) const |
|
|
return mFrameItems.indexOf( frame ); |
|
|
} |
|
|
|
|
|
bool QgsLayoutMultiFrame::writeXml( QDomElement &parentElement, QDomDocument &doc, const QgsReadWriteContext &context, bool ignoreFrames ) const |
|
|
bool QgsLayoutMultiFrame::writeXml( QDomElement &parentElement, QDomDocument &doc, const QgsReadWriteContext &context, bool includeFrames ) const |
|
|
{ |
|
|
QDomElement element = doc.createElement( QStringLiteral( "LayoutMultiFrame" ) ); |
|
|
element.setAttribute( QStringLiteral( "resizeMode" ), mResizeMode ); |
|
|
element.setAttribute( QStringLiteral( "uuid" ), mUuid ); |
|
|
element.setAttribute( QStringLiteral( "type" ), type() ); |
|
|
|
|
|
#if 0 //TODO |
|
|
|
|
|
if ( !ignoreFrames ) |
|
|
{ |
|
|
QList<QgsComposerFrame *>::const_iterator frameIt = mFrameItems.constBegin(); |
|
|
for ( ; frameIt != mFrameItems.constEnd(); ++frameIt ) |
|
|
{ |
|
|
( *frameIt )->writeXml( elem, doc ); |
|
|
} |
|
|
} |
|
|
#else |
|
|
Q_UNUSED( ignoreFrames ); |
|
|
#endif |
|
|
|
|
|
for ( QgsLayoutFrame *frame : mFrameItems ) |
|
|
{ |
|
|
if ( !frame ) |
|
|
continue; |
|
|
|
|
|
QDomElement childItem = doc.createElement( QStringLiteral( "childFrame" ) ); |
|
|
childItem.setAttribute( QStringLiteral( "uuid" ), frame->uuid() ); |
|
|
|
|
|
if ( includeFrames ) |
|
|
{ |
|
|
frame->writeXml( childItem, doc, context ); |
|
|
} |
|
|
|
|
|
element.appendChild( childItem ); |
|
|
} |
|
|
|
|
@@ -490,7 +482,7 @@ bool QgsLayoutMultiFrame::writeXml( QDomElement &parentElement, QDomDocument &do |
|
|
return true; |
|
|
} |
|
|
|
|
|
bool QgsLayoutMultiFrame::readXml( const QDomElement &element, const QDomDocument &doc, const QgsReadWriteContext &context, bool ignoreFrames ) |
|
|
bool QgsLayoutMultiFrame::readXml( const QDomElement &element, const QDomDocument &doc, const QgsReadWriteContext &context, bool includeFrames ) |
|
|
{ |
|
|
if ( element.nodeName() != QStringLiteral( "LayoutMultiFrame" ) ) |
|
|
{ |
|
@@ -504,29 +496,6 @@ bool QgsLayoutMultiFrame::readXml( const QDomElement &element, const QDomDocumen |
|
|
|
|
|
mUuid = element.attribute( QStringLiteral( "uuid" ), QUuid::createUuid().toString() ); |
|
|
mResizeMode = static_cast< ResizeMode >( element.attribute( QStringLiteral( "resizeMode" ), QStringLiteral( "0" ) ).toInt() ); |
|
|
#if 0 //TODO |
|
|
if ( !ignoreFrames ) |
|
|
{ |
|
|
deleteFrames(); |
|
|
} |
|
|
|
|
|
|
|
|
if ( !ignoreFrames ) |
|
|
{ |
|
|
QDomNodeList frameList = itemElem.elementsByTagName( QStringLiteral( "ComposerFrame" ) ); |
|
|
for ( int i = 0; i < frameList.size(); ++i ) |
|
|
{ |
|
|
QDomElement frameElem = frameList.at( i ).toElement(); |
|
|
QgsComposerFrame *newFrame = new QgsComposerFrame( mComposition, this, 0, 0, 0, 0 ); |
|
|
newFrame->readXml( frameElem, doc ); |
|
|
addFrame( newFrame, false ); |
|
|
} |
|
|
|
|
|
//TODO - think there should be a recalculateFrameSizes() call here |
|
|
} |
|
|
#else |
|
|
Q_UNUSED( ignoreFrames ); |
|
|
#endif |
|
|
|
|
|
deleteFrames(); |
|
|
mFrameUuids.clear(); |
|
@@ -537,8 +506,22 @@ bool QgsLayoutMultiFrame::readXml( const QDomElement &element, const QDomDocumen |
|
|
if ( !elementNode.isElement() ) |
|
|
continue; |
|
|
|
|
|
QString uuid = elementNode.toElement().attribute( QStringLiteral( "uuid" ) ); |
|
|
QDomElement frameElement = elementNode.toElement(); |
|
|
|
|
|
QString uuid = frameElement.attribute( QStringLiteral( "uuid" ) ); |
|
|
mFrameUuids << uuid; |
|
|
|
|
|
if ( includeFrames ) |
|
|
{ |
|
|
QDomNodeList frameNodes = frameElement.elementsByTagName( QStringLiteral( "LayoutItem" ) ); |
|
|
if ( !frameNodes.isEmpty() ) |
|
|
{ |
|
|
QDomElement frameItemElement = frameNodes.at( 0 ).toElement(); |
|
|
std::unique_ptr< QgsLayoutFrame > newFrame = qgis::make_unique< QgsLayoutFrame >( mLayout, this ); |
|
|
newFrame->readXml( frameItemElement, doc, context ); |
|
|
addFrame( newFrame.release(), false ); |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
bool result = readPropertiesFromElement( element, doc, context ); |
|
|