| 349 | virtual size_t columnCount( const ModelIndex& ) const { return 3; } |
| 350 | |
| 351 | virtual Variant data( const ModelIndex& index, ModelRole role ) const { |
| 352 | eeASSERT( index.row() < (Int64)mData.size() ); |
| 353 | static UIIcon* errorIcon = mSceneNode->findIcon( "error" ); |
| 354 | static UIIcon* warnIcon = mSceneNode->findIcon( "warning" ); |
| 355 | if ( role == ModelRole::Display ) { |
| 356 | switch ( index.column() ) { |
| 357 | case 2: |
| 358 | return Variant( mData[index.row()].line ); |
| 359 | case 1: |
| 360 | return Variant( mData[index.row()].fileName.c_str() ); |
| 361 | case 0: |
| 362 | default: |
| 363 | return Variant( mData[index.row()].message ); |
| 364 | } |
| 365 | } else if ( role == ModelRole::Icon && index.column() == 0 ) { |
| 366 | return Variant( mData[index.row()].type == ProjectOutputParserTypes::Error ? errorIcon |
| 367 | : warnIcon ); |
| 368 | } else if ( role == ModelRole::Class ) { |
| 369 | return Variant( mData[index.row()].type == ProjectOutputParserTypes::Error |
| 370 | ? "theme-error" |
| 371 | : "theme-warning" ); |
| 372 | } else if ( role == ModelRole::Custom ) { |
| 373 | switch ( index.column() ) { |
| 374 | case 0: |
| 375 | return Variant( mData[index.row()].file.c_str() ); |
| 376 | case 1: |
| 377 | return Variant( mData[index.row()].line ); |
| 378 | case 2: |
| 379 | return Variant( mData[index.row()].col ); |
| 380 | } |
| 381 | } |
| 382 | return {}; |
| 383 | } |
| 384 | |
| 385 | virtual std::string columnName( const size_t& idx ) const { |
| 386 | switch ( idx ) { |