void QgsLayerTreeMapCanvasBridge::defaultLayerOrder( QgsLayerTreeNode* node, QStringList& order ) const
{
  if ( QgsLayerTree::isLayer( node ) )
  {
    QgsLayerTreeLayer* nodeLayer = QgsLayerTree::toLayer( node );
    order << nodeLayer->layerId();
  }

  foreach ( QgsLayerTreeNode* child, node->children() )
    defaultLayerOrder( child, order );
}
void QgsLayerTreeRegistryBridge::layersAdded( QList<QgsMapLayer*> layers )
{
  if ( !mEnabled )
    return;

  foreach ( QgsMapLayer* layer, layers )
  {
    // add new layer to the top
    QgsLayerTreeLayer* nodeLayer = mInsertionPointGroup->insertLayer( mInsertionPointIndex, layer );

    // check whether the layer is marked as embedded
    QString projectFile = QgsProject::instance()->layerIsEmbedded( nodeLayer->layerId() );
    if ( !projectFile.isEmpty() )
    {
      nodeLayer->setCustomProperty( "embedded", 1 );
      nodeLayer->setCustomProperty( "embedded_project", projectFile );
    }
  }
void QgsLayerTreeRegistryBridge::layersAdded( const QList<QgsMapLayer*>& layers )
{
  if ( !mEnabled )
    return;

  QList<QgsLayerTreeNode*> nodes;
  Q_FOREACH ( QgsMapLayer* layer, layers )
  {
    QgsLayerTreeLayer* nodeLayer = new QgsLayerTreeLayer( layer );
    nodeLayer->setVisible( mNewLayersVisible ? Qt::Checked : Qt::Unchecked );

    nodes << nodeLayer;

    // check whether the layer is marked as embedded
    QString projectFile = QgsProject::instance()->layerIsEmbedded( nodeLayer->layerId() );
    if ( !projectFile.isEmpty() )
    {
      nodeLayer->setCustomProperty( "embedded", 1 );
      nodeLayer->setCustomProperty( "embedded_project", projectFile );
    }
  }
void QgsLayerTreeRegistryBridge::layersAdded( QList<QgsMapLayer*> layers )
{
    if ( !mEnabled )
        return;

    int i = 0;
    foreach ( QgsMapLayer* layer, layers )
    {
        QgsLayerTreeLayer* nodeLayer = new QgsLayerTreeLayer( layer );
        nodeLayer->setVisible( mNewLayersVisible ? Qt::Checked : Qt::Unchecked );

        // add new layer to the top
        mInsertionPointGroup->insertChildNode( mInsertionPointIndex + i++, nodeLayer );

        // check whether the layer is marked as embedded
        QString projectFile = QgsProject::instance()->layerIsEmbedded( nodeLayer->layerId() );
        if ( !projectFile.isEmpty() )
        {
            nodeLayer->setCustomProperty( "embedded", 1 );
            nodeLayer->setCustomProperty( "embedded_project", projectFile );
        }
    }
Example #5
0
QStringList QgsLayerTreeUtils::invisibleLayerList( QgsLayerTreeNode *node )
{
  QStringList list;

  if ( QgsLayerTree::isGroup( node ) )
  {
    const auto constChildren = QgsLayerTree::toGroup( node )->children();
    for ( QgsLayerTreeNode *child : constChildren )
    {
      list << invisibleLayerList( child );
    }
  }
  else if ( QgsLayerTree::isLayer( node ) )
  {
    QgsLayerTreeLayer *layer = QgsLayerTree::toLayer( node );

    if ( !layer->isVisible() )
      list << layer->layerId();
  }

  return list;
}