QgsLayerTreeLayer* QgsLayerTreeLayer::readXML( QDomElement& element ) { if ( element.tagName() != "layer-tree-layer" ) return 0; QString layerID = element.attribute( "id" ); QString layerName = element.attribute( "name" ); Qt::CheckState checked = QgsLayerTreeUtils::checkStateFromXml( element.attribute( "checked" ) ); bool isExpanded = ( element.attribute( "expanded", "1" ) == "1" ); QgsLayerTreeLayer* nodeLayer = 0; QgsMapLayer* layer = QgsMapLayerRegistry::instance()->mapLayer( layerID ); if ( layer ) nodeLayer = new QgsLayerTreeLayer( layer ); else nodeLayer = new QgsLayerTreeLayer( layerID, layerName ); nodeLayer->readCommonXML( element ); nodeLayer->setVisible( checked ); nodeLayer->setExpanded( isExpanded ); return nodeLayer; }
static void _readOldLegendLayer( const QDomElement &layerElem, QgsLayerTreeGroup *parent ) { QDomElement layerFileElem = layerElem.firstChildElement( QStringLiteral( "filegroup" ) ).firstChildElement( QStringLiteral( "legendlayerfile" ) ); QString layerId = layerFileElem.attribute( QStringLiteral( "layerid" ) ); QgsLayerTreeLayer *layerNode = new QgsLayerTreeLayer( layerId, layerElem.attribute( QStringLiteral( "name" ) ) ); layerNode->setItemVisibilityChecked( QgsLayerTreeUtils::checkStateFromXml( layerElem.attribute( QStringLiteral( "checked" ) ) ) != Qt::Unchecked ); layerNode->setExpanded( layerElem.attribute( QStringLiteral( "open" ) ) == QLatin1String( "true" ) ); if ( layerFileElem.attribute( QStringLiteral( "isInOverview" ) ) == QLatin1String( "1" ) ) layerNode->setCustomProperty( QStringLiteral( "overview" ), 1 ); if ( layerElem.attribute( QStringLiteral( "embedded" ) ) == QLatin1String( "1" ) ) layerNode->setCustomProperty( QStringLiteral( "embedded" ), 1 ); if ( layerElem.attribute( QStringLiteral( "showFeatureCount" ) ) == QLatin1String( "1" ) ) layerNode->setCustomProperty( QStringLiteral( "showFeatureCount" ), 1 ); // drawing order is handled by readOldLegendLayerOrder() parent->addChildNode( layerNode ); }