Skip to content

Commit 8951e15

Browse files
committedSep 21, 2018
Difference and split with lines can be used in in-place mode
1 parent b4883ee commit 8951e15

File tree

4 files changed

+38
-3
lines changed

4 files changed

+38
-3
lines changed
 

‎src/analysis/processing/qgsalgorithmdifference.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "qgsalgorithmdifference.h"
1717

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

2021
///@cond PRIVATE
2122

@@ -51,6 +52,22 @@ QString QgsDifferenceAlgorithm::shortHelpString() const
5152
"be manually updated." );
5253
}
5354

55+
bool QgsDifferenceAlgorithm::supportInPlaceEdit( const QgsMapLayer *l ) const
56+
{
57+
const QgsVectorLayer *layer = qobject_cast< const QgsVectorLayer * >( l );
58+
if ( !layer )
59+
return false;
60+
61+
return layer->isSpatial();
62+
}
63+
64+
QgsProcessingAlgorithm::Flags QgsDifferenceAlgorithm::flags() const
65+
{
66+
Flags f = QgsProcessingAlgorithm::flags();
67+
f |= QgsProcessingAlgorithm::FlagSupportsInPlaceEdits;
68+
return f;
69+
}
70+
5471
QgsProcessingAlgorithm *QgsDifferenceAlgorithm::createInstance() const
5572
{
5673
return new QgsDifferenceAlgorithm();

‎src/analysis/processing/qgsalgorithmdifference.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ class QgsDifferenceAlgorithm : public QgsProcessingAlgorithm
3333
QString group() const override;
3434
QString groupId() const override;
3535
QString shortHelpString() const override;
36-
36+
bool supportInPlaceEdit( const QgsMapLayer *layer ) const override;
37+
QgsProcessingAlgorithm::Flags flags() const override;
3738
protected:
3839
QgsProcessingAlgorithm *createInstance() const override;
3940
void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override;

‎src/analysis/processing/qgsalgorithmsplitwithlines.cpp

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
#include "qgsalgorithmsplitwithlines.h"
1919
#include "qgsgeometryengine.h"
20-
20+
#include "qgsvectorlayer.h"
2121
///@cond PRIVATE
2222

2323
QString QgsSplitWithLinesAlgorithm::name() const
@@ -65,6 +65,22 @@ QgsSplitWithLinesAlgorithm *QgsSplitWithLinesAlgorithm::createInstance() const
6565
return new QgsSplitWithLinesAlgorithm();
6666
}
6767

68+
QgsProcessingAlgorithm::Flags QgsSplitWithLinesAlgorithm::flags() const
69+
{
70+
Flags f = QgsProcessingAlgorithm::flags();
71+
f |= QgsProcessingAlgorithm::FlagSupportsInPlaceEdits;
72+
return f;
73+
}
74+
75+
bool QgsSplitWithLinesAlgorithm::supportInPlaceEdit( const QgsMapLayer *l ) const
76+
{
77+
const QgsVectorLayer *layer = qobject_cast< const QgsVectorLayer * >( l );
78+
if ( !layer )
79+
return false;
80+
81+
return true;
82+
}
83+
6884
QVariantMap QgsSplitWithLinesAlgorithm::processAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback )
6985
{
7086
std::unique_ptr< QgsFeatureSource > source( parameterAsSource( parameters, QStringLiteral( "INPUT" ), context ) );

‎src/analysis/processing/qgsalgorithmsplitwithlines.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ class QgsSplitWithLinesAlgorithm : public QgsProcessingAlgorithm
4343
QString groupId() const override;
4444
QString shortHelpString() const override;
4545
QgsSplitWithLinesAlgorithm *createInstance() const override SIP_FACTORY;
46-
46+
QgsProcessingAlgorithm::Flags flags() const override;
47+
bool supportInPlaceEdit( const QgsMapLayer *layer ) const override;
4748
protected:
4849

4950
QVariantMap processAlgorithm( const QVariantMap &parameters,

0 commit comments

Comments
 (0)
Please sign in to comment.