File tree Expand file tree Collapse file tree 2 files changed +49
-0
lines changed Expand file tree Collapse file tree 2 files changed +49
-0
lines changed Original file line number Diff line number Diff line change @@ -222,3 +222,49 @@ QString qgsVsiPrefix( const QString &path )
222
222
else
223
223
return QLatin1String ( " " );
224
224
}
225
+
226
+ uint qHash ( const QVariant &variant )
227
+ {
228
+ if ( !variant.isValid () || variant.isNull () )
229
+ return -1 ;
230
+
231
+ switch ( variant.type () )
232
+ {
233
+ case QVariant::Int:
234
+ return qHash ( variant.toInt () );
235
+ case QVariant::UInt:
236
+ return qHash ( variant.toUInt () );
237
+ case QVariant::Bool:
238
+ return qHash ( variant.toBool () );
239
+ case QVariant::Double:
240
+ return qHash ( variant.toDouble () );
241
+ case QVariant::LongLong:
242
+ return qHash ( variant.toLongLong () );
243
+ case QVariant::ULongLong:
244
+ return qHash ( variant.toULongLong () );
245
+ case QVariant::String:
246
+ return qHash ( variant.toString () );
247
+ case QVariant::Char:
248
+ return qHash ( variant.toChar () );
249
+ case QVariant::List:
250
+ return qHash ( variant.toList () );
251
+ case QVariant::StringList:
252
+ return qHash ( variant.toStringList () );
253
+ case QVariant::ByteArray:
254
+ return qHash ( variant.toByteArray () );
255
+ case QVariant::Date:
256
+ return qHash ( variant.toDate () );
257
+ case QVariant::Time:
258
+ return qHash ( variant.toTime () );
259
+ case QVariant::DateTime:
260
+ return qHash ( variant.toDateTime () );
261
+ case QVariant::Url:
262
+ case QVariant::Locale:
263
+ case QVariant::RegExp:
264
+ return qHash ( variant.toString () );
265
+ default :
266
+ return -1 ;
267
+ }
268
+
269
+ return -1 ;
270
+ }
Original file line number Diff line number Diff line change @@ -180,6 +180,9 @@ template<class Object> inline QgsSignalBlocker<Object> whileBlocking( Object *ob
180
180
return QgsSignalBlocker<Object>( object );
181
181
}
182
182
183
+ // ! Hash for QVariant
184
+ uint qHash ( const QVariant &variant );
185
+
183
186
// ! Returns a string representation of a double
184
187
// ! \param a double value
185
188
// ! \param precision number of decimal places to retain
You can’t perform that action at this time.
0 commit comments