QGIS API Documentation
3.14.0-Pi (9f7028fd23)
|
Go to the documentation of this file.
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;
361 const Rule *rootRule() const
SIP_SKIP;
368 QString type() const override;
373 QStringList subProviders() const 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
void setRuleKey(const QString &key)
Override the assigned rule key (should be used just internally by rule-based labeling)
void setMinimumScale(double scale)
Sets the minimum map scale (i.e.
std::unique_ptr< QgsRuleBasedLabeling > mRules
owned copy
@ Inactive
The rule is inactive.
void setActive(bool state)
Sets if this rule is active.
QgsRuleBasedLabeling::Rule * parent()
The parent rule.
The QgsVectorLayerLabelProvider class implements a label provider for vector layers....
void setDescription(const QString &description)
Set a human readable description for this rule.
QString filterExpression() const
A filter that will check if this rule applies.
bool active() const
Returns if this rule is active.
void setMaximumScale(double scale)
Sets the maximum map scale (i.e.
std::unique_ptr< GEOSGeometry, GeosDeleter > unique_ptr
Scoped GEOS pointer.
const QgsRuleBasedLabeling::Rule * parent() const
The parent rule.
QMap< QgsRuleBasedLabeling::Rule *, QgsVectorLayerLabelProvider * > RuleToProviderMap
QgsPalLayerSettings * settings() const
Returns the labeling settings.
QgsRuleBasedLabeling::RuleToProviderMap mSubProviders
label providers are owned by labeling engine
void setIsElse(bool iselse)
Sets if this rule is an ELSE rule.
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)
double maximumScale() const
Returns the maximum map scale (i.e.
QList< QgsRuleBasedLabeling::Rule * > RuleList
void setFilterExpression(const QString &filterExp)
Set the expression used to check if a given feature shall be rendered with this rule.
virtual QList< QgsAbstractLabelProvider * > subProviders()
Returns list of child providers - useful if the provider needs to put labels into more layers with di...
RegisterResult
The result of registering a rule.
bool isElse() const
Check if this rule is an ELSE rule.
bool dependsOnScale() const
Determines if scale based labeling is active.
QMap< QString, QString > QgsStringMap
const QgsRuleBasedLabeling::RuleList & children() const
Returns all children rules of this rule.
QString description() const
A human readable description for this rule.
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.
virtual bool prepare(QgsRenderContext &context, QSet< QString > &attributeNames)
Prepare for registration of features.
double minimumScale() const
Returns the minimum map scale (i.e.
QgsRuleBasedLabeling::RuleList & children()
Returns all children rules of this rule.
QString ruleKey() const
Unique rule identifier (for identification of rule within labeling, used as provider ID)