28#include "moc_qgsrelationwidgetwrapper.cpp"
38 , mRelationEditorId( relationEditorName )
50 if ( !relationEditorWidget )
52 QgsLogger::warning( QStringLiteral(
"Failed to create relation widget \"%1\", fallback to \"basic\" relation widget" ).arg( mRelationEditorId ) );
58 return relationEditorWidget;
63 if ( mWidget && mRelation.isValid() )
69 if ( mWidget && mRelation.isValid() )
70 mWidget->setMultiEditFeatureIds( fids );
76 mWidget->setVisible( visible );
79void QgsRelationWidgetWrapper::aboutToSave()
98 ( void ) mRelation.referencingLayer()->isModified();
100 if ( mNmRelation.isValid() )
102 ( void ) mNmRelation.referencedLayer()->isModified();
113 if ( mWidget && attributeChanged )
116 if ( feature.
attribute( attribute ) != newValue )
121 mWidget->setEditorContext( newContext );
122 mWidget->setFeature( feature,
false );
123 mWidget->parentFormValueChanged( attribute, newValue );
167 if ( !editor->layout() )
169 editor->setLayout(
new QVBoxLayout( editor ) );
171 editor->layout()->addWidget( w );
178 if (
config( QStringLiteral(
"force-suppress-popup" ),
false ).toBool() )
199 || ( mNmRelation.isValid() && ctx->
relation().
id() == mNmRelation.id() ) )
201 w->setVisible(
false );
243 QVariantMap
config = mWidget->config();
246 mWidget->setConfig(
config );
267 return mWidget->forceSuppressFormPopup();
283 || ( mNmRelation.isValid() && ctx->
relation().
id() == mNmRelation.id() ) )
285 mWidget->setVisible(
false );
291 mWidget->setRelations( mRelation, mNmRelation );
298 return mWidget->nmRelationId();
316 mWidget->setConfig(
config );
321 return mWidget ? mWidget->config() : QVariantMap();
Contains context information for attribute editor widgets.
FormMode formMode() const
Returns the form mode.
@ Multiple
When showing a list of features (e.g. houses as an embedded form in a district form).
const QgsVectorLayerTools * vectorLayerTools() const
Returns the associated vector layer tools.
@ 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 QgsAttributeEditorContext * parentContext() const
const QgsRelation & relation() const
Returns the attribute relation.
@ SaveChildEdits
Save child edits button.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Q_INVOKABLE bool setAttribute(int field, const QVariant &attr)
Sets an attribute's value by field index.
Q_INVOKABLE QVariant attribute(const QString &name) const
Lookup attribute value by attribute name.
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.
Represents a relationship between two vector layers.
QgsVectorLayer * referencedLayer
QgsVectorLayer * referencingLayer
Represents a vector layer which manages a vector based dataset.
#define Q_NOWARN_DEPRECATED_POP
QString qgsFlagValueToKeys(const T &value, bool *returnOk=nullptr)
Returns the value for the given keys of a flag.
T qgsFlagKeysToValue(const QString &keys, const T &defaultValue, bool tryValueAsKey=true, bool *returnOk=nullptr)
Returns the value corresponding to the given keys of a flag.
#define Q_NOWARN_DEPRECATED_PUSH
QSet< QgsFeatureId > QgsFeatureIds