QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
qgstrackedvectorlayertools.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgstrackedvectorlayertools.cpp - QgsTrackedVectorLayerTools
3
4 ---------------------
5 begin : 16.5.2016
6 copyright : (C) 2016 by Matthias Kuhn, OPENGIS.ch
8 ***************************************************************************
9 * *
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. *
14 * *
15 ***************************************************************************/
16
18
19#include "qgsvectorlayer.h"
21
22#include "moc_qgstrackedvectorlayertools.cpp"
23
24bool QgsTrackedVectorLayerTools::addFeatureV2( QgsVectorLayer *layer, const QgsAttributeMap &defaultValues, const QgsGeometry &defaultGeometry, QgsFeature *feature, const QgsVectorLayerToolsContext &context ) const
25{
26 QgsFeature *f = feature;
27 if ( !feature )
28 f = new QgsFeature();
29
31 if ( mBackend->addFeatureV2( layer, defaultValues, defaultGeometry, f, context ) )
32 {
33 mAddedFeatures[layer].insert( f->id() );
34 if ( !feature )
35 delete f;
36 return true;
37 }
38 else
39 {
40 if ( !feature )
41 delete f;
42 return false;
43 }
44}
45
47{
48 return mBackend->startEditing( layer );
49}
50
51bool QgsTrackedVectorLayerTools::stopEditing( QgsVectorLayer *layer, bool allowCancel ) const
52{
53 return mBackend->stopEditing( layer, allowCancel );
54}
55
57{
58 return mBackend->saveEdits( layer );
59}
60
61bool QgsTrackedVectorLayerTools::copyMoveFeatures( QgsVectorLayer *layer, QgsFeatureRequest &request, double dx, double dy, QString *errorMsg, const bool topologicalEditing, QgsVectorLayer *topologicalLayer, QString *childrenInfoMsg ) const
62{
63 return mBackend->copyMoveFeatures( layer, request, dx, dy, errorMsg, topologicalEditing, topologicalLayer, childrenInfoMsg );
64}
65
67{
68 mBackend = tools;
69}
70
72{
73 QMapIterator<QgsVectorLayer *, QgsFeatureIds> it( mAddedFeatures );
74 while ( it.hasNext() )
75 {
76 it.next();
77 it.key()->deleteFeatures( it.value() );
78 }
79
80 mAddedFeatures.clear();
81}
Wraps a request for features to a vector layer (or directly its vector data provider).
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition qgsfeature.h:58
QgsFeatureId id
Definition qgsfeature.h:66
A geometry is the spatial representation of a feature.
bool startEditing(QgsVectorLayer *layer) const override
This will be called, whenever a vector layer should be switched to edit mode.
bool copyMoveFeatures(QgsVectorLayer *layer, QgsFeatureRequest &request, double dx=0, double dy=0, QString *errorMsg=nullptr, const bool topologicalEditing=false, QgsVectorLayer *topologicalLayer=nullptr, QString *childrenInfoMsg=nullptr) const override
Copy and move features with defined translation.
bool addFeatureV2(QgsVectorLayer *layer, const QgsAttributeMap &defaultValues, const QgsGeometry &defaultGeometry, QgsFeature *feature, const QgsVectorLayerToolsContext &context) const override
This method calls the addFeature method of the backend QgsVectorLayerTools.
void setVectorLayerTools(const QgsVectorLayerTools *tools)
Set the vector layer tools that will be used to interact with the data.
void rollback()
Delete all features which have been added via this object.
bool stopEditing(QgsVectorLayer *layer, bool allowCancel) const override
Will be called, when an editing session is ended and the features should be committed.
bool saveEdits(QgsVectorLayer *layer) const override
Should be called, when the features should be committed but the editing session is not ended.
Contains settings which reflect the context in which vector layer tool operations should be considere...
bool forceSuppressFormPopup() const
Returns force suppress form popup status.
void setForceSuppressFormPopup(bool forceSuppressFormPopup)
Sets force suppress form popup status to forceSuppressFormPopup.
Represents a vector layer which manages a vector based dataset.
QMap< int, QVariant > QgsAttributeMap