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;
411 bool expandingNeeded =
false;
415 bool labelOnTop =
false;
416 bool labelAlignRight =
false;
417 bool showLabel =
true;
427 void createWrappers();
428 void afterWidgetInit();
430 void scanForEqualAttributes(
QgsFeatureIterator &fit, QSet<int> &mixedValueFields, QHash<int, QVariant> &fieldSharedValues )
const;
433 bool saveEdits( QString *error );
438 void updateValuesDependencies(
const int originIdx );
439 void updateValuesDependenciesDefaultValues(
const int originIdx );
440 void updateValuesDependenciesVirtualFields(
const int originIdx );
441 void updateValuesDependenciesParent();
442 void updateRelatedLayerFields();
444 void clearMultiEditMessages();
445 void pushSelectedFeaturesMessage();
448 QString createFilterExpression()
const;
453 void updateAllConstraints();
455 void updateContainersVisibility();
458 void updateEditableState();
459 bool currentFormValuesFeature(
QgsFeature &feature );
460 bool currentFormValidConstraints( QStringList &invalidFields, QStringList &descriptions )
const;
461 bool currentFormValidHardConstraints( QStringList &invalidFields, QStringList &descriptions )
const;
471 bool mOwnsMessageBar =
true;
474 QList<QgsWidgetWrapper *> mWidgets;
476 std::unique_ptr<QgsExpressionContextScope> mExtraContextScope;
477 QDialogButtonBox *mButtonBox =
nullptr;
478 QWidget *mSearchButtonBox =
nullptr;
479 QList<QgsAttributeFormInterface *> mInterfaces;
480 QMultiMap<int, QgsAttributeFormEditorWidget *> mFormEditorWidgets;
481 QList<QgsAttributeFormWidget *> mFormWidgets;
482 QMap<const QgsVectorLayerJoinInfo *, QgsFeature> mJoinedFeatures;
483 QMap<QLabel *, QgsProperty> mLabelDataDefinedProperties;
484 QMap<QWidget *, QgsProperty> mEditableDataDefinedProperties;
485 bool mValuesInitialized =
false;
487 bool mIsSettingFeature =
false;
489 bool mValidConstraints =
true;
492 struct ContainerInformation
495 : tabWidget( tabWidget )
497 , expression( expression )
501 ContainerInformation( QWidget *widget,
const QgsExpression &expression )
503 , expression( expression )
507 ContainerInformation( QWidget *widget,
const QgsExpression &visibilityExpression,
bool collapsed,
const QgsExpression &collapsedExpression )
509 , expression( visibilityExpression )
511 , isCollapsed( collapsed )
512 , collapsedExpression( collapsedExpression )
516 QgsTabWidget *tabWidget =
nullptr;
517 QWidget *widget =
nullptr;
518 QgsExpression expression;
520 bool isCollapsed =
false;
521 QgsExpression collapsedExpression;
523 void apply( QgsExpressionContext *expressionContext );
526 void registerContainerInformation( ContainerInformation *info );
528 void updateIcon( QgsEditorWidgetWrapper *eww );
530 void reloadIcon(
const QString &file,
const QString &tooltip, QSvgWidget *sw );
533 QVector<ContainerInformation *> mContainerVisibilityCollapsedInformation;
534 QMap<QString, QVector<ContainerInformation *>> mContainerInformationDependency;
537 static int sFormCounter;
539 QString mPyFormVarName;
542 bool mIsSaving =
false;
545 bool mPreventFeatureRefresh =
false;
547 bool mIsSettingMultiEditFeatures =
false;
550 bool mUnsavedMultiEditChanges =
false;
552 QString mEditCommandMessage;
556 QMap<QWidget *, QSvgWidget *> mIconMap;
562 QMultiMap<int, QgsWidgetWrapper *> mDefaultValueDependencies;
568 QMultiMap<int, QgsWidgetWrapper *> mVirtualFieldsDependencies;
573 QSet<QgsEditorWidgetWrapper *> mRelatedLayerFieldsDependencies;
575 QSet<QgsEditorWidgetWrapper *> mParentDependencies;
578 QList<int> mAlreadyUpdatedFields;
580 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...