QList<QgsLabelFeature*> QgsVectorLayerDiagramProvider::labelFeatures( QgsRenderContext &context ) { if ( !mSource ) { // we have created the provider with "own feature loop" == false // so it is assumed that prepare() has been already called followed by registerFeature() calls return mFeatures; } QSet<QString> attributeNames; if ( !prepare( context, attributeNames ) ) return QList<QgsLabelFeature*>(); QgsRectangle layerExtent = context.extent(); if ( mSettings.coordinateTransform().isValid() ) layerExtent = mSettings.coordinateTransform().transformBoundingBox( context.extent(), QgsCoordinateTransform::ReverseTransform ); QgsFeatureRequest request; request.setFilterRect( layerExtent ); request.setSubsetOfAttributes( attributeNames, mFields ); QgsFeatureIterator fit = mSource->getFeatures( request ); QgsFeature fet; while ( fit.nextFeature( fet ) ) { registerFeature( fet, context ); } return mFeatures; }
void QgsDxfRuleBasedLabelProvider::registerDxfFeature( QgsFeature &feature, QgsRenderContext &context, const QString &dxfLayerName ) { registerFeature( feature, context ); mDxfExport->registerDxfLayer( layerId(), feature.id(), dxfLayerName ); }
void QgsDxfLabelProvider::registerDxfFeature( QgsFeature& feature, const QgsRenderContext& context, const QString& dxfLayerName ) { registerFeature( feature, context ); mDxfLayerNames[feature.id()] = dxfLayerName; }