| 121 | } |
| 122 | |
| 123 | Variant GitStatusModel::data( const ModelIndex& index, ModelRole role ) const { |
| 124 | switch ( role ) { |
| 125 | case ModelRole::Display: { |
| 126 | if ( index.internalId() == Repo ) { |
| 127 | if ( index.column() == Column::File ) |
| 128 | return Variant( mStatus[index.row()].repo.c_str() ); |
| 129 | return Variant( GIT_EMPTY ); |
| 130 | } else if ( index.internalId() == Status ) { |
| 131 | if ( index.column() == Column::File ) { |
| 132 | return Variant( |
| 133 | mStatus[index.parent().row()].type[index.row()].typeStr.c_str() ); |
| 134 | } |
| 135 | return Variant( GIT_EMPTY ); |
| 136 | } |
| 137 | const Git::DiffFile& s = mStatus[index.parent().parent().row()] |
| 138 | .type[index.parent().row()] |
| 139 | .files[index.row()]; |
| 140 | switch ( index.column() ) { |
| 141 | case Column::File: |
| 142 | return Variant( FileSystem::fileNameFromPath( s.file ) ); |
| 143 | case Column::Inserted: |
| 144 | return Variant( String::format( "+%d ", s.inserts ) ); |
| 145 | case Column::Removed: |
| 146 | return Variant( String::format( "-%d ", s.deletes ) ); |
| 147 | case Column::State: |
| 148 | return Variant( String::format( "%c", s.report.symbol ) ); |
| 149 | case Column::RelativeDirectory: |
| 150 | return Variant( FileSystem::fileRemoveFileName( s.file ) ); |
| 151 | } |
| 152 | break; |
| 153 | } |
| 154 | case ModelRole::Class: { |
| 155 | if ( index.internalId() == GitFile ) { |
| 156 | switch ( index.column() ) { |
| 157 | case Column::Inserted: |
| 158 | return Variant( GIT_SUCCESS ); |
| 159 | case Column::Removed: |
| 160 | return Variant( GIT_ERROR ); |
| 161 | default: |
| 162 | break; |
| 163 | } |
| 164 | } |
| 165 | break; |
| 166 | } |
| 167 | case ModelRole::Icon: { |
| 168 | if ( (Int64)treeColumn() == index.column() ) { |
| 169 | if ( index.internalId() == Repo ) { |
| 170 | return Variant( mPlugin->findIcon( "repo" ) ); |
| 171 | } else if ( index.internalId() == GitFile ) { |
| 172 | const Git::DiffFile& s = mStatus[index.parent().parent().row()] |
| 173 | .type[index.parent().row()] |
| 174 | .files[index.row()]; |
| 175 | std::string iconName = UIIconThemeManager::getIconNameFromFileName( s.file ); |
| 176 | auto* scene = mPlugin->getUISceneNode(); |
| 177 | auto* d = scene->findIcon( iconName ); |
| 178 | if ( !d ) |
| 179 | return scene->findIcon( "file" ); |
| 180 | return d; |
nothing calls this directly
no test coverage detected