/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/gui/editorwidgets/qgsrelationwidgetwrapper.h                     *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/






class QgsRelationWidgetWrapper : QgsWidgetWrapper
{

%TypeHeaderCode
#include "qgsrelationwidgetwrapper.h"
%End
  public:
    QgsRelationWidgetWrapper(
      QgsVectorLayer *vl,
      const QgsRelation &relation,
      QWidget *editor /Constrained/ = 0,
      QWidget *parent /TransferThis,Constrained/ = 0
    );
%Docstring
Constructor for QgsRelationWidgetWrapper
%End

    QgsRelationWidgetWrapper(
      const QString &relationEditorName,
      QgsVectorLayer *vl,
      const QgsRelation &relation,
      QWidget *editor = 0,
      QWidget *parent /TransferThis/ = 0
    );
%Docstring
Constructor for QgsRelationWidgetWrapper
%End

 bool showLabel() const /Deprecated/;
%Docstring
Defines if a title label should be shown for this widget. Only has an
effect after :py:func:`~QgsRelationWidgetWrapper.widget` has been called
at least once.

.. deprecated:: 3.20

   Label is handled directly in :py:class:`QgsAttributeForm`.
%End

 void setShowLabel( bool showLabel ) /Deprecated/;
%Docstring
Defines if a title label should be shown for this widget. Only has an
effect after :py:func:`~QgsRelationWidgetWrapper.widget` has been called
at least once.

.. deprecated:: 3.20

   Label is handled directly in :py:class:`QgsAttributeForm`.
%End

 bool showLinkButton() const /Deprecated/;
%Docstring
Determines if the "link feature" button should be shown

.. deprecated:: 3.16

   Use :py:func:`~QgsRelationWidgetWrapper.visibleButtons` instead.
%End

 void setShowLinkButton( bool showLinkButton ) /Deprecated/;
%Docstring
Determines if the "link feature" button should be shown

.. deprecated:: 3.16

   Use :py:func:`~QgsRelationWidgetWrapper.setVisibleButtons` instead.
%End

 bool showUnlinkButton() const /Deprecated/;
%Docstring
Determines if the "unlink feature" button should be shown

.. deprecated:: 3.16

   Use :py:func:`~QgsRelationWidgetWrapper.visibleButtons` instead.
%End

 void setShowUnlinkButton( bool showUnlinkButton ) /Deprecated/;
%Docstring
Determines if the "unlink feature" button should be shown

.. deprecated:: 3.16

   Use :py:func:`~QgsRelationWidgetWrapper.setVisibleButtons` instead.
%End

 void setShowSaveChildEditsButton( bool showChildEdits ) /Deprecated/;
%Docstring
Determines if the "Save child layer edits" button should be shown

.. versionadded:: 3.14

.. deprecated:: 3.16

   Use :py:func:`~QgsRelationWidgetWrapper.setVisibleButtons` instead.
%End

 bool showSaveChildEditsButton() const /Deprecated/;
%Docstring
Determines if the "Save child layer edits" button should be shown

.. versionadded:: 3.14

.. deprecated:: 3.16

   Use :py:func:`~QgsRelationWidgetWrapper.visibleButtons` instead.
%End

 void setVisibleButtons( const QgsAttributeEditorRelation::Buttons &buttons ) /Deprecated/;
%Docstring
Defines the buttons which are shown

.. versionadded:: 3.16

.. deprecated:: 3.18

   Use :py:func:`~QgsRelationWidgetWrapper.setWidgetConfig` instead.
%End

 QgsAttributeEditorRelation::Buttons visibleButtons() const /Deprecated/;
%Docstring
Returns the buttons which are shown

.. versionadded:: 3.16

.. deprecated:: 3.18

   Use :py:func:`~QgsRelationWidgetWrapper.widgetConfig` instead.
%End


    void setWidgetConfig( const QVariantMap &config );
%Docstring
Will set the config of this widget wrapper to the specified config.

:param config: The config for this wrapper

.. versionadded:: 3.18
%End

    QVariantMap widgetConfig() const;
%Docstring
Returns the whole widget config

.. versionadded:: 3.18
%End

    bool forceSuppressFormPopup() const;
%Docstring
Determines the force suppress form popup status that is configured for
this widget

.. versionadded:: 3.16
%End

    void setForceSuppressFormPopup( bool forceSuppressFormPopup );
%Docstring
Sets force suppress form popup status to ``forceSuppressFormPopup`` for
this widget and for the vectorLayerTools (if ``True``). This flag will
override the layer and general settings regarding the automatic opening
of the attribute form dialog when digitizing is completed.

.. versionadded:: 3.16
%End

    QVariant nmRelationId() const;
%Docstring
Determines the relation id of the second relation involved in an N:M
relation.

.. versionadded:: 3.16
%End

    void setNmRelationId( const QVariant &nmRelationId = QVariant() );
%Docstring
Sets ``nmRelationId`` for the relation id of the second relation
involved in an N:M relation. If it's empty, then it's considered as a
1:M relationship.

.. versionadded:: 3.16
%End

 QString label() const /Deprecated/;
%Docstring
Determines the label of this element

.. versionadded:: 3.16

.. deprecated:: 3.20

   Label is handled directly in :py:class:`QgsAttributeForm`.
%End

 void setLabel( const QString &label = QString() ) /Deprecated/;
%Docstring
Sets ``label`` for this element If it's empty it takes the relation id
as label

.. versionadded:: 3.16

.. deprecated:: 3.20

   Label is handled directly in :py:class:`QgsAttributeForm`.
%End

    QgsRelation relation() const;
%Docstring
The relation for which this wrapper is created.
%End

    void widgetValueChanged( const QString &attribute, const QVariant &newValue, bool attributeChanged );
%Docstring
Will be called when a value in the current edited form or table row
changes

Forward the signal to the embedded form

:param attribute: The name of the attribute that changed.
:param newValue: The new value of the attribute.
:param attributeChanged: If ``True``, it corresponds to an actual change
                         of the feature attribute

.. versionadded:: 3.14
%End


  protected:
    virtual QWidget *createWidget( QWidget *parent );

    virtual void initWidget( QWidget *editor );

    virtual bool valid() const;


  signals:

    void relatedFeaturesChanged();
%Docstring
Emit this signal, whenever the related features changed. This happens
for example when related features are added, removed, linked or
unlinked.

.. versionadded:: 3.22
%End

  public slots:
    virtual void setFeature( const QgsFeature &feature );


    void setMultiEditFeatureIds( const QgsFeatureIds &fids );
%Docstring
Set multiple feature to edit simultaneously.

:param fids: Multiple Id of features to edit

.. versionadded:: 3.24
%End

    void setVisible( bool visible );
%Docstring
Sets the visibility of the wrapper's widget.

:param visible: set to ``True`` to show widget, ``False`` to hide widget
%End

};

/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/gui/editorwidgets/qgsrelationwidgetwrapper.h                     *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/
