Example #1
0
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;
}
Example #2
0
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 );
}