Skip to content

Commit

Permalink
[GUI] Only enable 'Editable' field checkbox if field is not read only…
Browse files Browse the repository at this point in the history
… from the provider or its origin
  • Loading branch information
rouault committed May 29, 2024
1 parent 6d7f885 commit 24b323a
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 4 deletions.
2 changes: 2 additions & 0 deletions src/core/editform/qgseditformconfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,8 @@ bool QgsEditFormConfig::readOnly( int idx ) const
if ( d->mFields.fieldOrigin( idx ) == Qgis::FieldOrigin::Join
|| d->mFields.fieldOrigin( idx ) == Qgis::FieldOrigin::Expression )
return true;
if ( d->mFields.at( idx ).isReadOnly() )
return true;
return !d->mFieldEditables.value( d->mFields.at( idx ).name(), true );
}
else
Expand Down
3 changes: 2 additions & 1 deletion src/gui/attributeformconfig/qgsattributetypedialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ QgsAttributeTypeDialog::QgsAttributeTypeDialog( QgsVectorLayer *vl, int fieldIdx
connect( mWidgetTypeComboBox, static_cast< void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsAttributeTypeDialog::onCurrentWidgetChanged );

if ( vl->fields().fieldOrigin( fieldIdx ) == Qgis::FieldOrigin::Join ||
vl->fields().fieldOrigin( fieldIdx ) == Qgis::FieldOrigin::Expression )
vl->fields().fieldOrigin( fieldIdx ) == Qgis::FieldOrigin::Expression ||
vl->fields().field( fieldIdx ).isReadOnly() )
{
isFieldEditableCheckBox->setEnabled( false );
}
Expand Down
2 changes: 0 additions & 2 deletions src/gui/vector/qgsattributesformproperties.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1080,8 +1080,6 @@ QgsAttributesFormProperties::FieldConfig::FieldConfig( QgsVectorLayer *layer, in
mDataDefinedProperties = layer->editFormConfig().dataDefinedFieldProperties( layer->fields().at( idx ).name() );
mComment = layer->fields().at( idx ).comment();
mEditable = !layer->editFormConfig().readOnly( idx );
mEditableEnabled = layer->fields().fieldOrigin( idx ) != Qgis::FieldOrigin::Join
&& layer->fields().fieldOrigin( idx ) != Qgis::FieldOrigin::Expression;
mLabelOnTop = layer->editFormConfig().labelOnTop( idx );
mReuseLastValues = layer->editFormConfig().reuseLastValue( idx );
mFieldConstraints = layer->fields().at( idx ).constraints();
Expand Down
1 change: 0 additions & 1 deletion src/gui/vector/qgsattributesformproperties.h
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,6 @@ class GUI_EXPORT QgsAttributesFormProperties : public QWidget, public QgsExpress
FieldConfig( QgsVectorLayer *layer, int idx );

bool mEditable = true;
bool mEditableEnabled = true;
bool mLabelOnTop = false;
bool mReuseLastValues = false;
QgsFieldConstraints mFieldConstraints;
Expand Down

0 comments on commit 24b323a

Please sign in to comment.