mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-13 00:03:09 -04:00
Expose changed attributes in QgsFeatureAction and QgsVectorLayerTools
This commit is contained in:
parent
66b9b0dd10
commit
d2b506cccc
@ -13,8 +13,7 @@ class QgsVectorLayerTools
|
||||
* @param defaultGeometry A default geometry to add to the feature
|
||||
* @return True in case of success, False if the operation failed/was aborted
|
||||
*/
|
||||
virtual bool addFeature( QgsVectorLayer* layer, const QgsAttributeMap& defaultValues = QgsAttributeMap(), const QgsGeometry& defaultGeometry = QgsGeometry() ) const = 0;
|
||||
|
||||
virtual bool addFeature( QgsVectorLayer* laye, const QgsAttributeMap& defaultValues = QgsAttributeMap(), const QgsGeometry& defaultGeometry = QgsGeometry(), QgsFeature* feature /Out/ = 0 ) const = 0;
|
||||
|
||||
/**
|
||||
* This will be called, whenever a vector layer should be switched to edit mode. Check the providers
|
||||
|
@ -218,6 +218,9 @@ void QgsFeatureAction::onFeatureSaved( const QgsFeature& feature )
|
||||
Q_UNUSED( form ) // only used for Q_ASSERT
|
||||
Q_ASSERT( form );
|
||||
|
||||
// Assign provider generated values
|
||||
mFeature = feature;
|
||||
|
||||
mFeatureSaved = true;
|
||||
|
||||
QSettings settings;
|
||||
|
@ -32,12 +32,19 @@ QgsGuiVectorLayerTools::QgsGuiVectorLayerTools()
|
||||
: QObject( NULL )
|
||||
{}
|
||||
|
||||
bool QgsGuiVectorLayerTools::addFeature( QgsVectorLayer* layer, const QgsAttributeMap& defaultValues, const QgsGeometry& defaultGeometry ) const
|
||||
bool QgsGuiVectorLayerTools::addFeature( QgsVectorLayer* layer, const QgsAttributeMap& defaultValues, const QgsGeometry& defaultGeometry, QgsFeature* feat ) const
|
||||
{
|
||||
QgsFeature f;
|
||||
f.setGeometry( defaultGeometry );
|
||||
QgsFeatureAction a( tr( "Add feature" ), f, layer );
|
||||
return a.addFeature( defaultValues );
|
||||
QgsFeature* f = feat;
|
||||
if ( !feat )
|
||||
f = new QgsFeature();
|
||||
|
||||
feat->setGeometry( defaultGeometry );
|
||||
QgsFeatureAction a( tr( "Add feature" ), *f, layer );
|
||||
bool added = a.addFeature( defaultValues );
|
||||
if ( !feat )
|
||||
delete f;
|
||||
|
||||
return added;
|
||||
}
|
||||
|
||||
bool QgsGuiVectorLayerTools::startEditing( QgsVectorLayer* layer ) const
|
||||
|
@ -39,7 +39,7 @@ class QgsGuiVectorLayerTools : public QObject, public QgsVectorLayerTools
|
||||
*
|
||||
* @return True in case of success, False if the operation failed/was aborted
|
||||
*/
|
||||
bool addFeature( QgsVectorLayer *layer, const QgsAttributeMap& defaultValues, const QgsGeometry &defaultGeometry ) const override;
|
||||
bool addFeature( QgsVectorLayer *layer, const QgsAttributeMap& defaultValues, const QgsGeometry &defaultGeometry, QgsFeature* feat = 0 ) const override;
|
||||
|
||||
/**
|
||||
* This should be called, whenever a vector layer should be switched to edit mode. If successful
|
||||
|
@ -45,10 +45,10 @@ class GUI_EXPORT QgsVectorLayerTools
|
||||
* @param layer The layer to which the feature should be added
|
||||
* @param defaultValues Default values for the feature to add
|
||||
* @param defaultGeometry A default geometry to add to the feature
|
||||
* @param feature Updated feature after adding will be written back to this
|
||||
* @return True in case of success, False if the operation failed/was aborted
|
||||
*/
|
||||
virtual bool addFeature( QgsVectorLayer* layer, const QgsAttributeMap& defaultValues = QgsAttributeMap(), const QgsGeometry& defaultGeometry = QgsGeometry() ) const = 0;
|
||||
|
||||
virtual bool addFeature( QgsVectorLayer* layer, const QgsAttributeMap& defaultValues = QgsAttributeMap(), const QgsGeometry& defaultGeometry = QgsGeometry(), QgsFeature* feature = 0 ) const = 0;
|
||||
|
||||
/**
|
||||
* This will be called, whenever a vector layer should be switched to edit mode. Check the providers
|
||||
|
Loading…
x
Reference in New Issue
Block a user