Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fix in-place support check for some more algs
  • Loading branch information
elpaso authored and nyalldawson committed Sep 14, 2018
1 parent 7b162b5 commit 08fbf38
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 0 deletions.
3 changes: 3 additions & 0 deletions python/plugins/processing/algs/qgis/SetMValue.py
Expand Up @@ -105,3 +105,6 @@ def processFeature(self, feature, context, feedback):
feature.setGeometry(QgsGeometry(new_geom))

return [feature]

def supportInPlaceEdit(self, layer):
return super().supportInPlaceEdit(layer) and QgsWkbTypes.hasM(layer.wkbType())
3 changes: 3 additions & 0 deletions python/plugins/processing/algs/qgis/SetZValue.py
Expand Up @@ -105,3 +105,6 @@ def processFeature(self, feature, context, feedback):
feature.setGeometry(QgsGeometry(new_geom))

return [feature]

def supportInPlaceEdit(self, layer):
return super().supportInPlaceEdit(layer) and QgsWkbTypes.hasZ(layer.wkbType())
15 changes: 15 additions & 0 deletions src/analysis/processing/qgsalgorithmfiltervertices.cpp
Expand Up @@ -16,6 +16,7 @@
***************************************************************************/

#include "qgsalgorithmfiltervertices.h"
#include "qgsvectorlayer.h"

///@cond PRIVATE

Expand Down Expand Up @@ -135,6 +136,13 @@ QgsFilterVerticesByM *QgsFilterVerticesByM::createInstance() const
return new QgsFilterVerticesByM();
}

bool QgsFilterVerticesByM::supportInPlaceEdit( const QgsVectorLayer *layer ) const
{
if ( ! QgsFilterVerticesAlgorithmBase::supportInPlaceEdit( layer ) )
return false;
return QgsWkbTypes::hasM( layer->wkbType() );
}

QString QgsFilterVerticesByM::componentString() const
{
return QObject::tr( "m-value" );
Expand Down Expand Up @@ -174,6 +182,13 @@ QgsFilterVerticesByZ *QgsFilterVerticesByZ::createInstance() const
return new QgsFilterVerticesByZ();
}

bool QgsFilterVerticesByZ::supportInPlaceEdit( const QgsVectorLayer *layer ) const
{
if ( ! QgsFilterVerticesAlgorithmBase::supportInPlaceEdit( layer ) )
return false;
return QgsWkbTypes::hasZ( layer->wkbType() );
}

QString QgsFilterVerticesByZ::componentString() const
{
return QObject::tr( "z-value" );
Expand Down
3 changes: 3 additions & 0 deletions src/analysis/processing/qgsalgorithmfiltervertices.h
Expand Up @@ -72,11 +72,13 @@ class QgsFilterVerticesByM : public QgsFilterVerticesAlgorithmBase
QString displayName() const override;
QStringList tags() const override;
QgsFilterVerticesByM *createInstance() const override SIP_FACTORY;
bool supportInPlaceEdit( const QgsVectorLayer *layer ) const override;

private:

QString componentString() const override;
void filter( QgsGeometry &geometry, double min, double max ) const override;

};


Expand All @@ -93,6 +95,7 @@ class QgsFilterVerticesByZ : public QgsFilterVerticesAlgorithmBase
QString displayName() const override;
QStringList tags() const override;
QgsFilterVerticesByZ *createInstance() const override SIP_FACTORY;
bool supportInPlaceEdit( const QgsVectorLayer *layer ) const override;

private:

Expand Down
8 changes: 8 additions & 0 deletions src/analysis/processing/qgsalgorithmpromotetomultipart.cpp
Expand Up @@ -16,6 +16,7 @@
***************************************************************************/

#include "qgsalgorithmpromotetomultipart.h"
#include "qgsvectorlayer.h"

///@cond PRIVATE

Expand Down Expand Up @@ -65,6 +66,13 @@ QgsPromoteToMultipartAlgorithm *QgsPromoteToMultipartAlgorithm::createInstance()
return new QgsPromoteToMultipartAlgorithm();
}

bool QgsPromoteToMultipartAlgorithm::supportInPlaceEdit( const QgsVectorLayer *layer ) const
{
if ( ! QgsProcessingFeatureBasedAlgorithm::supportInPlaceEdit( layer ) )
return false;
return QgsWkbTypes::isMultiType( layer->wkbType() );
}

QgsWkbTypes::Type QgsPromoteToMultipartAlgorithm::outputWkbType( QgsWkbTypes::Type inputWkbType ) const
{
return QgsWkbTypes::multiType( inputWkbType );
Expand Down
1 change: 1 addition & 0 deletions src/analysis/processing/qgsalgorithmpromotetomultipart.h
Expand Up @@ -44,6 +44,7 @@ class QgsPromoteToMultipartAlgorithm : public QgsProcessingFeatureBasedAlgorithm
QString groupId() const override;
QString shortHelpString() const override;
QgsPromoteToMultipartAlgorithm *createInstance() const override SIP_FACTORY;
bool supportInPlaceEdit( const QgsVectorLayer *layer ) const override;

protected:
QString outputName() const override;
Expand Down

0 comments on commit 08fbf38

Please sign in to comment.