QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
qgsattributedialog.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsattributedialog.h - description
3 -------------------
4 begin : October 2004
5 copyright : (C) 2004 by Marco Hugentobler
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17#ifndef QGSATTRIBUTEDIALOG_H
18#define QGSATTRIBUTEDIALOG_H
19
21#include "qgis_sip.h"
22#include "qgsattributeform.h"
24#include "qgsactionmenu.h"
25
26#include <QDialog>
27#include <QMenuBar>
28#include <QGridLayout>
29#include "qgis_gui.h"
30
31class QgsHighlight;
32
37class GUI_EXPORT QgsAttributeDialog : public QDialog
38{
39 Q_OBJECT
40
41 public:
42
54 QgsAttributeDialog( QgsVectorLayer *vl, QgsFeature *thepFeature, bool featureOwner, QWidget *parent SIP_TRANSFERTHIS = nullptr, bool showDialogButtons = true, const QgsAttributeEditorContext &context = QgsAttributeEditorContext() );
55
56 ~QgsAttributeDialog() override;
57
62 void setHighlight( QgsHighlight *h );
63
64 QgsAttributeForm *attributeForm() { return mAttributeForm; }
65
66 const QgsFeature *feature() { return &mAttributeForm->feature(); }
67
73 bool editable() { return mAttributeForm->editable(); }
74
80 void setMode( QgsAttributeEditorContext::Mode mode );
81
87 void setEditCommandMessage( const QString &message ) { mAttributeForm->setEditCommandMessage( message ); }
88
96 bool event( QEvent *e ) override;
97
104 void setExtraContextScope( QgsExpressionContextScope *extraScope SIP_TRANSFER );
105
106 public slots:
107 void accept() override;
108 void reject() override;
109
111 void show();
112
113 private:
114 void init( QgsVectorLayer *layer, QgsFeature *feature, const QgsAttributeEditorContext &context, bool showDialogButtons );
115
116 QString mSettingsPath;
117 // Used to sync multiple widgets for the same field
118 QgsHighlight *mHighlight = nullptr;
119 int mFormNr;
120 bool mShowDialogButtons;
121 QString mReturnvarname;
122 QgsAttributeForm *mAttributeForm = nullptr;
123 QgsFeature *mOwnedFeature = nullptr;
124 QgsMessageBar *mMessageBar = nullptr;
125
126 QgsTrackedVectorLayerTools mTrackedVectorLayerTools;
127
128 // true if this dialog is editable
129 bool mEditable;
130
131 QgsActionMenu *mMenu;
132
133 static int sFormCounter;
134
135 void saveGeometry();
136 void restoreGeometry();
137};
138
139#endif
This class is a menu that is populated automatically with the actions defined for a given layer.
Definition: qgsactionmenu.h:38
const QgsFeature * feature()
QgsAttributeForm * attributeForm()
void setEditCommandMessage(const QString &message)
Sets the edit command message (Undo) that will be used when the dialog is accepted.
bool editable()
Is this dialog editable?
This class contains context information for attribute editor widgets.
Single scope for storing variables and functions for use within a QgsExpressionContext.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:56
A class for highlight features on the map.
Definition: qgshighlight.h:62
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.
bool restoreGeometry(QWidget *widget, const QString &keyName)
Restore the wigget geometry from settings.
void saveGeometry(QWidget *widget, const QString &keyName)
Save the wigget geometry into settings.
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
#define SIP_TRANSFER
Definition: qgis_sip.h:36