File tree Expand file tree Collapse file tree 2 files changed +8
-2
lines changed Expand file tree Collapse file tree 2 files changed +8
-2
lines changed Original file line number Diff line number Diff line change 2828#include " qgsmaplayerregistry.h"
2929#include " qgsrendererv2.h"
3030#include " qgsvectorlayer.h"
31+ #include " qgsvectordataprovider.h"
3132#include " qgssymbollayerv2utils.h"
3233
3334#include < QVariant>
@@ -680,7 +681,9 @@ Qt::ItemFlags QgsAttributeTableModel::flags( const QModelIndex &index ) const
680681 Qt::ItemFlags flags = QAbstractItemModel::flags ( index );
681682
682683 if ( layer ()->isEditable () &&
683- layer ()->fieldEditable ( mAttributes [ index.column ()] ) )
684+ layer ()->fieldEditable ( mAttributes [ index.column ()] ) &&
685+ (( layer ()->dataProvider () && layer ()->dataProvider ()->capabilities () & QgsVectorDataProvider::ChangeAttributeValues ) ||
686+ FID_IS_NEW ( rowToId ( index.row () ) ) ) )
684687 flags |= Qt::ItemIsEditable;
685688
686689 return flags;
Original file line number Diff line number Diff line change 2222#include " qgsproject.h"
2323#include " qgspythonrunner.h"
2424#include " qgsrelationwidgetwrapper.h"
25+ #include " qgsvectordataprovider.h"
2526
2627#include < QDir>
2728#include < QFileInfo>
@@ -366,7 +367,9 @@ void QgsAttributeForm::synchronizeEnabledState()
366367 QgsEditorWidgetWrapper* eww = qobject_cast<QgsEditorWidgetWrapper*>( ww );
367368 if ( eww )
368369 {
369- fieldEditable = mLayer ->fieldEditable ( eww->fieldIdx () );
370+ fieldEditable = mLayer ->fieldEditable ( eww->fieldIdx () ) &&
371+ (( mLayer ->dataProvider () && layer ()->dataProvider ()->capabilities () & QgsVectorDataProvider::ChangeAttributeValues ) ||
372+ FID_IS_NEW ( mFeature .id () ) );
370373 }
371374 ww->setEnabled ( isEditable && fieldEditable );
372375 }
You can’t perform that action at this time.
0 commit comments