@@ -181,8 +181,9 @@ void QgsAttributeTableModel::attributeValueChanged( QgsFeatureId fid, int idx, c
181
181
{
182
182
if ( mFeatureMap .contains ( fid ) )
183
183
{
184
- mFeatureMap [ fid ].changeAttribute ( fieldCol ( idx ) , value );
184
+ mFeatureMap [ fid ].changeAttribute ( idx, value );
185
185
}
186
+
186
187
setData ( index ( idToRow ( fid ), fieldCol ( idx ) ), value, Qt::EditRole );
187
188
}
188
189
@@ -460,9 +461,9 @@ QVariant QgsAttributeTableModel::data( const QModelIndex &index, int role ) cons
460
461
}
461
462
}
462
463
463
- if ( role == Qt::DisplayRole && mValueMaps .contains ( index. column () ) )
464
+ if ( role == Qt::DisplayRole && mValueMaps .contains ( fieldId ) )
464
465
{
465
- return mValueMaps [ index. column () ]->key ( val.toString (), QString ( " (%1)" ).arg ( val.toString () ) );
466
+ return mValueMaps [ fieldId ]->key ( val.toString (), QString ( " (%1)" ).arg ( val.toString () ) );
466
467
}
467
468
468
469
return val.toString ();
@@ -528,7 +529,7 @@ void QgsAttributeTableModel::executeAction( int action, const QModelIndex &idx )
528
529
529
530
for ( int i = 0 ; i < mAttributes .size (); i++ )
530
531
{
531
- attributes.insert ( i , data ( index ( idx.row (), i ), Qt::EditRole ) );
532
+ attributes.insert ( mAttributes [i] , data ( index ( idx.row (), i ), Qt::EditRole ) );
532
533
}
533
534
534
535
mLayer ->actions ()->doAction ( action, attributes, fieldIdx ( idx.column () ) );
0 commit comments