Skip to content

Commit 61e26fd

Browse files
committedJun 1, 2016
[processing] fixes for issues with 3rd party providers being loaded and unloaded
1 parent b0a9a84 commit 61e26fd

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed
 

‎python/plugins/processing/core/Processing.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,12 @@ def removeProvider(provider):
112112
"""
113113
try:
114114
provider.unload()
115-
Processing.providers.remove(provider)
116-
algList.remove(provider.getName())
117-
del Processing.actions[provider.getName()]
115+
for p in Processing.providers:
116+
if p.getName() == provider.getName():
117+
Processing.providers.remove(p)
118+
algList.removeProvider(provider.getName())
119+
if provider.getName() in Processing.actions:
120+
del Processing.actions[provider.getName()]
118121
for act in provider.contextMenuActions:
119122
Processing.contextMenuActions.remove(act)
120123
except:
@@ -131,7 +134,7 @@ def getProviderFromName(name):
131134

132135
@staticmethod
133136
def initialize():
134-
if Processing.providers:
137+
if "model" in [p.getName() for p in Processing.providers]:
135138
return
136139
# Add the basic providers
137140
for c in AlgorithmProvider.__subclasses__():

‎python/plugins/processing/core/alglist.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ def removeProvider(self, providerName):
4545
if p.getName() == providerName:
4646
self.providers.remove(p)
4747
break
48-
self.algs.remove(providerName)
48+
if providerName in self.algs:
49+
del self.algs[providerName]
4950
self.providerRemoved.emit(providerName)
5051

5152
def reloadProvider(self, providerName):

0 commit comments

Comments
 (0)
Please sign in to comment.