15 #ifndef QGSRULEBASEDLABELING_H    16 #define QGSRULEBASEDLABELING_H    18 #include "qgis_core.h"    19 #include <QStringList>    44     typedef QList<QgsRuleBasedLabeling::Rule *> 
RuleList;
    45     typedef QMap<QgsRuleBasedLabeling::Rule *, QgsVectorLayerLabelProvider *> 
RuleToProviderMap;
    56         Rule( 
QgsPalLayerSettings *settings 
SIP_TRANSFER, 
double maximumScale = 0, 
double minimumScale = 0, 
const QString &filterExp = QString(), 
const QString &description = QString(), 
bool elseRule = 
false );
    62         Rule &operator=( 
const Rule &rh ) = 
delete;
   122         bool active()
 const { 
return mIsActive; }
   129         bool isElse()
 const { 
return mElseRule; }
   167         void setDescription( 
const QString &description ) { mDescription = description; }
   229         void removeChildAt( 
int i );
   273         void subProviderIds( QStringList &list ) 
const SIP_SKIP;
   291         bool requiresAdvancedEffects() 
const;
   325         bool isScaleOK( 
double scale ) 
const;
   335         void updateElseRules();
   338         Rule *mParent = 
nullptr; 
   339         std::unique_ptr<QgsPalLayerSettings> mSettings;
   340         double mMaximumScale = 0;
   341         double mMinimumScale = 0;
   343         QString mDescription;
   344         bool mElseRule = 
false;
   347         bool mIsActive = 
true; 
   349         QString mRuleKey = QUuid::createUuid().toString(); 
   351         std::unique_ptr<QgsExpression> mFilter;
   368     QString type() 
const override;
   373     QStringList subProviders() 
const override;
   385     void setSettings( 
QgsPalLayerSettings *settings SIP_TRANSFER, 
const QString &providerId = QString() ) 
override;
   386     bool requiresAdvancedEffects() 
const override;
   387     void toSld( QDomNode &parent, 
const QgsStringMap &props ) 
const override;
   416     QList<QgsAbstractLabelProvider *> 
subProviders() 
override;
   420     std::unique_ptr<QgsRuleBasedLabeling> 
mRules;
   427 #endif // QGSRULEBASEDLABELING_H Class for parsing and evaluation of expressions (formerly called "search strings"). 
 
The class is used as a container of context for various read/write operations on other objects...
 
double maximumScale() const
Returns the maximum map scale (i.e. 
 
QgsPalLayerSettings * settings() const
Returns the labeling settings. 
 
void setFilterExpression(const QString &filterExp)
Set the expression used to check if a given feature shall be rendered with this rule. 
 
QgsRuleBasedLabeling::RuleToProviderMap mSubProviders
label providers are owned by labeling engine 
 
Abstract base class for all rendered symbols. 
 
virtual bool prepare(QgsRenderContext &context, QSet< QString > &attributeNames)
Prepare for registration of features. 
 
bool isElse() const
Check if this rule is an ELSE rule. 
 
RegisterResult
The result of registering a rule. 
 
bool dependsOnScale() const
Determines if scale based labeling is active. 
 
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference) 
 
QString description() const
A human readable description for this rule. 
 
The QgsVectorLayerLabelProvider class implements a label provider for vector layers. 
 
A geometry is the spatial representation of a feature. 
 
QString ruleKey() const
Unique rule identifier (for identification of rule within labeling, used as provider ID) ...
 
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
 
QMap< QgsRuleBasedLabeling::Rule *, QgsVectorLayerLabelProvider * > RuleToProviderMap
 
const QgsRuleBasedLabeling::RuleList & children() const
Returns all children rules of this rule. 
 
An interface for classes which can visit style entity (e.g. 
 
QMap< QString, QString > QgsStringMap
 
QList< QgsRuleBasedLabeling::Rule * > RuleList
 
std::unique_ptr< QgsRuleBasedLabeling > mRules
owned copy 
 
std::unique_ptr< Rule > mRootRule
 
double minimumScale() const
Returns the minimum map scale (i.e. 
 
QgsRuleBasedLabeling::RuleList & children()
Returns all children rules of this rule. 
 
void setActive(bool state)
Sets if this rule is active. 
 
void setMinimumScale(double scale)
Sets the minimum map scale (i.e. 
 
virtual void registerFeature(const QgsFeature &feature, QgsRenderContext &context, const QgsGeometry &obstacleGeometry=QgsGeometry(), const QgsSymbol *symbol=nullptr)
Register a feature for labeling as one or more QgsLabelFeature objects stored into mLabels...
 
QgsRuleBasedLabeling::Rule * parent()
The parent rule. 
 
void setRuleKey(const QString &key)
Override the assigned rule key (should be used just internally by rule-based labeling) ...
 
virtual QList< QgsAbstractLabelProvider * > subProviders()
Returns list of child providers - useful if the provider needs to put labels into more layers with di...
 
Contains information about the context of a rendering operation. 
 
QString filterExpression() const
A filter that will check if this rule applies. 
 
Abstract base class - its implementations define different approaches to the labeling of a vector lay...
 
bool active() const
Returns if this rule is active. 
 
const QgsRuleBasedLabeling::Rule * parent() const
The parent rule. 
 
void setDescription(const QString &description)
Set a human readable description for this rule. 
 
void setIsElse(bool iselse)
Sets if this rule is an ELSE rule. 
 
Represents a vector layer which manages a vector based data sets. 
 
void setMaximumScale(double scale)
Sets the maximum map scale (i.e.