QGIS API Documentation  3.20.0-Odense (decaadbb31)
qgsrelationreferencewidgetwrapper.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsrelationreferencewidgetwrapper.h
3  --------------------------------------
4  Date : 20.4.2013
5  Copyright : (C) 2013 Matthias Kuhn
6  Email : matthias at opengis dot ch
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSRELATIONREFERENCEWIDGETWRAPPER_H
17 #define QGSRELATIONREFERENCEWIDGETWRAPPER_H
18 
19 #include "qgseditorwidgetwrapper.h"
20 #include "qgis_sip.h"
21 #include "qgis_gui.h"
22 
24 class QgsMapCanvas;
25 class QgsMessageBar;
26 
44 {
45  Q_OBJECT
46  public:
47 
50  int fieldIdx,
51  QWidget *editor,
52  QgsMapCanvas *canvas,
53  QgsMessageBar *messageBar,
54  QWidget *parent SIP_TRANSFERTHIS = nullptr );
55 
56  QWidget *createWidget( QWidget *parent ) override;
57  void initWidget( QWidget *editor ) override;
58  QVariant value() const override;
59  bool valid() const override;
60  void showIndeterminateState() override;
61  QVariantList additionalFieldValues() const override;
62  QStringList additionalFields() const override;
63 
64  public slots:
65  void setEnabled( bool enabled ) override;
66 
67  private slots:
68  void foreignKeysChanged( const QVariantList &values );
69 
70  protected:
71  void updateConstraintWidgetStatus() override;
72 
73  private:
74  void updateValues( const QVariant &val, const QVariantList &additionalValues = QVariantList() ) override;
75 
76  QString mExpression;
77 
78  QgsRelationReferenceWidget *mWidget = nullptr;
79  QgsMapCanvas *mCanvas = nullptr;
80  QgsMessageBar *mMessageBar = nullptr;
81  bool mIndeterminateState;
82  int mBlockChanges = 0;
83 
84 };
85 
86 #endif // QGSRELATIONREFERENCEWIDGETWRAPPER_H
Manages an editor widget Widget and wrapper share the same parent.
virtual void updateConstraintWidgetStatus()
This should update the widget with a visual cue if a constraint status changed.
virtual QVariant value() const =0
Will be used to access the widget's value.
virtual QVariantList additionalFieldValues() const
Will be used to access the widget's values for potential additional fields handled by the widget.
virtual void showIndeterminateState()
Sets the widget to display in an indeterminate "mixed value" state.
virtual QStringList additionalFields() const
Returns the list of additional fields which the editor handles.
void setEnabled(bool enabled) override
Is used to enable or disable the edit functionality of the managed widget.
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:86
A bar for displaying non-blocking messages to the user.
Definition: qgsmessagebar.h:61
Represents a vector layer which manages a vector based data sets.
virtual bool valid() const =0
Returns true if the widget has been properly initialized.
virtual void initWidget(QWidget *editor)
This method should initialize the editor widget with runtime data.
virtual QWidget * createWidget(QWidget *parent)=0
This method should create a new widget with the provided parent.
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53