34 , mRelation( relation )
35 , mRelationEditorId( relationEditorName )
47 if ( !relationEditorWidget )
49 QgsLogger::warning( QStringLiteral(
"Failed to create relation widget \"%1\", fallback to \"basic\" relation widget" ).arg( mRelationEditorId ) );
55 return relationEditorWidget;
60 if ( mWidget && mRelation.
isValid() )
67 mWidget->setVisible( visible );
70 void QgsRelationWidgetWrapper::aboutToSave()
105 if ( mWidget && attributeChanged )
108 if ( feature.attribute( attribute ) != newValue )
123 return visibleButtons().testFlag( QgsAttributeEditorRelation::Button::Unlink );
159 editor->layout()->addWidget( w );
166 if (
config( QStringLiteral(
"force-suppress-popup" ),
false ).toBool() )
189 w->setVisible(
false );
210 return visibleButtons().testFlag( QgsAttributeEditorRelation::Button::Link );
224 return visibleButtons().testFlag( QgsAttributeEditorRelation::Button::SaveChildEdits );
277 mWidget->setVisible(
false );
313 return mWidget ? mWidget->
config() : QVariantMap();
This class contains context information for attribute editor widgets.
const QgsAttributeEditorContext * parentContext() const
FormMode formMode() const
Returns the form mode.
const QgsRelation & relation() const
Returns the attribute relation.
@ Multiple
When showing a list of features (e.g. houses as an embedded form in a district form)
@ Embed
A form was embedded as a widget on another form.
void setParentFormFeature(const QgsFeature &feature)
Sets the feature of the currently edited parent form.
const QgsVectorLayerTools * vectorLayerTools() const
Returns the associated vector layer tools.
@ SaveChildEdits
Save child edits button.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
bool setAttribute(int field, const QVariant &attr)
Sets an attribute's value by field index.
static QgsGui * instance()
Returns a pointer to the singleton instance.
static QgsRelationWidgetRegistry * relationWidgetRegistry()
Returns the global relation widget registry, used for managing all known relation widget factories.
static void warning(const QString &msg)
Goes to qWarning.
QgsRelationManager * relationManager
static QgsProject * instance()
Returns the QgsProject singleton instance.
Q_INVOKABLE QgsRelation relation(const QString &id) const
Gets access to a relation by its id.
QgsVectorLayer * referencedLayer
QgsVectorLayer * referencingLayer
Represents a vector layer which manages a vector based data sets.
bool isModified() const override
Returns true if the provider has been modified since the last commit.
#define Q_NOWARN_DEPRECATED_POP
#define Q_NOWARN_DEPRECATED_PUSH
T qgsFlagKeysToValue(const QString &keys, const T &defaultValue)
Returns the value corresponding to the given keys of a flag.
QString qgsFlagValueToKeys(const T &value)
Returns the value for the given keys of a flag.