93 void displayWarning(
const QString &message );
101 void hideButtonBox();
109 void showButtonBox();
117 void disconnectButtonBox();
167 bool eventFilter( QObject *
object, QEvent *event )
override;
188 QString aggregateFilter()
const;
202 bool needsGeometry()
const;
300 void changeAttribute(
const QString &field,
const QVariant &value,
const QString &hintText = QString() );
361 void onAttributeChanged(
const QVariant &value,
const QVariantList &additionalFieldValues );
362 void onAttributeAdded(
int idx );
363 void onAttributeDeleted(
int idx );
364 void onRelatedFeaturesChanged();
365 void onUpdatedFields();
367 void preventFeatureRefresh();
368 void synchronizeState();
369 void layerSelectionChanged();
372 bool saveMultiEdits();
373 void resetMultiEdit(
bool promptToSave =
false );
374 void multiEditMessageClicked(
const QString &link );
376 void filterAndTriggered();
377 void filterOrTriggered();
378 void filterTriggered();
382 void searchSetSelection();
383 void searchAddToSelection();
384 void searchRemoveFromSelection();
385 void searchIntersectSelection();
396 bool fieldIsEditable(
int fieldIndex )
const;
400 void updateFieldDependencies();
406 void setMultiEditFeatureIdsRelations(
const QgsFeatureIds &fids );
410 QWidget *widget =
nullptr;
414 bool labelOnTop =
false;
415 bool labelAlignRight =
false;
416 bool showLabel =
true;
426 void createWrappers();
427 void afterWidgetInit();
429 void scanForEqualAttributes(
QgsFeatureIterator &fit, QSet<int> &mixedValueFields, QHash<int, QVariant> &fieldSharedValues )
const;
432 bool saveEdits( QString *error );
437 void updateValuesDependencies(
const int originIdx );
438 void updateValuesDependenciesDefaultValues(
const int originIdx );
439 void updateValuesDependenciesVirtualFields(
const int originIdx );
440 void updateValuesDependenciesParent();
441 void updateRelatedLayerFields();
443 void clearMultiEditMessages();
444 void pushSelectedFeaturesMessage();
447 QString createFilterExpression()
const;
452 void updateAllConstraints();
454 void updateContainersVisibility();
457 void updateEditableState();
458 bool currentFormValuesFeature(
QgsFeature &feature );
459 bool currentFormValidConstraints( QStringList &invalidFields, QStringList &descriptions )
const;
460 bool currentFormValidHardConstraints( QStringList &invalidFields, QStringList &descriptions )
const;
470 bool mOwnsMessageBar;
473 QList<QgsWidgetWrapper *> mWidgets;
475 std::unique_ptr<QgsExpressionContextScope> mExtraContextScope;
476 QDialogButtonBox *mButtonBox =
nullptr;
477 QWidget *mSearchButtonBox =
nullptr;
478 QList<QgsAttributeFormInterface *> mInterfaces;
479 QMultiMap<int, QgsAttributeFormEditorWidget *> mFormEditorWidgets;
480 QList<QgsAttributeFormWidget *> mFormWidgets;
481 QMap<const QgsVectorLayerJoinInfo *, QgsFeature> mJoinedFeatures;
482 QMap<QLabel *, QgsProperty> mLabelDataDefinedProperties;
483 QMap<QWidget *, QgsProperty> mEditableDataDefinedProperties;
484 bool mValuesInitialized =
false;
486 bool mIsSettingFeature =
false;
488 bool mValidConstraints =
true;
491 struct ContainerInformation
494 : tabWidget( tabWidget )
496 , expression( expression )
500 ContainerInformation( QWidget *widget,
const QgsExpression &expression )
502 , expression( expression )
506 ContainerInformation( QWidget *widget,
const QgsExpression &visibilityExpression,
bool collapsed,
const QgsExpression &collapsedExpression )
508 , expression( visibilityExpression )
510 , isCollapsed( collapsed )
511 , collapsedExpression( collapsedExpression )
515 QgsTabWidget *tabWidget =
nullptr;
516 QWidget *widget =
nullptr;
517 QgsExpression expression;
519 bool isCollapsed =
false;
520 QgsExpression collapsedExpression;
522 void apply( QgsExpressionContext *expressionContext );
525 void registerContainerInformation( ContainerInformation *info );
527 void updateIcon( QgsEditorWidgetWrapper *eww );
529 void reloadIcon(
const QString &file,
const QString &tooltip, QSvgWidget *sw );
532 QVector<ContainerInformation *> mContainerVisibilityCollapsedInformation;
533 QMap<QString, QVector<ContainerInformation *>> mContainerInformationDependency;
536 static int sFormCounter;
538 QString mPyFormVarName;
544 bool mPreventFeatureRefresh;
546 bool mIsSettingMultiEditFeatures;
549 bool mUnsavedMultiEditChanges;
551 QString mEditCommandMessage;
555 QMap<QWidget *, QSvgWidget *> mIconMap;
561 QMultiMap<int, QgsWidgetWrapper *> mDefaultValueDependencies;
567 QMultiMap<int, QgsWidgetWrapper *> mVirtualFieldsDependencies;
572 QSet<QgsEditorWidgetWrapper *> mRelatedLayerFieldsDependencies;
574 QSet<QgsEditorWidgetWrapper *> mParentDependencies;
577 QList<int> mAlreadyUpdatedFields;
579 bool mNeedsGeometry =
false;
Contains context information for attribute editor widgets.
Single scope for storing variables and functions for use within a QgsExpressionContext.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...