diff --git a/images/images.qrc b/images/images.qrc
index d012d43fe35..5a80fa16487 100755
--- a/images/images.qrc
+++ b/images/images.qrc
@@ -76,6 +76,7 @@
north_arrows/gpsarrow2.svg
splash/splash.png
composer/missing_image.svg
+ themes/default/algorithms/mAlgorithmAddGeometryAttributes.svg
themes/default/algorithms/mAlgorithmBasicStatistics.svg
themes/default/algorithms/mAlgorithmBuffer.svg
themes/default/algorithms/mAlgorithmCentroids.svg
@@ -83,12 +84,13 @@
themes/default/algorithms/mAlgorithmClip.svg
themes/default/algorithms/mAlgorithmCollect.svg
themes/default/algorithms/mAlgorithmConvexHull.svg
+ themes/default/algorithms/mAlgorithmCreateGrid.svg
themes/default/algorithms/mAlgorithmDelaunay.svg
themes/default/algorithms/mAlgorithmDifference.svg
themes/default/algorithms/mAlgorithmDissolve.svg
themes/default/algorithms/mAlgorithmDistanceMatrix.svg
- themes/default/algorithms/mAlgorithmAddGeometryAttributes.svg
themes/default/algorithms/mAlgorithmExtractVertices.svg
+ themes/default/algorithms/mAlgorithmExtractLayerExtent.svg
themes/default/algorithms/mAlgorithmIntersect.svg
themes/default/algorithms/mAlgorithmLineIntersections.svg
themes/default/algorithms/mAlgorithmLineToPolygon.svg
@@ -97,6 +99,11 @@
themes/default/algorithms/mAlgorithmMultiToSingle.svg
themes/default/algorithms/mAlgorithmNearestNeighbour.svg
themes/default/algorithms/mAlgorithmPolygonToLine.svg
+ themes/default/algorithms/mAlgorithmRandomPointsWithinPolygon.svg
+ themes/default/algorithms/mAlgorithmRandomPointsWithinExtent.svg
+ themes/default/algorithms/mAlgorithmRegularPoints.svg
+ themes/default/algorithms/mAlgorithmSelectLocation.svg
+ themes/default/algorithms/mAlgorithmSelectRandom.svg
themes/default/algorithms/mAlgorithmSimplify.svg
themes/default/algorithms/mAlgorithmSingleToMulti.svg
themes/default/algorithms/mAlgorithmSplitLayer.svg
diff --git a/images/themes/default/algorithms/mAlgorithmCreateGrid.svg b/images/themes/default/algorithms/mAlgorithmCreateGrid.svg
new file mode 100644
index 00000000000..1574819a63d
--- /dev/null
+++ b/images/themes/default/algorithms/mAlgorithmCreateGrid.svg
@@ -0,0 +1 @@
+
diff --git a/images/themes/default/algorithms/mAlgorithmExtractLayerExtent.svg b/images/themes/default/algorithms/mAlgorithmExtractLayerExtent.svg
new file mode 100644
index 00000000000..6357e1c78ad
--- /dev/null
+++ b/images/themes/default/algorithms/mAlgorithmExtractLayerExtent.svg
@@ -0,0 +1 @@
+
diff --git a/images/themes/default/algorithms/mAlgorithmRandomPointsWithinExtent.svg b/images/themes/default/algorithms/mAlgorithmRandomPointsWithinExtent.svg
new file mode 100644
index 00000000000..c4a7221af9c
--- /dev/null
+++ b/images/themes/default/algorithms/mAlgorithmRandomPointsWithinExtent.svg
@@ -0,0 +1 @@
+
diff --git a/images/themes/default/algorithms/mAlgorithmRandomPointsWithinPolygon.svg b/images/themes/default/algorithms/mAlgorithmRandomPointsWithinPolygon.svg
new file mode 100644
index 00000000000..3c32d991e2d
--- /dev/null
+++ b/images/themes/default/algorithms/mAlgorithmRandomPointsWithinPolygon.svg
@@ -0,0 +1 @@
+
diff --git a/images/themes/default/algorithms/mAlgorithmRegularPoints.svg b/images/themes/default/algorithms/mAlgorithmRegularPoints.svg
new file mode 100644
index 00000000000..c44690b86ea
--- /dev/null
+++ b/images/themes/default/algorithms/mAlgorithmRegularPoints.svg
@@ -0,0 +1 @@
+
diff --git a/images/themes/default/algorithms/mAlgorithmSelectLocation.svg b/images/themes/default/algorithms/mAlgorithmSelectLocation.svg
new file mode 100644
index 00000000000..e1df5a39059
--- /dev/null
+++ b/images/themes/default/algorithms/mAlgorithmSelectLocation.svg
@@ -0,0 +1 @@
+
diff --git a/images/themes/default/algorithms/mAlgorithmSelectRandom.svg b/images/themes/default/algorithms/mAlgorithmSelectRandom.svg
new file mode 100644
index 00000000000..73e3cfc7424
--- /dev/null
+++ b/images/themes/default/algorithms/mAlgorithmSelectRandom.svg
@@ -0,0 +1 @@
+
diff --git a/python/plugins/processing/algs/qgis/ExtentFromLayer.py b/python/plugins/processing/algs/qgis/ExtentFromLayer.py
index 8b03f8de1ce..ff8355b548c 100644
--- a/python/plugins/processing/algs/qgis/ExtentFromLayer.py
+++ b/python/plugins/processing/algs/qgis/ExtentFromLayer.py
@@ -30,7 +30,8 @@ import os
from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtCore import QVariant
-from qgis.core import (QgsField,
+from qgis.core import (QgsApplication,
+ QgsField,
QgsFeatureSink,
QgsGeometry,
QgsFeature,
@@ -54,7 +55,10 @@ class ExtentFromLayer(QgisAlgorithm):
OUTPUT = 'OUTPUT'
def icon(self):
- return QIcon(os.path.join(pluginPath, 'images', 'ftools', 'layer_extent.png'))
+ return QgsApplication.getThemeIcon("/algorithms/mAlgorithmExtractLayerExtent.svg")
+
+ def svgIconPath(self):
+ return QgsApplication.iconPath("/algorithms/mAlgorithmExtractLayerExtent.svg")
def tags(self):
return self.tr('polygon,from,vector,raster,extent,envelope,bounds,bounding,boundary,layer').split(',')
diff --git a/python/plugins/processing/algs/qgis/Grid.py b/python/plugins/processing/algs/qgis/Grid.py
index dad4c853879..2411f362829 100644
--- a/python/plugins/processing/algs/qgis/Grid.py
+++ b/python/plugins/processing/algs/qgis/Grid.py
@@ -65,7 +65,10 @@ class Grid(QgisAlgorithm):
OUTPUT = 'OUTPUT'
def icon(self):
- return QgsApplication.getThemeIcon("/vector_grid.svg")
+ return QgsApplication.getThemeIcon("/algorithms/mAlgorithmCreateGrid.svg")
+
+ def svgIconPath(self):
+ return QgsApplication.iconPath("/algorithms/mAlgorithmCreateGrid.svg")
def tags(self):
return self.tr('grid,lines,polygons,vector,create,fishnet,diamond,hexagon').split(',')
diff --git a/python/plugins/processing/algs/qgis/RandomPointsExtent.py b/python/plugins/processing/algs/qgis/RandomPointsExtent.py
index 4b97f24361a..896463008ff 100644
--- a/python/plugins/processing/algs/qgis/RandomPointsExtent.py
+++ b/python/plugins/processing/algs/qgis/RandomPointsExtent.py
@@ -30,7 +30,8 @@ import random
from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtCore import QVariant
-from qgis.core import (QgsField,
+from qgis.core import (QgsApplication,
+ QgsField,
QgsFeatureSink,
QgsFeature,
QgsFields,
@@ -62,7 +63,10 @@ class RandomPointsExtent(QgisAlgorithm):
OUTPUT = 'OUTPUT'
def icon(self):
- return QIcon(os.path.join(pluginPath, 'images', 'ftools', 'random_points.png'))
+ return QgsApplication.getThemeIcon("/algorithms/mAlgorithmRandomPointsWithinExtent.svg")
+
+ def svgIconPath(self):
+ return QgsApplication.iconPath("/algorithms/mAlgorithmRandomPointsWithinExtent.svg")
def group(self):
return self.tr('Vector creation')
diff --git a/python/plugins/processing/algs/qgis/RandomPointsLayer.py b/python/plugins/processing/algs/qgis/RandomPointsLayer.py
index df9b318d4c8..c9f8d97b52c 100644
--- a/python/plugins/processing/algs/qgis/RandomPointsLayer.py
+++ b/python/plugins/processing/algs/qgis/RandomPointsLayer.py
@@ -30,7 +30,8 @@ import random
from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtCore import QVariant
-from qgis.core import (QgsField,
+from qgis.core import (QgsApplication,
+ QgsField,
QgsFeatureSink,
QgsFeature,
QgsFields,
@@ -61,7 +62,10 @@ class RandomPointsLayer(QgisAlgorithm):
OUTPUT = 'OUTPUT'
def icon(self):
- return QIcon(os.path.join(pluginPath, 'images', 'ftools', 'random_points.png'))
+ return QgsApplication.getThemeIcon("/algorithms/mAlgorithmRandomPointsWithinExtent.svg")
+
+ def svgIconPath(self):
+ return QgsApplication.iconPath("/algorithms/mAlgorithmRandomPointsWithinExtent.svg")
def group(self):
return self.tr('Vector creation')
diff --git a/python/plugins/processing/algs/qgis/RandomPointsPolygons.py b/python/plugins/processing/algs/qgis/RandomPointsPolygons.py
index 44316c73812..6349d85932f 100644
--- a/python/plugins/processing/algs/qgis/RandomPointsPolygons.py
+++ b/python/plugins/processing/algs/qgis/RandomPointsPolygons.py
@@ -30,7 +30,8 @@ import random
from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtCore import QVariant
-from qgis.core import (QgsField,
+from qgis.core import (QgsApplication,
+ QgsField,
QgsFeatureSink,
QgsFeature,
QgsFields,
@@ -67,7 +68,10 @@ class RandomPointsPolygons(QgisAlgorithm):
OUTPUT = 'OUTPUT'
def icon(self):
- return QIcon(os.path.join(pluginPath, 'images', 'ftools', 'random_points.png'))
+ return QgsApplication.getThemeIcon("/algorithms/mAlgorithmRandomPointsWithinPolygon.svg")
+
+ def svgIconPath(self):
+ return QgsApplication.iconPath("/algorithms/mAlgorithmRandomPointsWithinPolygon.svg")
def group(self):
return self.tr('Vector creation')
diff --git a/python/plugins/processing/algs/qgis/RandomSelection.py b/python/plugins/processing/algs/qgis/RandomSelection.py
index 146d0497f6d..cdb5f98c30c 100644
--- a/python/plugins/processing/algs/qgis/RandomSelection.py
+++ b/python/plugins/processing/algs/qgis/RandomSelection.py
@@ -29,7 +29,8 @@ import os
import random
from qgis.PyQt.QtGui import QIcon
-from qgis.core import (QgsFeatureSink,
+from qgis.core import (QgsApplication,
+ QgsFeatureSink,
QgsProcessingException,
QgsProcessingUtils,
QgsProcessingAlgorithm,
@@ -52,7 +53,10 @@ class RandomSelection(QgisAlgorithm):
NUMBER = 'NUMBER'
def icon(self):
- return QIcon(os.path.join(pluginPath, 'images', 'ftools', 'random_selection.png'))
+ return QgsApplication.getThemeIcon("/algorithms/mAlgorithmSelectRandom.svg")
+
+ def svgIconPath(self):
+ return QgsApplication.iconPath("/algorithms/mAlgorithmSelectRandom.svg")
def group(self):
return self.tr('Vector selection')
diff --git a/python/plugins/processing/algs/qgis/RandomSelectionWithinSubsets.py b/python/plugins/processing/algs/qgis/RandomSelectionWithinSubsets.py
index e2aaea6384e..9281da0545b 100644
--- a/python/plugins/processing/algs/qgis/RandomSelectionWithinSubsets.py
+++ b/python/plugins/processing/algs/qgis/RandomSelectionWithinSubsets.py
@@ -30,7 +30,8 @@ import random
from qgis.PyQt.QtGui import QIcon
-from qgis.core import (QgsFeatureRequest,
+from qgis.core import (QgsApplication,
+ QgsFeatureRequest,
QgsProcessingException,
QgsProcessingUtils,
QgsProcessingAlgorithm,
@@ -55,7 +56,10 @@ class RandomSelectionWithinSubsets(QgisAlgorithm):
OUTPUT = 'OUTPUT'
def icon(self):
- return QIcon(os.path.join(pluginPath, 'images', 'ftools', 'sub_selection.png'))
+ return QgsApplication.getThemeIcon("/algorithms/mAlgorithmSelectRandom.svg")
+
+ def svgIconPath(self):
+ return QgsApplication.iconPath("/algorithms/mAlgorithmSelectRandom.svg")
def group(self):
return self.tr('Vector selection')
diff --git a/python/plugins/processing/algs/qgis/RegularPoints.py b/python/plugins/processing/algs/qgis/RegularPoints.py
index d8f4d868a52..2633fb30f55 100644
--- a/python/plugins/processing/algs/qgis/RegularPoints.py
+++ b/python/plugins/processing/algs/qgis/RegularPoints.py
@@ -31,7 +31,8 @@ from math import sqrt
from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtCore import QVariant
-from qgis.core import (QgsFields,
+from qgis.core import (QgsApplication,
+ QgsFields,
QgsFeatureSink,
QgsField,
QgsFeature,
@@ -63,7 +64,10 @@ class RegularPoints(QgisAlgorithm):
CRS = 'CRS'
def icon(self):
- return QIcon(os.path.join(pluginPath, 'images', 'ftools', 'regular_points.png'))
+ return QgsApplication.getThemeIcon("/algorithms/mAlgorithmRegularPoints.svg")
+
+ def svgIconPath(self):
+ return QgsApplication.iconPath("/algorithms/mAlgorithmRegularPoints.svg")
def group(self):
return self.tr('Vector creation')
diff --git a/python/plugins/processing/algs/qgis/SpatialJoin.py b/python/plugins/processing/algs/qgis/SpatialJoin.py
index e65f00d41af..808aa354e48 100644
--- a/python/plugins/processing/algs/qgis/SpatialJoin.py
+++ b/python/plugins/processing/algs/qgis/SpatialJoin.py
@@ -57,9 +57,6 @@ class SpatialJoin(QgisAlgorithm):
DISCARD_NONMATCHING = "DISCARD_NONMATCHING"
OUTPUT = "OUTPUT"
- def icon(self):
- return QIcon(os.path.join(pluginPath, 'images', 'ftools', 'join_location.png'))
-
def group(self):
return self.tr('Vector general')
diff --git a/python/plugins/processing/algs/qgis/SpatialJoinSummary.py b/python/plugins/processing/algs/qgis/SpatialJoinSummary.py
index 08bc2e90f86..87c93d6fce1 100644
--- a/python/plugins/processing/algs/qgis/SpatialJoinSummary.py
+++ b/python/plugins/processing/algs/qgis/SpatialJoinSummary.py
@@ -65,9 +65,6 @@ class SpatialJoinSummary(QgisAlgorithm):
DISCARD_NONMATCHING = "DISCARD_NONMATCHING"
OUTPUT = "OUTPUT"
- def icon(self):
- return QIcon(os.path.join(pluginPath, 'images', 'ftools', 'join_location.png'))
-
def group(self):
return self.tr('Vector general')
diff --git a/src/analysis/processing/qgsalgorithmextractbylocation.h b/src/analysis/processing/qgsalgorithmextractbylocation.h
index bb6e1ce25dc..2cd4579dc41 100644
--- a/src/analysis/processing/qgsalgorithmextractbylocation.h
+++ b/src/analysis/processing/qgsalgorithmextractbylocation.h
@@ -63,6 +63,8 @@ class QgsSelectByLocationAlgorithm : public QgsLocationBasedAlgorithm
QgsSelectByLocationAlgorithm() = default;
void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override;
+ QIcon icon() const override { return QgsApplication::getThemeIcon( QStringLiteral( "/algorithms/mAlgorithmSelectLocation.svg" ) ); }
+ QString svgIconPath() const override { return QgsApplication::iconPath( QStringLiteral( "/algorithms/mAlgorithmSelectLocation.svg" ) ); }
QString name() const override;
Flags flags() const override;
QString displayName() const override;