void QgsLegendModel::updateLayerItemText( QStandardItem* layerItem ) { QgsComposerLayerItem* lItem = dynamic_cast<QgsComposerLayerItem*>( layerItem ); if ( !lItem ) return; QgsMapLayer* mapLayer = QgsMapLayerRegistry::instance()->mapLayer( lItem->layerID() ); if ( !mapLayer ) return; QString label = lItem->userText().isEmpty() ? mapLayer->name() : lItem->userText(); QgsVectorLayer* vLayer = qobject_cast<QgsVectorLayer*>( mapLayer ); if ( vLayer ) { addVectorLayerItemsV2( lItem, vLayer ); if ( lItem->showFeatureCount() ) { label += QString( " [%1]" ).arg( vLayer->featureCount() ); } } lItem->setText( label ); }
void QgsLegendModel::addLayer( QgsMapLayer* theMapLayer, double scaleDenominator ) { if ( !theMapLayer ) { return; } QgsComposerLayerItem* layerItem = new QgsComposerLayerItem( theMapLayer->name() ); if ( theMapLayer->title() != "" ) { layerItem->setText( theMapLayer->title() ); layerItem->setUserText( theMapLayer->title() ); } layerItem->setLayerID( theMapLayer->id() ); layerItem->setDefaultStyle( scaleDenominator ); layerItem->setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable ); QList<QStandardItem *> itemsList; itemsList << layerItem << new QgsComposerStyleItem( layerItem ); invisibleRootItem()->appendRow( itemsList ); switch ( theMapLayer->type() ) { case QgsMapLayer::VectorLayer: { QgsVectorLayer* vl = dynamic_cast<QgsVectorLayer*>( theMapLayer ); if ( vl ) { addVectorLayerItemsV2( layerItem, vl, scaleDenominator ); } break; } case QgsMapLayer::RasterLayer: addRasterLayerItems( layerItem, theMapLayer ); break; default: break; } emit layersChanged(); }