Merge pull request #6408 from arnaud-morvan/processing_reload_fix

Processing reload fixes
This commit is contained in:
Nyall Dawson 2018-02-22 10:03:51 +11:00 committed by GitHub
commit 0481666b77
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 5 deletions

View File

@ -253,6 +253,7 @@ class ProcessingPlugin:
self.resultsDock.setVisible(False)
self.iface.removeDockWidget(self.resultsDock)
self.toolbox.deleteLater()
self.menu.deleteLater()
# delete temporary output files

View File

@ -85,11 +85,15 @@ class Processing(object):
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

View File

@ -63,7 +63,10 @@ class ModelerAlgorithmProvider(QgsProcessingProvider):
# must reload models if providers list is changed - previously unavailable algorithms
# which models depend on may now be available
QgsApplication.processingRegistry().providerAdded.connect(self.refreshAlgorithms)
QgsApplication.processingRegistry().providerAdded.connect(self.onProviderAdded)
def onProviderAdded(self, provider_id):
self.refreshAlgorithms()
def load(self):
ProcessingConfig.settingIcons[self.name()] = self.icon()