mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-10-31 00:06:02 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			466 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			466 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/gui/qgsabstractrelationeditorwidget.h                            *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | |
|  ************************************************************************/
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| // this is needed for the "convert to subclass" code below to compile
 | |
| %ModuleHeaderCode
 | |
| #include "qgsrelationeditorwidget.h"
 | |
| %End
 | |
| 
 | |
| 
 | |
| class QgsAbstractRelationEditorWidget : QWidget
 | |
| {
 | |
| %Docstring(signature="appended")
 | |
| Base class to build new relation widgets.
 | |
| 
 | |
| .. versionadded:: 3.18
 | |
| %End
 | |
| 
 | |
| %TypeHeaderCode
 | |
| #include "qgsabstractrelationeditorwidget.h"
 | |
| %End
 | |
| %ConvertToSubClassCode
 | |
|     if ( qobject_cast<QgsRelationEditorWidget *>( sipCpp ) )
 | |
|       sipType = sipType_QgsRelationEditorWidget;
 | |
|     else
 | |
|       sipType = 0;
 | |
| %End
 | |
|   public:
 | |
|     QgsAbstractRelationEditorWidget( const QVariantMap &config, QWidget *parent /TransferThis/ = 0 );
 | |
| %Docstring
 | |
| Constructor
 | |
| %End
 | |
| 
 | |
|     void setRelationFeature( const QgsRelation &relation, const QgsFeature &feature );
 | |
| %Docstring
 | |
| Sets the ``relation`` and the ``feature``
 | |
| %End
 | |
| 
 | |
|     void setRelations( const QgsRelation &relation, const QgsRelation &nmrelation );
 | |
| %Docstring
 | |
| Sets the relation(s) for this widget
 | |
| If only one relation is set, it will act as a simple 1:N relation widget
 | |
| If both relations are set, it will act as an N:M relation widget
 | |
| inserting and deleting entries on the intermediate table as required.
 | |
| 
 | |
| :param relation: Relation referencing the edited table
 | |
| :param nmrelation: Optional reference from the referencing table to a 3rd N:M table
 | |
| %End
 | |
| 
 | |
|     QgsRelation relation() const;
 | |
| %Docstring
 | |
| Returns the relation
 | |
| 
 | |
| .. versionadded:: 3.18
 | |
| %End
 | |
| 
 | |
|     QgsRelation nmRelation() const;
 | |
| %Docstring
 | |
| Returns the nm relation
 | |
| 
 | |
| .. versionadded:: 3.18
 | |
| %End
 | |
| 
 | |
|     void setFeature( const QgsFeature &feature, bool update = true );
 | |
| %Docstring
 | |
| Sets the ``feature`` being edited and updates the UI unless ``update`` is set to ``False``
 | |
| %End
 | |
| 
 | |
|     void setMultiEditFeatureIds( const QgsFeatureIds &fids );
 | |
| %Docstring
 | |
| Set multiple feature to edit simultaneously.
 | |
| 
 | |
| :param fids: Multiple Id of features to edit
 | |
| 
 | |
| .. versionadded:: 3.24
 | |
| %End
 | |
| 
 | |
|     virtual void setEditorContext( const QgsAttributeEditorContext &context );
 | |
| %Docstring
 | |
| Sets the editor ``context``
 | |
| 
 | |
| .. note::
 | |
| 
 | |
|    if context cadDockWidget is null, it won't be possible to digitize
 | |
|    the geometry of a referencing feature from this widget
 | |
| %End
 | |
| 
 | |
|     QgsAttributeEditorContext editorContext() const;
 | |
| %Docstring
 | |
| Returns the attribute editor context.
 | |
| %End
 | |
| 
 | |
|  bool showLabel() const /Deprecated="Since 3.20. Label is handled directly in QgsAttributeForm."/;
 | |
| %Docstring
 | |
| Defines if a title label should be shown for this widget.
 | |
| 
 | |
| .. deprecated:: 3.20
 | |
| 
 | |
|    Label is handled directly in :py:class:`QgsAttributeForm`.
 | |
| %End
 | |
| 
 | |
|  void setShowLabel( bool showLabel ) /Deprecated="Since 3.20. Label is handled directly in QgsAttributeForm."/;
 | |
| %Docstring
 | |
| Defines if a title label should be shown for this widget.
 | |
| 
 | |
| .. deprecated:: 3.20
 | |
| 
 | |
|    Label is handled directly in :py:class:`QgsAttributeForm`.
 | |
| %End
 | |
| 
 | |
|     QVariant nmRelationId() const;
 | |
| %Docstring
 | |
| Determines the relation id of the second relation involved in an N:M relation.
 | |
| %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.
 | |
| %End
 | |
| 
 | |
|  QString label() const /Deprecated="Since 3.20. Label is handled directly in QgsAttributeForm."/;
 | |
| %Docstring
 | |
| Determines the label of this element
 | |
| 
 | |
| .. deprecated:: 3.20
 | |
| 
 | |
|    Label is handled directly in :py:class:`QgsAttributeForm`.
 | |
| %End
 | |
| 
 | |
|     void setLabel( const QString &label = QString() );
 | |
| %Docstring
 | |
| Sets ``label`` for this element
 | |
| If it's empty it takes the relation id as label
 | |
| %End
 | |
| 
 | |
|     QgsFeature feature() const;
 | |
| %Docstring
 | |
| Returns the widget's current feature
 | |
| If the widget is in multiedit mode only the first is returned
 | |
| 
 | |
| .. seealso:: :py:func:`features`
 | |
| %End
 | |
| 
 | |
|     QList<QgsFeature> features() const;
 | |
| %Docstring
 | |
| Returns the widget's current features
 | |
| 
 | |
| .. versionadded:: 3.24
 | |
| %End
 | |
| 
 | |
|     bool forceSuppressFormPopup() const;
 | |
| %Docstring
 | |
| Determines the force suppress form popup status that is configured for this widget
 | |
| %End
 | |
| 
 | |
|     void setForceSuppressFormPopup( bool forceSuppressFormPopup );
 | |
| %Docstring
 | |
| Sets force suppress form popup status with ``forceSuppressFormPopup``
 | |
| configured for this widget
 | |
| %End
 | |
| 
 | |
|     virtual QVariantMap config() const = 0;
 | |
| %Docstring
 | |
| Returns the widget configuration
 | |
| %End
 | |
| 
 | |
|     virtual void setConfig( const QVariantMap &config ) = 0;
 | |
| %Docstring
 | |
| Defines the widget configuration
 | |
| %End
 | |
| 
 | |
|     bool multiEditModeActive() const;
 | |
| %Docstring
 | |
| Returns true if editing multiple features at a time
 | |
| 
 | |
| .. versionadded:: 3.24
 | |
| %End
 | |
| 
 | |
|   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 parentFormValueChanged( const QString &attribute, const QVariant &newValue ) = 0;
 | |
| %Docstring
 | |
| Called when an ``attribute`` value in the parent widget has changed to ``newValue``
 | |
| %End
 | |
| 
 | |
|   protected slots:
 | |
| 
 | |
|     void toggleEditing( bool state );
 | |
| %Docstring
 | |
| Toggles editing state of the widget
 | |
| %End
 | |
| 
 | |
|     void saveEdits();
 | |
| %Docstring
 | |
| Saves the current modifications in the relation
 | |
| %End
 | |
| 
 | |
|     QgsFeatureIds addFeature( const QgsGeometry &geometry = QgsGeometry() );
 | |
| %Docstring
 | |
| Adds new features with given ``geometry``
 | |
| 
 | |
| .. versionadded:: 3.24
 | |
| %End
 | |
| 
 | |
|     void deleteFeature( QgsFeatureId fid = QgsFeatureId() );
 | |
| %Docstring
 | |
| Delete a feature with given ``fid``
 | |
| %End
 | |
| 
 | |
|     void linkFeature( const QString &filterExpression = QString() );
 | |
| %Docstring
 | |
| Links a new feature to the relation
 | |
| 
 | |
| :param filterExpression: to filter the available features in the link dialog since QGIS 3.40
 | |
| %End
 | |
| 
 | |
|     void onLinkFeatureDlgAccepted();
 | |
| %Docstring
 | |
| Called when the link feature dialog is confirmed by the user
 | |
| %End
 | |
| 
 | |
|     void unlinkFeature( QgsFeatureId fid = QgsFeatureId() );
 | |
| %Docstring
 | |
| Unlinks a feature with given ``fid``
 | |
| %End
 | |
| 
 | |
|     void duplicateFeature( const QgsFeatureId &fid );
 | |
| %Docstring
 | |
| Duplicates a feature
 | |
| %End
 | |
| 
 | |
|     void duplicateFeatures( const QgsFeatureIds &fids );
 | |
| %Docstring
 | |
| Duplicates features
 | |
| %End
 | |
| 
 | |
|   protected:
 | |
| 
 | |
| 
 | |
| 
 | |
|     void showEvent( QShowEvent * );
 | |
| %Docstring
 | |
| Refresh the UI when the widget becomes visible
 | |
| %End
 | |
| 
 | |
|  void updateTitle() /Deprecated="Since 3.20. Label is handled directly in QgsAttributeForm."/;
 | |
| %Docstring
 | |
| Updates the title contents to reflect the current state of the widget
 | |
| 
 | |
| .. deprecated:: 3.20
 | |
| 
 | |
|    Label is handled directly in :py:class:`QgsAttributeForm`.
 | |
| %End
 | |
| 
 | |
|     void deleteFeatures( const QgsFeatureIds &fids );
 | |
| %Docstring
 | |
| Deletes the features with ``fids``
 | |
| %End
 | |
| 
 | |
|     void unlinkFeatures( const QgsFeatureIds &fids );
 | |
| %Docstring
 | |
| Unlinks the features with ``fids``
 | |
| %End
 | |
| 
 | |
| 
 | |
|     virtual void updateUi();
 | |
| %Docstring
 | |
| A hook called every time the state of the relation editor widget has changed via calling its `set*` methods or slots,
 | |
| e.g. changed relation, added feature, etc.
 | |
| Should be used to refresh the UI regarding the new data.
 | |
| Check :py:class:`QgsRealationEditorWidget` as an example.
 | |
| %End
 | |
| 
 | |
|  virtual void setTitle( const QString &title ) /Deprecated="Since 3.20. Label is handled directly in QgsAttributeForm."/;
 | |
| %Docstring
 | |
| Sets the title of the widget, if it is wrapped within a :py:class:`QgsCollapsibleGroupBox`
 | |
| 
 | |
| .. deprecated:: 3.20
 | |
| 
 | |
|    Label is handled directly in :py:class:`QgsAttributeForm`.
 | |
| %End
 | |
| 
 | |
|     virtual void beforeSetRelationFeature( const QgsRelation &newRelation, const QgsFeature &newFeature );
 | |
| %Docstring
 | |
| A hook called right before :py:func:`~QgsAbstractRelationEditorWidget.setRelationFeature` is executed. Used to update the UI once setting the relation feature is done.
 | |
| Check :py:class:`QgsRealationEditorWidget` as an example.
 | |
| %End
 | |
| 
 | |
|     virtual void afterSetRelationFeature();
 | |
| %Docstring
 | |
| A hook called right after :py:func:`~QgsAbstractRelationEditorWidget.setRelationFeature` is executed, but before :py:func:`~QgsAbstractRelationEditorWidget.updateUi` is called. Used to update the UI once setting the relation feature is done.
 | |
| Check :py:class:`QgsRealationEditorWidget` as an example.
 | |
| %End
 | |
| 
 | |
|     virtual void beforeSetRelations( const QgsRelation &newRelation, const QgsRelation &newNmRelation );
 | |
| %Docstring
 | |
| A hook called right before :py:func:`~QgsAbstractRelationEditorWidget.setRelations` is executed. Used to manipulate UI once setting the relations is done.
 | |
| Check :py:class:`QgsRealationEditorWidget` as an example.
 | |
| %End
 | |
| 
 | |
|     virtual void afterSetRelations();
 | |
| %Docstring
 | |
| A hook called right after :py:func:`~QgsAbstractRelationEditorWidget.setRelations` is executed, but before :py:func:`~QgsAbstractRelationEditorWidget.updateUi` is called. Used to update the UI once setting the relations is done.
 | |
| Check :py:class:`QgsRealationEditorWidget` as an example.
 | |
| %End
 | |
| };
 | |
| 
 | |
| 
 | |
| class QgsAbstractRelationEditorConfigWidget : QWidget
 | |
| {
 | |
| %Docstring(signature="appended")
 | |
| This class should be subclassed for every configurable relation widget type.
 | |
| 
 | |
| It implements the GUI configuration widget and transforms this to/from a configuration.
 | |
| 
 | |
| It will only be instantiated by {:py:class:`QgsAbstractRelationEditorWidgetFactory`}
 | |
| 
 | |
| .. versionadded:: 3.18
 | |
| %End
 | |
| 
 | |
| %TypeHeaderCode
 | |
| #include "qgsabstractrelationeditorwidget.h"
 | |
| %End
 | |
| %ConvertToSubClassCode
 | |
|     if ( qobject_cast<QgsRelationEditorConfigWidget *>( sipCpp ) )
 | |
|       sipType = sipType_QgsRelationEditorConfigWidget;
 | |
|     else
 | |
|       sipType = 0;
 | |
| %End
 | |
|   public:
 | |
|     explicit QgsAbstractRelationEditorConfigWidget( const QgsRelation &relation, QWidget *parent /TransferThis/ );
 | |
| %Docstring
 | |
| Create a new configuration widget
 | |
| 
 | |
| :param relation: The relation for which the configuration dialog will be created
 | |
| :param parent: A parent widget
 | |
| %End
 | |
| 
 | |
|     virtual QVariantMap config() = 0;
 | |
| %Docstring
 | |
| Create a configuration from the current GUI state
 | |
| 
 | |
| :return: A widget configuration
 | |
| %End
 | |
| 
 | |
|     virtual void setConfig( const QVariantMap &config ) = 0;
 | |
| %Docstring
 | |
| Update the configuration widget to represent the given configuration.
 | |
| 
 | |
| :param config: The configuration which should be represented by this widget
 | |
| %End
 | |
| 
 | |
|     QgsVectorLayer *layer();
 | |
| %Docstring
 | |
| Returns the layer for which this configuration widget applies
 | |
| 
 | |
| :return: The layer
 | |
| %End
 | |
| 
 | |
|     QgsRelation relation() const;
 | |
| %Docstring
 | |
| Returns the relation for which this configuration widget applies
 | |
| 
 | |
| :return: The relation
 | |
| %End
 | |
| 
 | |
|     virtual void setNmRelation( const QgsRelation &nmRelation );
 | |
| %Docstring
 | |
| Set the nm relation for this widget.
 | |
| 
 | |
| :param nmRelation: The nm relation
 | |
| %End
 | |
| 
 | |
|     virtual QgsRelation nmRelation() const;
 | |
| %Docstring
 | |
| Returns the nm relation for which this configuration widget applies
 | |
| 
 | |
| :return: The nm relation
 | |
| %End
 | |
| 
 | |
| };
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| class QgsAbstractRelationEditorWidgetFactory
 | |
| {
 | |
| %Docstring(signature="appended")
 | |
| Factory class for creating relation widgets and their corresponding config widgets
 | |
| 
 | |
| .. versionadded:: 3.18
 | |
| %End
 | |
| 
 | |
| %TypeHeaderCode
 | |
| #include "qgsabstractrelationeditorwidget.h"
 | |
| %End
 | |
|   public:
 | |
|     QgsAbstractRelationEditorWidgetFactory();
 | |
| %Docstring
 | |
| Creates a new relation widget factory with given ``name``
 | |
| %End
 | |
| 
 | |
|     virtual ~QgsAbstractRelationEditorWidgetFactory();
 | |
| 
 | |
|     virtual QString type() const = 0;
 | |
| %Docstring
 | |
| Returns the machine readable identifier name of this widget type
 | |
| %End
 | |
| 
 | |
|     virtual QString name() const = 0;
 | |
| %Docstring
 | |
| Returns the human readable identifier name of this widget type
 | |
| %End
 | |
| 
 | |
|     virtual QgsAbstractRelationEditorWidget *create( const QVariantMap &config, QWidget *parent = 0 ) const = 0 /Factory/;
 | |
| %Docstring
 | |
| Override this in your implementation.
 | |
| Create a new relation widget. Call :py:func:`QgsEditorWidgetRegistry.create()`
 | |
| instead of calling this method directly.
 | |
| 
 | |
| :param config: The widget configuration to build the widget with
 | |
| :param parent: The parent for the wrapper class and any created widget.
 | |
| 
 | |
| :return: A new widget wrapper
 | |
| %End
 | |
| 
 | |
|     virtual QgsAbstractRelationEditorConfigWidget *configWidget( const QgsRelation &relation, QWidget *parent ) const = 0 /Factory/;
 | |
| %Docstring
 | |
| Override this in your implementation.
 | |
| Create a new configuration widget for this widget type.
 | |
| 
 | |
| :param relation: The relation for which the widget will be created
 | |
| :param parent: The parent widget of the created config widget
 | |
| 
 | |
| :return: A configuration widget
 | |
| %End
 | |
| };
 | |
| 
 | |
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/gui/qgsabstractrelationeditorwidget.h                            *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | |
|  ************************************************************************/
 |