Skip to content

Commit 7d404d9

Browse files
committed
allow for expressions in symbol rotation and scale
the single, graduated and categorised symbol renderers have been refactored to avoid use of raw pointers (auto_ptr are used instead, they are deprecated in c++11 but the change for unique_ptr is an easy one and they clearly state the design intend: exclusive ownership) 2 general use function to quote and unquote strings for/from xml have been added to qgis.h
1 parent a31ebb4 commit 7d404d9

19 files changed

+362
-314
lines changed

python/core/symbology-ng/qgscategorizedsymbolrendererv2.sip

+4
Original file line numberDiff line numberDiff line change
@@ -123,5 +123,9 @@ class QgsCategorizedSymbolRendererV2 : QgsFeatureRendererV2
123123
void rebuildHash();
124124

125125
QgsSymbolV2* symbolForValue( QVariant value );
126+
127+
private:
128+
QgsCategorizedSymbolRendererV2( const QgsCategorizedSymbolRendererV2 & );
129+
QgsCategorizedSymbolRendererV2 & operator=( const QgsCategorizedSymbolRendererV2 & );
126130
};
127131

python/core/symbology-ng/qgsgraduatedsymbolrendererv2.sip

+4
Original file line numberDiff line numberDiff line change
@@ -147,4 +147,8 @@ class QgsGraduatedSymbolRendererV2 : QgsFeatureRendererV2
147147

148148
protected:
149149
QgsSymbolV2* symbolForValue( double value );
150+
151+
private:
152+
QgsGraduatedSymbolRendererV2( const QgsGraduatedSymbolRendererV2 & );
153+
QgsGraduatedSymbolRendererV2 & operator=( const QgsGraduatedSymbolRendererV2 & );
150154
};

python/core/symbology-ng/qgspointdisplacementrenderer.sip

+4
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,8 @@ class QgsPointDisplacementRenderer : QgsFeatureRendererV2
6565

6666
void setTolerance( double t );
6767
double tolerance() const;
68+
69+
private:
70+
QgsPointDisplacementRenderer( const QgsPointDisplacementRenderer & );
71+
QgsPointDisplacementRenderer & operator=( const QgsPointDisplacementRenderer & );
6872
};

python/core/symbology-ng/qgsrendererv2.sip

+4
Original file line numberDiff line numberDiff line change
@@ -170,4 +170,8 @@ class QgsFeatureRendererV2
170170
static const unsigned char* _getPolygon( QPolygonF& pts, QList<QPolygonF>& holes, QgsRenderContext& context, const unsigned char* wkb );
171171

172172
void setScaleMethodToSymbol( QgsSymbolV2* symbol, int scaleMethod );
173+
private:
174+
QgsFeatureRendererV2( const QgsFeatureRendererV2 & );
175+
QgsFeatureRendererV2 & operator=( const QgsFeatureRendererV2 & );
176+
173177
};

python/core/symbology-ng/qgsrulebasedrendererv2.sip

+4
Original file line numberDiff line numberDiff line change
@@ -201,4 +201,8 @@ class QgsRuleBasedRendererV2 : QgsFeatureRendererV2
201201
static void refineRuleRanges( QgsRuleBasedRendererV2::Rule* initialRule, QgsGraduatedSymbolRendererV2* r );
202202
//! take a rule and create a list of new rules with intervals of scales given by the passed scale denominators
203203
static void refineRuleScales( QgsRuleBasedRendererV2::Rule* initialRule, QList<int> scales );
204+
205+
private:
206+
QgsRuleBasedRendererV2( const QgsRuleBasedRendererV2 & );
207+
QgsRuleBasedRendererV2 & operator=( const QgsRuleBasedRendererV2 & );
204208
};

python/core/symbology-ng/qgssinglesymbolrendererv2.sip

+4
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,8 @@ class QgsSingleSymbolRendererV2 : QgsFeatureRendererV2
6060
//! return a list of item text / symbol
6161
//! @note: this method was added in version 1.5
6262
// virtual QgsLegendSymbolList legendSymbolItems();
63+
64+
private:
65+
QgsSingleSymbolRendererV2( const QgsSingleSymbolRendererV2 & );
66+
QgsSingleSymbolRendererV2 & operator=( const QgsSingleSymbolRendererV2 & );
6367
};

src/core/qgis.h

+23
Original file line numberDiff line numberDiff line change
@@ -414,4 +414,27 @@ typedef unsigned long long qgssize;
414414
#endif
415415
#endif
416416

417+
inline
418+
QString qgsXmlEncode( QString str )
419+
{
420+
// string passed as value to avoid internal copy
421+
str.replace( "&", "&amp;" );
422+
str.replace( "\"", "&quot;" );
423+
str.replace( "'", "&apos;" );
424+
str.replace( "<", "&lt;" );
425+
str.replace( ">", "&gt;" );
426+
return str;
427+
}
428+
429+
inline
430+
QString qgsXmlDecode( QString str )
431+
{
432+
// string passed as value to avoid internal copy
433+
str.replace( "&amp;", "&" );
434+
str.replace( "&quot;", "\"" );
435+
str.replace( "&apos;", "'" );
436+
str.replace( "&lt;", "<" );
437+
str.replace( "&gt;", ">" );
438+
return str;
439+
}
417440
#endif

0 commit comments

Comments
 (0)