| 215 | } |
| 216 | |
| 217 | bool SortingProxyModel::lessThan( const ModelIndex& index1, const ModelIndex& index2 ) const { |
| 218 | auto data1 = mSource->data( index1, mSortRole ); |
| 219 | auto data2 = mSource->data( index2, mSortRole ); |
| 220 | if ( data1.isString() && data2.isString() ) { |
| 221 | if ( data1.is( Variant::Type::StdString ) && data2.is( Variant::Type::StdString ) ) |
| 222 | return String::toLower( data1.asStdString() ) < String::toLower( data2.asStdString() ); |
| 223 | if ( data1.is( Variant::Type::String ) && data2.is( Variant::Type::String ) ) |
| 224 | return String::toLower( data1.asString() ) < String::toLower( data2.asString() ); |
| 225 | if ( data1.is( Variant::Type::cstr ) && data2.is( Variant::Type::cstr ) ) |
| 226 | return String::toLower( std::string( data1.asCStr() ) ) < |
| 227 | String::toLower( std::string( data2.asCStr() ) ); |
| 228 | } |
| 229 | return data1 < data2; |
| 230 | } |
| 231 | |
| 232 | void SortingProxyModel::sortMapping( SortingProxyModel::Mapping& mapping, int column, |
| 233 | SortOrder sortOrder ) { |
no test coverage detected