QVariant QgsComposerAttributeTableColumnModelV2::data( const QModelIndex &index, int role ) const { if ( !index.isValid() || ( role != Qt::DisplayRole && role != Qt::EditRole && role != Qt::UserRole ) ) { return QVariant(); } if ( index.row() >= mComposerTable->columns()->length() ) { return QVariant(); } //get column for index QgsComposerTableColumn* column = columnFromIndex( index ); if ( !column ) { return QVariant(); } if ( role == Qt::UserRole ) { //user role stores reference in column object return qVariantFromValue( qobject_cast<QObject *>( column ) ); } switch ( index.column() ) { case 0: return column->attribute(); case 1: return column->heading(); case 2: { if ( role == Qt::DisplayRole ) { switch ( column->hAlignment() ) { case Qt::AlignHCenter: return tr( "Center" ); case Qt::AlignRight: return tr( "Right" ); case Qt::AlignLeft: default: return tr( "Left" ); } } else { //edit role return column->hAlignment(); } } default: return QVariant(); } }
bool QgsComposerAttributeTableColumnModelV2::setData( const QModelIndex& index, const QVariant& value, int role ) { if ( !index.isValid() || role != Qt::EditRole || !mComposerTable ) { return false; } if ( index.row() >= mComposerTable->columns()->length() ) { return false; } //get column for index QgsComposerTableColumn* column = columnFromIndex( index ); if ( !column ) { return false; } switch ( index.column() ) { case 0: // also update column's heading, if it hasn't been customised if ( column->heading().isEmpty() || ( column->heading() == column->attribute() ) ) { column->setHeading( value.toString() ); emit dataChanged( createIndex( index.row(), 1, 0 ), createIndex( index.row(), 1, 0 ) ); } column->setAttribute( value.toString() ); emit dataChanged( index, index ); return true; case 1: column->setHeading( value.toString() ); emit dataChanged( index, index ); return true; case 2: column->setHAlignment(( Qt::AlignmentFlag )value.toInt() ); emit dataChanged( index, index ); return true; default: break; } return false; }
QVariant QgsComposerTableSortColumnsProxyModelV2::data( const QModelIndex &index, int role ) const { if (( role != Qt::DisplayRole && role != Qt::EditRole ) || !index.isValid() ) { return QVariant(); } QgsComposerTableColumn* column = columnFromIndex( index ); if ( !column ) { return QVariant(); } switch ( index.column() ) { case 0: return column->attribute(); case 1: if ( role == Qt::DisplayRole ) { switch ( column->sortOrder() ) { case Qt::DescendingOrder: return tr( "Descending" ); case Qt::AscendingOrder: default: return tr( "Ascending" ); } } else { //edit role return column->sortOrder(); } default: return QVariant(); } }