Skip to content

Commit

Permalink
Add native c++ algorithm provider
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Jun 5, 2017
1 parent b64a71d commit 8b4bf88
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 1 deletion.
37 changes: 37 additions & 0 deletions src/core/processing/qgsnativealgorithms.cpp
Expand Up @@ -26,6 +26,43 @@


///@cond PRIVATE ///@cond PRIVATE


QgsNativeAlgorithms::QgsNativeAlgorithms( QObject *parent )
: QgsProcessingProvider( parent )
{}

QIcon QgsNativeAlgorithms::icon() const
{
return QgsApplication::getThemeIcon( QStringLiteral( "/providerQgis.svg" ) );
}

QString QgsNativeAlgorithms::svgIconPath() const
{
return QgsApplication::iconPath( QStringLiteral( "providerQgis.svg" ) );
}

QString QgsNativeAlgorithms::id() const
{
return QStringLiteral( "native" );
}

QString QgsNativeAlgorithms::name() const
{
return tr( "QGIS" );
}

bool QgsNativeAlgorithms::supportsNonFileBasedOutput() const
{
return true;
}

void QgsNativeAlgorithms::loadAlgorithms()
{
addAlgorithm( new QgsCentroidAlgorithm() );
addAlgorithm( new QgsBufferAlgorithm() );
}



QgsCentroidAlgorithm::QgsCentroidAlgorithm() QgsCentroidAlgorithm::QgsCentroidAlgorithm()
{ {
addParameter( new QgsProcessingParameterVector( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) ); addParameter( new QgsProcessingParameterVector( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) );
Expand Down
21 changes: 20 additions & 1 deletion src/core/processing/qgsnativealgorithms.h
Expand Up @@ -21,9 +21,28 @@
#include "qgis_core.h" #include "qgis_core.h"
#include "qgis.h" #include "qgis.h"
#include "qgsprocessingalgorithm.h" #include "qgsprocessingalgorithm.h"
#include "qgsprocessingprovider.h"


///@cond PRIVATE ///@cond PRIVATE


class QgsNativeAlgorithms: public QgsProcessingProvider
{
public:

QgsNativeAlgorithms( QObject *parent = nullptr );

QIcon icon() const override;
QString svgIconPath() const override;
QString id() const override;
QString name() const override;
bool supportsNonFileBasedOutput() const override;

protected:

void loadAlgorithms() override;

};

/** /**
* Native centroid algorithm. * Native centroid algorithm.
*/ */
Expand Down Expand Up @@ -54,7 +73,7 @@ class QgsBufferAlgorithm : public QgsProcessingAlgorithm


QgsBufferAlgorithm(); QgsBufferAlgorithm();


QString name() const override { return QStringLiteral( "fixeddistancebuffer" ); } QString name() const override { return QStringLiteral( "buffer" ); }
QString displayName() const override { return QObject::tr( "Buffer" ); } QString displayName() const override { return QObject::tr( "Buffer" ); }
virtual QStringList tags() const override { return QObject::tr( "buffer,grow" ).split( ',' ); } virtual QStringList tags() const override { return QObject::tr( "buffer,grow" ).split( ',' ); }
QString group() const override { return QObject::tr( "Vector geometry tools" ); } QString group() const override { return QObject::tr( "Vector geometry tools" ); }
Expand Down
2 changes: 2 additions & 0 deletions src/core/qgsapplication.cpp
Expand Up @@ -40,6 +40,7 @@


#include "gps/qgsgpsconnectionregistry.h" #include "gps/qgsgpsconnectionregistry.h"
#include "processing/qgsprocessingregistry.h" #include "processing/qgsprocessingregistry.h"
#include "processing/qgsnativealgorithms.h"


#include <QDir> #include <QDir>
#include <QFile> #include <QFile>
Expand Down Expand Up @@ -1578,6 +1579,7 @@ QgsApplication::ApplicationMembers::ApplicationMembers()
mGpsConnectionRegistry = new QgsGPSConnectionRegistry(); mGpsConnectionRegistry = new QgsGPSConnectionRegistry();
mPluginLayerRegistry = new QgsPluginLayerRegistry(); mPluginLayerRegistry = new QgsPluginLayerRegistry();
mProcessingRegistry = new QgsProcessingRegistry(); mProcessingRegistry = new QgsProcessingRegistry();
mProcessingRegistry->addProvider( new QgsNativeAlgorithms( mProcessingRegistry ) );
mAnnotationRegistry = new QgsAnnotationRegistry(); mAnnotationRegistry = new QgsAnnotationRegistry();
} }


Expand Down

0 comments on commit 8b4bf88

Please sign in to comment.