95 void displayWarning(
const QString &message );
103 void hideButtonBox();
111 void showButtonBox();
119 void disconnectButtonBox();
169 bool eventFilter( QObject *
object, QEvent *event )
override;
190 QString aggregateFilter()
const;
204 bool needsGeometry()
const;
302 void changeAttribute(
const QString &field,
const QVariant &value,
const QString &hintText = QString() );
363 void onAttributeChanged(
const QVariant &value,
const QVariantList &additionalFieldValues );
364 void onAttributeAdded(
int idx );
365 void onAttributeDeleted(
int idx );
366 void onRelatedFeaturesChanged();
367 void onUpdatedFields();
369 void preventFeatureRefresh();
370 void synchronizeState();
371 void layerSelectionChanged();
374 bool saveMultiEdits();
375 void resetMultiEdit(
bool promptToSave =
false );
376 void multiEditMessageClicked(
const QString &link );
378 void filterAndTriggered();
379 void filterOrTriggered();
380 void filterTriggered();
384 void searchSetSelection();
385 void searchAddToSelection();
386 void searchRemoveFromSelection();
387 void searchIntersectSelection();
398 bool fieldIsEditable(
int fieldIndex )
const;
402 void updateFieldDependencies();
408 void setMultiEditFeatureIdsRelations(
const QgsFeatureIds &fids );
412 QWidget *widget =
nullptr;
413 bool expandingNeeded =
false;
417 bool labelOnTop =
false;
418 bool labelAlignRight =
false;
419 bool showLabel =
true;
429 void createWrappers();
430 void afterWidgetInit();
432 void scanForEqualAttributes(
QgsFeatureIterator &fit, QSet<int> &mixedValueFields, QHash<int, QVariant> &fieldSharedValues )
const;
435 bool saveEdits( QString *error );
440 void updateValuesDependencies(
const int originIdx );
441 void updateValuesDependenciesDefaultValues(
const int originIdx );
442 void updateValuesDependenciesVirtualFields(
const int originIdx );
443 void updateValuesDependenciesParent();
444 void updateRelatedLayerFields();
446 void clearMultiEditMessages();
447 void pushSelectedFeaturesMessage();
450 QString createFilterExpression()
const;
455 void updateAllConstraints();
457 void updateContainersVisibility();
460 void updateEditableState();
461 bool currentFormValuesFeature(
QgsFeature &feature );
462 bool currentFormValidConstraints( QStringList &invalidFields, QStringList &descriptions )
const;
463 bool currentFormValidHardConstraints( QStringList &invalidFields, QStringList &descriptions )
const;
473 bool mOwnsMessageBar =
true;
476 QList<QgsWidgetWrapper *> mWidgets;
478 std::unique_ptr<QgsExpressionContextScope> mExtraContextScope;
479 QDialogButtonBox *mButtonBox =
nullptr;
480 QWidget *mSearchButtonBox =
nullptr;
481 QList<QgsAttributeFormInterface *> mInterfaces;
482 QMultiMap<int, QgsAttributeFormEditorWidget *> mFormEditorWidgets;
483 QList<QgsAttributeFormWidget *> mFormWidgets;
484 QMap<const QgsVectorLayerJoinInfo *, QgsFeature> mJoinedFeatures;
485 QMap<QLabel *, QgsProperty> mLabelDataDefinedProperties;
486 QMap<QWidget *, QgsProperty> mEditableDataDefinedProperties;
487 bool mValuesInitialized =
false;
489 bool mIsSettingFeature =
false;
491 bool mValidConstraints =
true;
494 struct ContainerInformation
497 : tabWidget( tabWidget )
499 , expression( expression )
503 ContainerInformation( QWidget *widget,
const QgsExpression &expression )
505 , expression( expression )
509 ContainerInformation( QWidget *widget,
const QgsExpression &visibilityExpression,
bool collapsed,
const QgsExpression &collapsedExpression )
511 , expression( visibilityExpression )
513 , isCollapsed( collapsed )
514 , collapsedExpression( collapsedExpression )
518 QgsTabWidget *tabWidget =
nullptr;
519 QWidget *widget =
nullptr;
520 QgsExpression expression;
522 bool isCollapsed =
false;
523 QgsExpression collapsedExpression;
525 void apply( QgsExpressionContext *expressionContext );
528 void registerContainerInformation( ContainerInformation *info );
530 void updateIcon( QgsEditorWidgetWrapper *eww );
532 void reloadIcon(
const QString &file,
const QString &tooltip, QSvgWidget *sw );
535 QVector<ContainerInformation *> mContainerVisibilityCollapsedInformation;
536 QMap<QString, QVector<ContainerInformation *>> mContainerInformationDependency;
539 static int sFormCounter;
541 QString mPyFormVarName;
544 bool mIsSaving =
false;
547 bool mPreventFeatureRefresh =
false;
549 bool mIsSettingMultiEditFeatures =
false;
552 bool mUnsavedMultiEditChanges =
false;
554 QString mEditCommandMessage;
558 QMap<QWidget *, QSvgWidget *> mIconMap;
564 QMultiMap<int, QgsWidgetWrapper *> mDefaultValueDependencies;
570 QMultiMap<int, QgsWidgetWrapper *> mVirtualFieldsDependencies;
575 QSet<QgsEditorWidgetWrapper *> mRelatedLayerFieldsDependencies;
577 QSet<QgsEditorWidgetWrapper *> mParentDependencies;
580 QList<int> mAlreadyUpdatedFields;
582 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...