Skip to content

Commit 08fbf38

Browse files
elpasonyalldawson
authored andcommitted
Fix in-place support check for some more algs
1 parent 7b162b5 commit 08fbf38

File tree

6 files changed

+33
-0
lines changed

6 files changed

+33
-0
lines changed

python/plugins/processing/algs/qgis/SetMValue.py

+3
Original file line numberDiff line numberDiff line change
@@ -105,3 +105,6 @@ def processFeature(self, feature, context, feedback):
105105
feature.setGeometry(QgsGeometry(new_geom))
106106

107107
return [feature]
108+
109+
def supportInPlaceEdit(self, layer):
110+
return super().supportInPlaceEdit(layer) and QgsWkbTypes.hasM(layer.wkbType())

python/plugins/processing/algs/qgis/SetZValue.py

+3
Original file line numberDiff line numberDiff line change
@@ -105,3 +105,6 @@ def processFeature(self, feature, context, feedback):
105105
feature.setGeometry(QgsGeometry(new_geom))
106106

107107
return [feature]
108+
109+
def supportInPlaceEdit(self, layer):
110+
return super().supportInPlaceEdit(layer) and QgsWkbTypes.hasZ(layer.wkbType())

src/analysis/processing/qgsalgorithmfiltervertices.cpp

+15
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
***************************************************************************/
1717

1818
#include "qgsalgorithmfiltervertices.h"
19+
#include "qgsvectorlayer.h"
1920

2021
///@cond PRIVATE
2122

@@ -135,6 +136,13 @@ QgsFilterVerticesByM *QgsFilterVerticesByM::createInstance() const
135136
return new QgsFilterVerticesByM();
136137
}
137138

139+
bool QgsFilterVerticesByM::supportInPlaceEdit( const QgsVectorLayer *layer ) const
140+
{
141+
if ( ! QgsFilterVerticesAlgorithmBase::supportInPlaceEdit( layer ) )
142+
return false;
143+
return QgsWkbTypes::hasM( layer->wkbType() );
144+
}
145+
138146
QString QgsFilterVerticesByM::componentString() const
139147
{
140148
return QObject::tr( "m-value" );
@@ -174,6 +182,13 @@ QgsFilterVerticesByZ *QgsFilterVerticesByZ::createInstance() const
174182
return new QgsFilterVerticesByZ();
175183
}
176184

185+
bool QgsFilterVerticesByZ::supportInPlaceEdit( const QgsVectorLayer *layer ) const
186+
{
187+
if ( ! QgsFilterVerticesAlgorithmBase::supportInPlaceEdit( layer ) )
188+
return false;
189+
return QgsWkbTypes::hasZ( layer->wkbType() );
190+
}
191+
177192
QString QgsFilterVerticesByZ::componentString() const
178193
{
179194
return QObject::tr( "z-value" );

src/analysis/processing/qgsalgorithmfiltervertices.h

+3
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,13 @@ class QgsFilterVerticesByM : public QgsFilterVerticesAlgorithmBase
7272
QString displayName() const override;
7373
QStringList tags() const override;
7474
QgsFilterVerticesByM *createInstance() const override SIP_FACTORY;
75+
bool supportInPlaceEdit( const QgsVectorLayer *layer ) const override;
7576

7677
private:
7778

7879
QString componentString() const override;
7980
void filter( QgsGeometry &geometry, double min, double max ) const override;
81+
8082
};
8183

8284

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

97100
private:
98101

src/analysis/processing/qgsalgorithmpromotetomultipart.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
***************************************************************************/
1717

1818
#include "qgsalgorithmpromotetomultipart.h"
19+
#include "qgsvectorlayer.h"
1920

2021
///@cond PRIVATE
2122

@@ -65,6 +66,13 @@ QgsPromoteToMultipartAlgorithm *QgsPromoteToMultipartAlgorithm::createInstance()
6566
return new QgsPromoteToMultipartAlgorithm();
6667
}
6768

69+
bool QgsPromoteToMultipartAlgorithm::supportInPlaceEdit( const QgsVectorLayer *layer ) const
70+
{
71+
if ( ! QgsProcessingFeatureBasedAlgorithm::supportInPlaceEdit( layer ) )
72+
return false;
73+
return QgsWkbTypes::isMultiType( layer->wkbType() );
74+
}
75+
6876
QgsWkbTypes::Type QgsPromoteToMultipartAlgorithm::outputWkbType( QgsWkbTypes::Type inputWkbType ) const
6977
{
7078
return QgsWkbTypes::multiType( inputWkbType );

src/analysis/processing/qgsalgorithmpromotetomultipart.h

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class QgsPromoteToMultipartAlgorithm : public QgsProcessingFeatureBasedAlgorithm
4444
QString groupId() const override;
4545
QString shortHelpString() const override;
4646
QgsPromoteToMultipartAlgorithm *createInstance() const override SIP_FACTORY;
47+
bool supportInPlaceEdit( const QgsVectorLayer *layer ) const override;
4748

4849
protected:
4950
QString outputName() const override;

0 commit comments

Comments
 (0)