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 27
27
#include " qgsmaplayerregistry.h"
28
28
#include " qgsrendererv2.h"
29
29
#include " qgsvectorlayer.h"
30
+ #include " qgsvectordataprovider.h"
30
31
31
32
#include < QVariant>
32
33
@@ -560,7 +561,9 @@ Qt::ItemFlags QgsAttributeTableModel::flags( const QModelIndex &index ) const
560
561
Qt::ItemFlags flags = QAbstractItemModel::flags ( index );
561
562
562
563
if ( layer ()->isEditable () &&
563
- layer ()->fieldEditable ( mAttributes [ index.column ()] ) )
564
+ layer ()->fieldEditable ( mAttributes [ index.column ()] ) &&
565
+ (( layer ()->dataProvider () && layer ()->dataProvider ()->capabilities () & QgsVectorDataProvider::ChangeAttributeValues ) ||
566
+ FID_IS_NEW ( rowToId ( index.row () ) ) ) )
564
567
flags |= Qt::ItemIsEditable;
565
568
566
569
return flags;
Original file line number Diff line number Diff line change 22
22
#include " qgsproject.h"
23
23
#include " qgspythonrunner.h"
24
24
#include " qgsrelationwidgetwrapper.h"
25
+ #include " qgsvectordataprovider.h"
25
26
26
27
#include < QDir>
27
28
#include < QFileInfo>
@@ -323,7 +324,9 @@ void QgsAttributeForm::synchronizeEnabledState()
323
324
QgsEditorWidgetWrapper* eww = qobject_cast<QgsEditorWidgetWrapper*>( ww );
324
325
if ( eww )
325
326
{
326
- fieldEditable = mLayer ->fieldEditable ( eww->fieldIdx () );
327
+ fieldEditable = mLayer ->fieldEditable ( eww->fieldIdx () ) &&
328
+ (( mLayer ->dataProvider () && layer ()->dataProvider ()->capabilities () & QgsVectorDataProvider::ChangeAttributeValues ) ||
329
+ FID_IS_NEW ( mFeature .id () ) );
327
330
}
328
331
ww->setEnabled ( isEditable && fieldEditable );
329
332
}
You can’t perform that action at this time.
0 commit comments