Skip to content

Commit

Permalink
[processing] Properly load basic providers
Browse files Browse the repository at this point in the history
Processing module should only register it's own basic providers.
Note that when reloading a plugin, subclasses of ProcessingProvider remains and new ones are added,
so in such cases QgsProcessingProvider.__subclasses__() return same provider class many times.
  • Loading branch information
arnaud-morvan committed Feb 21, 2018
1 parent d3a4a34 commit 3718d4e
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions python/plugins/processing/core/Processing.py
Expand Up @@ -85,11 +85,15 @@ def initialize():
if "model" in [p.id() for p in QgsApplication.processingRegistry().providers()]:
return
# Add the basic providers
for c in QgsProcessingProvider.__subclasses__():
for c in [
QgisAlgorithmProvider,
Grass7AlgorithmProvider,
GdalAlgorithmProvider,
SagaAlgorithmProvider,
ScriptAlgorithmProvider,
ModelerAlgorithmProvider
]:
p = c()
if p.id() in ('native', '3d'):
# c++ providers are already registered
continue
if QgsApplication.processingRegistry().addProvider(p):
Processing.BASIC_PROVIDERS.append(p)
# And initialize
Expand Down

0 comments on commit 3718d4e

Please sign in to comment.