QGIS API Documentation 4.0.0-Norrköping (1ddcee3d0e4)
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:
40 QgsVectorLayerUndoPassthroughCommand( QgsVectorLayerEditBuffer *buffer, const QString &text, bool autocreate = true );
41
45 bool hasError() const { return mHasError; }
46
47 protected:
53 bool rollBackToSavePoint();
54
61 bool setSavePoint( const QString &savePointId = QString() );
62
66 void setError();
67
72 void setErrorMessage( const QString &errorMessage );
73
78 QString errorMessage() const;
79
80 private:
81 QString mError;
82 QString mSavePointId;
83 bool mHasError;
84 bool mRecreateSavePoint;
85};
86
92
94{
95 public:
102
103 void undo() override;
104 void redo() override;
105
109 QgsFeatureList features() const { return mFeatures; }
110
111 private:
112 QgsFeatureList mFeatures;
113 QgsFeatureList mInitialFeatures;
114};
115
116
122
124{
125 public:
132
133 void undo() override;
134 void redo() override;
135
136 private:
137 const QgsFeatureIds mFids;
138 // Keeps track of the deleted features that belong to the added pool
139 QgsFeatureMap mDeletedNewFeatures;
140};
141
147
149{
150 public:
158
159 void undo() override;
160 void redo() override;
161
162 int id() const override { return 1; }
163 bool mergeWith( const QUndoCommand *other ) override;
164
165 private:
166 QgsFeatureId mFid;
167 mutable QgsGeometry mNewGeom;
168 QgsGeometry mOldGeom;
169 bool mFirstChange = true;
170};
171
177
179{
180 public:
189
190 void undo() override;
191 void redo() override;
192
193 private:
194 QgsFeatureId mFid;
195 const int mFieldIndex;
196 const QVariant mNewValue;
197 QVariant mOldValue;
198 bool mFirstChange = true;
199};
200
206
208{
209 public:
218 QgsVectorLayerEditBuffer *buffer SIP_TRANSFER, QgsFeatureId fid, const QgsAttributeMap &newValues, const QgsAttributeMap &oldValues = QgsAttributeMap()
219 );
220
221 void undo() override;
222 void redo() override;
223
224 private:
225 QgsFeatureId mFid;
226 const QgsAttributeMap mNewValues;
227 QgsAttributeMap mOldValues;
228 QMap<int, bool> mFirstChanges;
229};
230
236
238{
239 public:
246
247 void undo() override;
248 void redo() override;
249
250 private:
251 const QgsField mField;
252};
253
259
261{
262 public:
269
270 void undo() override;
271 void redo() override;
272
273 private:
274 const QgsField mField;
275 const int mOriginalFieldIndex;
276};
277
283
285{
286 public:
294
295 void undo() override;
296 void redo() override;
297
298 private:
299 const int mAttr;
300 const QString mNewName;
301 const QString mOldName;
302};
303
309
311{
312 public:
320 QgsVectorLayerUndoPassthroughCommandUpdate( QgsVectorLayerEditBuffer *buffer SIP_TRANSFER, QgsTransaction *transaction, const QString &sql, const QString &name );
321
322 void undo() override;
323 void redo() override;
324
325 private:
326 QgsTransaction *mTransaction = nullptr;
327 QString mSql;
328 bool mUndone = false;
329};
330
331#endif
Encapsulate a field in an attribute table or data source.
Definition qgsfield.h:56
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:35
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