bool QgsLayoutAtlas::readXml( const QDomElement &atlasElem, const QDomDocument &, const QgsReadWriteContext & ) { mEnabled = atlasElem.attribute( QStringLiteral( "enabled" ), QStringLiteral( "0" ) ).toInt(); // look for stored layer name QString layerId = atlasElem.attribute( QStringLiteral( "coverageLayer" ) ); QString layerName = atlasElem.attribute( QStringLiteral( "coverageLayerName" ) ); QString layerSource = atlasElem.attribute( QStringLiteral( "coverageLayerSource" ) ); QString layerProvider = atlasElem.attribute( QStringLiteral( "coverageLayerProvider" ) ); mCoverageLayer = QgsVectorLayerRef( layerId, layerName, layerSource, layerProvider ); mCoverageLayer.resolveWeakly( mLayout->project() ); mLayout->reportContext().setLayer( mCoverageLayer.get() ); mPageNameExpression = atlasElem.attribute( QStringLiteral( "pageNameExpression" ), QString() ); QString error; setFilenameExpression( atlasElem.attribute( QStringLiteral( "filenamePattern" ), QString() ), error ); mSortFeatures = atlasElem.attribute( QStringLiteral( "sortFeatures" ), QStringLiteral( "0" ) ).toInt(); mSortExpression = atlasElem.attribute( QStringLiteral( "sortKey" ) ); mSortAscending = atlasElem.attribute( QStringLiteral( "sortAscending" ), QStringLiteral( "1" ) ).toInt(); mFilterFeatures = atlasElem.attribute( QStringLiteral( "filterFeatures" ), QStringLiteral( "0" ) ).toInt(); mFilterExpression = atlasElem.attribute( QStringLiteral( "featureFilter" ) ); mHideCoverage = atlasElem.attribute( QStringLiteral( "hideCoverage" ), QStringLiteral( "0" ) ).toInt(); emit toggled( mEnabled ); emit changed(); return true; }
void QgsAtlasComposition::readXml( const QDomElement &atlasElem, const QDomDocument & ) { mEnabled = atlasElem.attribute( QStringLiteral( "enabled" ), QStringLiteral( "false" ) ) == QLatin1String( "true" ); emit toggled( mEnabled ); if ( !mEnabled ) { emit parameterChanged(); return; } // look for stored layer name QString layerId = atlasElem.attribute( QStringLiteral( "coverageLayer" ) ); QString layerName = atlasElem.attribute( QStringLiteral( "coverageLayerName" ) ); QString layerSource = atlasElem.attribute( QStringLiteral( "coverageLayerSource" ) ); QString layerProvider = atlasElem.attribute( QStringLiteral( "coverageLayerProvider" ) ); mCoverageLayer = QgsVectorLayerRef( layerId, layerName, layerSource, layerProvider ); mCoverageLayer.resolveWeakly( mComposition->project() ); mPageNameExpression = atlasElem.attribute( QStringLiteral( "pageNameExpression" ), QString() ); mSingleFile = atlasElem.attribute( QStringLiteral( "singleFile" ), QStringLiteral( "false" ) ) == QLatin1String( "true" ); mFilenamePattern = atlasElem.attribute( QStringLiteral( "filenamePattern" ), QLatin1String( "" ) ); mSortFeatures = atlasElem.attribute( QStringLiteral( "sortFeatures" ), QStringLiteral( "false" ) ) == QLatin1String( "true" ); if ( mSortFeatures ) { mSortKeyAttributeName = atlasElem.attribute( QStringLiteral( "sortKey" ), QLatin1String( "" ) ); // since 2.3, the field name is saved instead of the field index // following code keeps compatibility with version 2.2 projects // to be removed in QGIS 3.0 bool isIndex; int idx = mSortKeyAttributeName.toInt( &isIndex ); if ( isIndex && mCoverageLayer ) { QgsFields fields = mCoverageLayer->fields(); if ( idx >= 0 && idx < fields.count() ) { mSortKeyAttributeName = fields.at( idx ).name(); } } mSortAscending = atlasElem.attribute( QStringLiteral( "sortAscending" ), QStringLiteral( "true" ) ) == QLatin1String( "true" ); } mFilterFeatures = atlasElem.attribute( QStringLiteral( "filterFeatures" ), QStringLiteral( "false" ) ) == QLatin1String( "true" ); if ( mFilterFeatures ) { mFeatureFilter = atlasElem.attribute( QStringLiteral( "featureFilter" ), QLatin1String( "" ) ); } mHideCoverage = atlasElem.attribute( QStringLiteral( "hideCoverage" ), QStringLiteral( "false" ) ) == QLatin1String( "true" ); emit parameterChanged(); }