QGIS API Documentation  3.12.1-BucureČ™ti (121cc00ff0)
qgslabelobstaclesettings.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgslabelobstaclesettings.cpp
3  ----------------------------
4  Date : December 2019
5  Copyright : (C) 2019 by Nyall Dawson
6  Email : nyall dot dawson at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
17 #include "qgspropertycollection.h"
18 #include "qgsexpressioncontext.h"
19 #include "qgspallabeling.h"
20 
22 {
23  mObstacleGeometry = obstacleGeom;
24 }
25 
27 {
28  return mObstacleGeometry;
29 }
30 
32 {
34  {
35  context.setOriginalValueVariable( mObstacleFactor );
36  QVariant exprVal = properties.value( QgsPalLayerSettings::ObstacleFactor, context );
37  if ( exprVal.isValid() )
38  {
39  bool ok;
40  double factorD = exprVal.toDouble( &ok );
41  if ( ok )
42  {
43  factorD = qBound( 0.0, factorD, 10.0 );
44  factorD = factorD / 5.0 + 0.0001; // convert 0 -> 10 to 0.0001 -> 2.0
45  mObstacleFactor = factorD;
46  }
47  }
48  }
49 
50 }
void setObstacleGeometry(const QgsGeometry &obstacleGeom)
Sets the label's obstacle geometry, if different to the feature geometry.
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:122
bool isActive(int key) const override
Returns true if the collection contains an active property with the specified key.
QVariant value(int key, const QgsExpressionContext &context, const QVariant &defaultValue=QVariant()) const override
Returns the calculated value of the property with the specified key from within the collection...
QgsGeometry obstacleGeometry() const
Returns the label's obstacle geometry, if different to the feature geometry.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
void updateDataDefinedProperties(const QgsPropertyCollection &properties, QgsExpressionContext &context)
Updates the obstacle settings to respect any data defined properties set within the specified propert...
A grouped map of multiple QgsProperty objects, each referenced by a integer key value.
void setOriginalValueVariable(const QVariant &value)
Sets the original value variable value for the context.