QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
qgsvectorlayerundopassthroughcommand.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsvectorlayerundopassthroughcommand.h
3 ---------------------
4 begin : June 2017
5 copyright : (C) 2017 by Vincent Mora
6 email : vincent dot mora at osalndia dot com
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 QGSVECTORLAYERUNDOPASSTHROUGHCOMMAND_H
17#define QGSVECTORLAYERUNDOPASSTHROUGHCOMMAND_H
18
21
22class QgsTransaction;
23
29
30
32{
33 public:
34
41 QgsVectorLayerUndoPassthroughCommand( QgsVectorLayerEditBuffer *buffer, const QString &text, bool autocreate = true );
42
46 bool hasError() const { return mHasError; }
47
48 protected:
49
55 bool rollBackToSavePoint();
56
63 bool setSavePoint( const QString &savePointId = QString() );
64
68 void setError();
69
74 void setErrorMessage( const QString &errorMessage );
75
80 QString errorMessage() const;
81
82 private:
83 QString mError;
84 QString mSavePointId;
85 bool mHasError;
86 bool mRecreateSavePoint;
87};
88
94
96{
97 public:
98
105
106 void undo() override;
107 void redo() override;
108
112 QgsFeatureList features() const { return mFeatures; }
113
114 private:
115 QgsFeatureList mFeatures;
116 QgsFeatureList mInitialFeatures;
117};
118
119
125
127{
128 public:
129
136
137 void undo() override;
138 void redo() override;
139
140 private:
141 const QgsFeatureIds mFids;
142 // Keeps track of the deleted features that belong to the added pool
143 QgsFeatureMap mDeletedNewFeatures;
144};
145
151
153{
154 public:
155
163
164 void undo() override;
165 void redo() override;
166
167 int id() const override { return 1; }
168 bool mergeWith( const QUndoCommand *other ) override;
169
170 private:
171 QgsFeatureId mFid;
172 mutable QgsGeometry mNewGeom;
173 QgsGeometry mOldGeom;
174 bool mFirstChange = true;
175};
176
182
184{
185 public:
186
195
196 void undo() override;
197 void redo() override;
198
199 private:
200 QgsFeatureId mFid;
201 const int mFieldIndex;
202 const QVariant mNewValue;
203 QVariant mOldValue;
204 bool mFirstChange = true;
205};
206
212
214{
215 public:
216
225
226 void undo() override;
227 void redo() override;
228
229 private:
230 QgsFeatureId mFid;
231 const QgsAttributeMap mNewValues;
232 QgsAttributeMap mOldValues;
233 QMap<int, bool> mFirstChanges;
234};
235
241
243{
244 public:
245
252
253 void undo() override;
254 void redo() override;
255
256 private:
257 const QgsField mField;
258};
259
265
267{
268 public:
269
276
277 void undo() override;
278 void redo() override;
279
280 private:
281 const QgsField mField;
282 const int mOriginalFieldIndex;
283};
284
290
292{
293 public:
294
302
303 void undo() override;
304 void redo() override;
305
306 private:
307 const int mAttr;
308 const QString mNewName;
309 const QString mOldName;
310};
311
317
319{
320 public:
321
329 QgsVectorLayerUndoPassthroughCommandUpdate( QgsVectorLayerEditBuffer *buffer SIP_TRANSFER, QgsTransaction *transaction, const QString &sql, const QString &name );
330
331 void undo() override;
332 void redo() override;
333
334 private:
335 QgsTransaction *mTransaction = nullptr;
336 QString mSql;
337 bool mUndone = false;
338};
339
340#endif
Encapsulate a field in an attribute table or data source.
Definition qgsfield.h:54
A geometry is the spatial representation of a feature.
Allows creation of a multi-layer database-side transaction.
Stores queued vector layer edit operations prior to committing changes to the layer's data provider.
bool mergeWith(const QUndoCommand *) override
QgsVectorLayerUndoCommand(QgsVectorLayerEditBuffer *buffer)
Constructor for QgsVectorLayerUndoCommand.
QgsVectorLayerUndoPassthroughCommandAddAttribute(QgsVectorLayerEditBuffer *buffer, const QgsField &field)
Constructor for QgsVectorLayerUndoPassthroughCommandAddAttribute.
QgsFeatureList features() const
List of features (added feaures can be modified by default values from database).
QgsVectorLayerUndoPassthroughCommandAddFeatures(QgsVectorLayerEditBuffer *buffer, QgsFeatureList &features)
Constructor for QgsVectorLayerUndoPassthroughCommandAddFeatures.
QgsVectorLayerUndoPassthroughCommandChangeAttribute(QgsVectorLayerEditBuffer *buffer, QgsFeatureId fid, int field, const QVariant &newValue)
Constructor for QgsVectorLayerUndoPassthroughCommandChangeAttribute.
QgsVectorLayerUndoPassthroughCommandChangeAttributes(QgsVectorLayerEditBuffer *buffer, QgsFeatureId fid, const QgsAttributeMap &newValues, const QgsAttributeMap &oldValues=QgsAttributeMap())
Constructor for QgsVectorLayerUndoPassthroughCommandChangeAttributes.
QgsVectorLayerUndoPassthroughCommandChangeGeometry(QgsVectorLayerEditBuffer *buffer, QgsFeatureId fid, const QgsGeometry &geom)
Constructor for QgsVectorLayerUndoPassthroughCommandChangeGeometry.
QgsVectorLayerUndoPassthroughCommandDeleteAttribute(QgsVectorLayerEditBuffer *buffer, int attr)
Constructor for QgsVectorLayerUndoCommandDeleteAttribute.
QgsVectorLayerUndoPassthroughCommandDeleteFeatures(QgsVectorLayerEditBuffer *buffer, const QgsFeatureIds &fids)
Constructor for QgsVectorLayerUndoPassthroughCommandDeleteFeatures.
QgsVectorLayerUndoPassthroughCommandRenameAttribute(QgsVectorLayerEditBuffer *buffer, int attr, const QString &newName)
Constructor for QgsVectorLayerUndoCommandRenameAttribute.
QgsVectorLayerUndoPassthroughCommandUpdate(QgsVectorLayerEditBuffer *buffer, QgsTransaction *transaction, const QString &sql, const QString &name)
Constructor for QgsVectorLayerUndoCommandUpdate.
QgsVectorLayerUndoPassthroughCommand(QgsVectorLayerEditBuffer *buffer, const QString &text, bool autocreate=true)
Constructor for QgsVectorLayerUndoPassthroughCommand.
#define SIP_TRANSFER
Definition qgis_sip.h:36
QMap< int, QVariant > QgsAttributeMap
QList< QgsFeature > QgsFeatureList
QSet< QgsFeatureId > QgsFeatureIds
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features
QMap< QgsFeatureId, QgsFeature > QgsFeatureMap