QGIS API Documentation  2.15.0-Master (972fc9f)
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
6  email : [email protected]
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 
20 #include "qgsfeature.h"
22 #include "qgsattributeform.h"
24 
25 #include <QDialog>
26 #include <QMenuBar>
27 #include <QGridLayout>
28 
29 class QgsDistanceArea;
30 class QgsHighlight;
31 
32 class GUI_EXPORT QgsAttributeDialog : public QDialog
33 {
34  Q_OBJECT
35 
36  public:
49  Q_DECL_DEPRECATED QgsAttributeDialog( QgsVectorLayer *vl, QgsFeature *thepFeature, bool featureOwner, const QgsDistanceArea& myDa, QWidget* parent = nullptr, bool showDialogButtons = true );
50 
62  QgsAttributeDialog( QgsVectorLayer *vl, QgsFeature *thepFeature, bool featureOwner, QWidget* parent = nullptr, bool showDialogButtons = true, const QgsAttributeEditorContext& context = QgsAttributeEditorContext() );
63 
64  ~QgsAttributeDialog();
65 
69  void saveGeometry();
70 
74  void restoreGeometry();
75 
80  void setHighlight( QgsHighlight *h );
81 
89  Q_DECL_DEPRECATED QDialog *dialog() { return this; }
90 
91  QgsAttributeForm *attributeForm() { return mAttributeForm; }
92 
93  const QgsFeature *feature() { return &mAttributeForm->feature(); }
94 
100  bool editable() { return mAttributeForm->editable(); }
101 
110  Q_DECL_DEPRECATED void setIsAddDialog( bool isAddDialog ) { mAttributeForm->setMode( isAddDialog ? QgsAttributeForm::AddFeatureMode : QgsAttributeForm::SingleEditMode ); }
111 
117  void setMode( QgsAttributeForm::Mode mode ) { mAttributeForm->setMode( mode ); }
118 
124  void setEditCommandMessage( const QString& message ) { mAttributeForm->setEditCommandMessage( message ); }
125 
133  virtual bool event( QEvent *e ) override;
134 
135  public slots:
136  void accept() override;
137  void reject() override;
138 
141  void show( bool autoDelete = true );
142 
143  private:
144  void init( QgsVectorLayer* layer, QgsFeature* feature, const QgsAttributeEditorContext& context, bool showDialogButtons );
145 
146  QString mSettingsPath;
147  // Used to sync multiple widgets for the same field
148  QgsHighlight *mHighlight;
149  int mFormNr;
150  bool mShowDialogButtons;
151  QString mReturnvarname;
152  QgsAttributeForm* mAttributeForm;
153  QgsFeature *mOwnedFeature;
154 
155  QgsTrackedVectorLayerTools mTrackedVectorLayerTools;
156 
157  // true if this dialog is editable
158  bool mEditable;
159 
160  static int sFormCounter;
161  static QString sSettingsPath;
162 
163 };
164 
165 #endif
virtual bool event(QEvent *e)
virtual void reject()
Q_DECL_DEPRECATED void setIsAddDialog(bool isAddDialog)
Toggles the form mode between edit feature and add feature.
This class contains context information for attribute editor widgets.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Definition: qgsfeature.h:187
bool editable()
Is this dialog editable?
void setEditCommandMessage(const QString &message)
Sets the edit command message (Undo) that will be used when the dialog is accepted.
Q_DECL_DEPRECATED QDialog * dialog()
Returns reference to self.
bool restoreGeometry(const QByteArray &geometry)
A class for highlight features on the map.
Definition: qgshighlight.h:36
virtual void accept()
QgsAttributeForm * attributeForm()
General purpose distance and area calculator.
QByteArray saveGeometry() const
const QgsFeature * feature()
void show()
void setMode(QgsAttributeForm::Mode mode)
Toggles the form mode.
Represents a vector layer which manages a vector based data sets.