Fix isIntSafe and isDoubleSafe not considering QVariant::UInt, QVariant::LongLong, QVariant::ULongLong (Funded by Sourcepole)

This commit is contained in:
Sandro Mani 2014-12-01 19:38:36 +01:00
parent 974511f4e3
commit 29d0166475

View File

@ -162,13 +162,20 @@ static QVariant tvl2variant( TVL v )
inline bool isIntSafe( const QVariant& v ) inline bool isIntSafe( const QVariant& v )
{ {
if ( v.type() == QVariant::Int ) return true; if ( v.type() == QVariant::Int ) return true;
if ( v.type() == QVariant::UInt ) return true;
if ( v.type() == QVariant::LongLong ) return true;
if ( v.type() == QVariant::ULongLong ) return true;
if ( v.type() == QVariant::Double ) return false; if ( v.type() == QVariant::Double ) return false;
if ( v.type() == QVariant::String ) { bool ok; v.toString().toInt( &ok ); return ok; } if ( v.type() == QVariant::String ) { bool ok; v.toString().toInt( &ok ); return ok; }
return false; return false;
} }
inline bool isDoubleSafe( const QVariant& v ) inline bool isDoubleSafe( const QVariant& v )
{ {
if ( v.type() == QVariant::Double || v.type() == QVariant::Int ) return true; if ( v.type() == QVariant::Double ) return true;
if ( v.type() == QVariant::Int ) return true;
if ( v.type() == QVariant::UInt ) return true;
if ( v.type() == QVariant::LongLong ) return true;
if ( v.type() == QVariant::ULongLong ) return true;
if ( v.type() == QVariant::String ) { bool ok; v.toString().toDouble( &ok ); return ok; } if ( v.type() == QVariant::String ) { bool ok; v.toString().toDouble( &ok ); return ok; }
return false; return false;
} }