QGIS API Documentation  2.12.0-Lyon
qgsrelationeditorwidget.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsrelationeditor.h
3  --------------------------------------
4  Date : 17.5.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 QGSRELATIONEDITOR_H
17 #define QGSRELATIONEDITOR_H
18 
19 #include <QWidget>
20 #include <QToolButton>
21 #include <QButtonGroup>
22 #include <QGridLayout>
23 
25 #include "qgscollapsiblegroupbox.h"
26 #include "qgsdualview.h"
27 #include "qgsrelation.h"
28 
29 class QgsFeature;
31 class QgsVectorLayer;
33 
35 {
36  Q_OBJECT
37  Q_PROPERTY( QString qgisRelation READ qgisRelation WRITE setQgisRelation )
38  Q_PROPERTY( QgsDualView::ViewMode viewMode READ viewMode WRITE setViewMode )
39 
40  public:
44  QgsRelationEditorWidget( QWidget* parent = NULL );
45 
47  void setViewMode( QgsDualView::ViewMode mode );
48  QgsDualView::ViewMode viewMode() {return mViewMode;}
49 
52  void setQgisRelation( const QString& qgisRelationId );
53  QString qgisRelation() { return mRelationId; } //property( "qgisRelation" ).toString()
54 
55  void setRelationFeature( const QgsRelation& relation, const QgsFeature& feature );
56 
57  void setEditorContext( const QgsAttributeEditorContext& context );
58 
59  private slots:
60  void setViewMode( int mode ) {setViewMode( static_cast<QgsDualView::ViewMode>( mode ) );}
61  void referencingLayerEditingToggled();
62 
63  void addFeature();
64  void linkFeature();
65  void deleteFeature();
66  void unlinkFeature();
67  void saveEdits();
68  void toggleEditing( bool state );
69  void onCollapsedStateChanged( bool collapsed );
70 
71  private:
72  QgsDualView* mDualView;
73  QgsDualView::ViewMode mViewMode;
74  QgsGenericFeatureSelectionManager* mFeatureSelectionMgr;
75  QgsAttributeEditorContext mEditorContext;
76  QgsRelation mRelation;
77  QString mRelationId;
78  QgsFeature mFeature;
79 
80  QToolButton* mToggleEditingButton;
81  QToolButton* mSaveEditsButton;
82  QToolButton* mAddFeatureButton;
83  QToolButton* mDeleteFeatureButton;
84  QToolButton* mLinkFeatureButton;
85  QToolButton* mUnlinkFeatureButton;
86  QToolButton* mFormViewButton;
87  QToolButton* mTableViewButton;
88  QGridLayout* mRelationLayout;
89  QButtonGroup* mViewModeButtonGroup;
90 
91  bool mInitialized;
92 };
93 
94 #endif // QGSRELATIONEDITOR_H
Methods in this class are used to handle basic operations on vector layers.
A groupbox that collapses/expands when toggled and can save its collapsed and checked states...
This class contains context information for attribute editor widgets.
ViewMode
The view modes, in which this widget can present information.
Definition: qgsdualview.h:53
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Definition: qgsfeature.h:176
This selection manager synchronizes a local set of selected features with an attribute table...
Represents a vector layer which manages a vector based data sets.
This widget is used to show the attributes of a set of features of a QgsVectorLayer.
Definition: qgsdualview.h:41