16#ifndef QGSRELATIONEDITORWIDGET_H
17#define QGSRELATIONEDITORWIDGET_H
19#include "ui_qgsrelationeditorconfigwidgetbase.h"
29#include <QButtonGroup>
64 QgsFilteredSelectionManager( QgsVectorLayer *layer,
const QgsFeatureRequest &request, QObject *parent =
nullptr );
74 QgsFeatureRequest mRequest;
143 void setVisibleButtons(
const Buttons &buttons );
148 Buttons visibleButtons()
const;
160 void duplicateSelectedFeatures();
165 void unlinkSelectedFeatures();
170 void deleteSelectedFeatures();
175 void zoomToSelectedFeatures();
180 QVariantMap config() const override;
185 void setConfig( const QVariantMap &config ) override;
188 void parentFormValueChanged( const QString &attribute, const QVariant &newValue ) override;
191 void updateUi() override;
192 void beforeSetRelationFeature( const
QgsRelation &newRelation, const
QgsFeature &newFeature ) override;
193 void afterSetRelationFeature() override;
195 void afterSetRelations() override;
199 void updateButtons();
202 void addFeatureGeometry();
207 void showContextMenu( QgsActionMenu *menu,
QgsFeatureId fid );
208 void mapToolDeactivated();
209 void onDigitizingCompleted(
const QgsFeature &feature );
210 void onDigitizingCanceled();
211 void multiEditItemSelectionChanged();
215 void digitizingFinished();
217 enum class MultiEditFeatureType :
int
223 enum class MultiEditTreeWidgetRole :
int
225 FeatureType = Qt::UserRole + 1,
226 FeatureId = Qt::UserRole + 2
229 void initDualView( QgsVectorLayer *layer,
const QgsFeatureRequest &request );
230 void setMapTool( QgsMapTool *mapTool );
233 void updateUiSingleEdit();
234 void updateUiMultiEdit();
235 QTreeWidgetItem *createMultiEditTreeWidgetItem(
const QgsFeature &feature, QgsVectorLayer *layer, MultiEditFeatureType type );
237 QgsDualView *mDualView =
nullptr;
238 QPointer<QgsMessageBarItem> mMessageBarItem;
241 QToolButton *mToggleEditingButton =
nullptr;
242 QToolButton *mSaveEditsButton =
nullptr;
243 QToolButton *mAddFeatureButton =
nullptr;
244 QToolButton *mDuplicateFeatureButton =
nullptr;
245 QToolButton *mDeleteFeatureButton =
nullptr;
246 QToolButton *mLinkFeatureButton =
nullptr;
247 QToolButton *mUnlinkFeatureButton =
nullptr;
248 QToolButton *mZoomToFeatureButton =
nullptr;
249 QToolButton *mFormViewButton =
nullptr;
250 QToolButton *mTableViewButton =
nullptr;
251 QToolButton *mAddFeatureGeometryButton =
nullptr;
252 QLabel *mMultiEditInfoLabel =
nullptr;
253 QStackedWidget *mStackedWidget =
nullptr;
254 QWidget *mMultiEditStackedWidgetPage =
nullptr;
255 QTreeWidget *mMultiEditTreeWidget =
nullptr;
256 QObjectUniquePtr<QgsMapToolDigitizeFeature> mMapToolDigitize;
257 QButtonGroup *mViewModeButtonGroup =
nullptr;
258 QgsVectorLayerSelectionManager *mFeatureSelectionMgr =
nullptr;
260 Buttons mButtonsVisibility = Button::AllButtons;
261 bool mShowFirstFeature =
true;
262 bool mAllowAddChildFeatureWithNoGeometry =
true;
263 QString mFilterExpression;
265 QList<QTreeWidgetItem *> mMultiEditPreviousSelectedItems;
296 QVariantMap
config()
override;
326 QString
type()
const override;
328 QString
name()
const override;
Contains context information for attribute editor widgets.
This widget is used to show the attributes of a set of features of a QgsVectorLayer.
ViewMode
The view modes, in which this widget can present information.
@ AttributeEditor
Show a list of the features, where one can be chosen and the according attribute dialog will be prese...
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Is an interface class to abstract feature selection handling.
Represents a relationship between two vector layers.
Manages vector layer selections.
int selectedFeatureCount() override
Returns the number of features that are selected in this layer.
const QgsFeatureIds & selectedFeatureIds() const override
Returns reference to identifiers of selected features.
Represents a vector layer which manages a vector based dataset.
#define SIP_ENUM_BASETYPE(type)
QSet< QgsFeatureId > QgsFeatureIds
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features