30
30
#include < cmath> // for pretty classification
31
31
#include < ctime>
32
32
33
+ QgsRendererRangeV2::QgsRendererRangeV2 ()
34
+ : mLowerValue( 0 ), mUpperValue( 0 ), mSymbol( 0 ), mLabel()
35
+ {
36
+ }
37
+
33
38
QgsRendererRangeV2::QgsRendererRangeV2 ( double lowerValue, double upperValue, QgsSymbolV2* symbol, QString label )
34
39
: mLowerValue( lowerValue )
35
40
, mUpperValue( upperValue )
@@ -51,6 +56,19 @@ QgsRendererRangeV2::~QgsRendererRangeV2()
51
56
delete mSymbol ;
52
57
}
53
58
59
+ QgsRendererRangeV2& QgsRendererRangeV2::operator =( const QgsRendererRangeV2 & range )
60
+ {
61
+ mLowerValue = range.mLowerValue ;
62
+ mUpperValue = range.mUpperValue ;
63
+ mLabel = range.mLabel ;
64
+ mSymbol = 0 ;
65
+ if ( range.mSymbol )
66
+ {
67
+ mSymbol = range.mSymbol ->clone ();
68
+ }
69
+ return *this ;
70
+ }
71
+
54
72
double QgsRendererRangeV2::lowerValue () const
55
73
{
56
74
return mLowerValue ;
@@ -1117,3 +1135,60 @@ void QgsGraduatedSymbolRendererV2::deleteClass( int idx )
1117
1135
{
1118
1136
mRanges .removeAt ( idx );
1119
1137
}
1138
+
1139
+ void QgsGraduatedSymbolRendererV2::deleteAllClasses ()
1140
+ {
1141
+ mRanges .clear ();
1142
+ }
1143
+
1144
+ void QgsGraduatedSymbolRendererV2::moveClass ( int from, int to )
1145
+ {
1146
+ if ( from < 0 || from >= mRanges .size () || to < 0 || to >= mRanges .size () ) return ;
1147
+ mRanges .move ( from, to );
1148
+ }
1149
+
1150
+ bool valueLessThan ( const QgsRendererRangeV2 &r1, const QgsRendererRangeV2 &r2 )
1151
+ {
1152
+ return r1.lowerValue () < r2.lowerValue ();
1153
+ }
1154
+
1155
+ bool valueGreaterThan ( const QgsRendererRangeV2 &r1, const QgsRendererRangeV2 &r2 )
1156
+ {
1157
+ return !valueLessThan ( r1, r2 );
1158
+ }
1159
+
1160
+ void QgsGraduatedSymbolRendererV2::sortByValue ( Qt::SortOrder order )
1161
+ {
1162
+ QgsDebugMsg ( " Entered" );
1163
+ if ( order == Qt::AscendingOrder )
1164
+ {
1165
+ qSort ( mRanges .begin (), mRanges .end (), valueLessThan );
1166
+ }
1167
+ else
1168
+ {
1169
+ qSort ( mRanges .begin (), mRanges .end (), valueGreaterThan );
1170
+ }
1171
+ }
1172
+
1173
+ bool labelLessThan ( const QgsRendererRangeV2 &r1, const QgsRendererRangeV2 &r2 )
1174
+ {
1175
+ return QString::localeAwareCompare ( r1.label (), r2.label () ) < 0 ;
1176
+ }
1177
+
1178
+ bool labelGreaterThan ( const QgsRendererRangeV2 &r1, const QgsRendererRangeV2 &r2 )
1179
+ {
1180
+ return !labelLessThan ( r1, r2 );
1181
+ }
1182
+
1183
+ void QgsGraduatedSymbolRendererV2::sortByLabel ( Qt::SortOrder order )
1184
+ {
1185
+ if ( order == Qt::AscendingOrder )
1186
+ {
1187
+ qSort ( mRanges .begin (), mRanges .end (), labelLessThan );
1188
+ }
1189
+ else
1190
+ {
1191
+ qSort ( mRanges .begin (), mRanges .end (), labelGreaterThan );
1192
+ }
1193
+ }
1194
+
0 commit comments