Skip to content

Commit

Permalink
If layer is in editing mode, show the pencil icon instead of embedded…
Browse files Browse the repository at this point in the history
… legend icon
  • Loading branch information
wonder-sk committed Sep 5, 2014
1 parent 5efcbef commit 36467e9
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions src/core/layertree/qgslayertreemodel.cpp
Expand Up @@ -197,22 +197,18 @@ QVariant QgsLayerTreeModel::data( const QModelIndex &index, int role ) const
{
QgsLayerTreeLayer* nodeLayer = QgsLayerTree::toLayer( node );

// if there's just on legend entry that should be embedded in layer - do that!
if ( testFlag( ShowSymbology ) && mSymbologyNodes[nodeLayer].count() == 1 && mSymbologyNodes[nodeLayer][0]->isEmbeddedInParent() )
return mSymbologyNodes[nodeLayer][0]->data( Qt::DecorationRole );

QgsMapLayer* layer = QgsLayerTree::toLayer( node )->layer();
QgsMapLayer* layer = nodeLayer->layer();
if ( !layer )
return QVariant();

// icons possibly overriding default icon
if ( layer->type() == QgsMapLayer::RasterLayer )
{
if ( testFlag( ShowRasterPreviewIcon ) )
{
QgsRasterLayer* rlayer = qobject_cast<QgsRasterLayer *>( layer );
return QIcon( rlayer->previewAsPixmap( QSize( 32, 32 ) ) );
}
else
return QgsLayerItem::iconRaster();
}
else if ( layer->type() == QgsMapLayer::VectorLayer )
{
Expand All @@ -224,7 +220,19 @@ QVariant QgsLayerTreeModel::data( const QModelIndex &index, int role ) const
else
return QIcon( QgsApplication::getThemePixmap( "/mIconEditable.png" ) );
}
}

// if there's just on legend entry that should be embedded in layer - do that!
if ( testFlag( ShowSymbology ) && mSymbologyNodes[nodeLayer].count() == 1 && mSymbologyNodes[nodeLayer][0]->isEmbeddedInParent() )
return mSymbologyNodes[nodeLayer][0]->data( Qt::DecorationRole );

if ( layer->type() == QgsMapLayer::RasterLayer )
{
return QgsLayerItem::iconRaster();
}
else if ( layer->type() == QgsMapLayer::VectorLayer )
{
QgsVectorLayer* vlayer = static_cast<QgsVectorLayer*>( layer );
if ( vlayer->geometryType() == QGis::Point )
return QgsLayerItem::iconPoint();
else if ( vlayer->geometryType() == QGis::Line )
Expand Down

0 comments on commit 36467e9

Please sign in to comment.