45
45
from processing .gui .Postprocessing import handleAlgorithmResults
46
46
from processing .gui .AlgorithmExecutor import runalg
47
47
from processing .tools import dataobjects
48
-
49
-
50
- class AlgListWatcher (QObject ):
51
-
52
- providerAdded = pyqtSignal (str )
53
- providerRemoved = pyqtSignal (str )
54
-
55
- algListWatcher = AlgListWatcher ()
56
-
48
+ from processing .core .alglist import algList
49
+
50
+ from processing .modeler .ModelerAlgorithmProvider import ModelerAlgorithmProvider
51
+ from processing .modeler .ModelerOnlyAlgorithmProvider import ModelerOnlyAlgorithmProvider
52
+ from processing .algs .qgis .QGISAlgorithmProvider import QGISAlgorithmProvider
53
+ from processing .algs .grass .GrassAlgorithmProvider import GrassAlgorithmProvider
54
+ from processing .algs .grass7 .Grass7AlgorithmProvider import Grass7AlgorithmProvider
55
+ from processing .algs .lidar .LidarToolsAlgorithmProvider import LidarToolsAlgorithmProvider
56
+ from processing .algs .gdal .GdalOgrAlgorithmProvider import GdalOgrAlgorithmProvider
57
+ from processing .algs .otb .OTBAlgorithmProvider import OTBAlgorithmProvider
58
+ from processing .algs .r .RAlgorithmProvider import RAlgorithmProvider
59
+ from processing .algs .saga .SagaAlgorithmProvider import SagaAlgorithmProvider
60
+ from processing .script .ScriptAlgorithmProvider import ScriptAlgorithmProvider
61
+ from processing .algs .taudem .TauDEMAlgorithmProvider import TauDEMAlgorithmProvider
62
+ from processing .preconfigured .PreconfiguredAlgorithmProvider import PreconfiguredAlgorithmProvider
57
63
58
64
class Processing :
59
65
60
- listeners = []
61
66
providers = []
62
67
63
- # A dictionary of algorithms. Keys are names of providers
64
- # and values are list with all algorithms from that provider
65
- algs = {}
66
68
67
- # Same structure as algs
69
+ # Same structure as algs in algList
68
70
actions = {}
69
71
70
72
# All the registered context menu actions for the toolbox
@@ -75,17 +77,16 @@ def addProvider(provider, update=True):
75
77
"""Use this method to add algorithms from external providers.
76
78
"""
77
79
78
- if provider .getName () in [p .getName for p in Processing .providers ]:
80
+ if provider .getName () in [p .getName for p in algList .providers ]:
79
81
return
80
82
try :
81
83
provider .initializeSettings ()
82
84
Processing .providers .append (provider )
83
85
ProcessingConfig .readSettings ()
84
86
provider .loadAlgorithms ()
85
- Processing .algs [provider .getName ()] = {a .commandLineName (): a for a in provider .algs }
86
87
Processing .actions [provider .getName ()] = provider .actions
87
88
Processing .contextMenuActions .extend (provider .contextMenuActions )
88
- algListWatcher . providerAdded . emit (provider . getName () )
89
+ algList . addProvider (provider )
89
90
except :
90
91
ProcessingLog .addToLog (
91
92
ProcessingLog .LOG_ERROR ,
@@ -103,8 +104,10 @@ def removeProvider(provider):
103
104
try :
104
105
provider .unload ()
105
106
Processing .providers .remove (provider )
106
- del Processing .algs [provider .getName ()]
107
- algListWatcher .providerRemoved .emit (provider .getName ())
107
+ algList .remove (provider .getName ())
108
+ del Processing .actions [provider .getName ()]
109
+ for act in provider .contextMenuActions :
110
+ Processing .contextMenuActions .remove (act )
108
111
except :
109
112
# This try catch block is here to avoid problems if the
110
113
# plugin with a provider is unloaded after the Processing
@@ -115,10 +118,7 @@ def removeProvider(provider):
115
118
@staticmethod
116
119
def getProviderFromName (name ):
117
120
"""Returns the provider with the given name."""
118
- for provider in Processing .providers :
119
- if provider .getName () == name :
120
- return provider
121
- return Processing .modeler
121
+ return algList .getProviderFromName (name )
122
122
123
123
@staticmethod
124
124
def initialize ():
@@ -143,27 +143,15 @@ def updateAlgsList():
143
143
144
144
@staticmethod
145
145
def reloadProvider (providerName ):
146
- for p in Processing .providers :
147
- if p .getName () == providerName :
148
- p .loadAlgorithms ()
149
- Processing .algs [
150
- p .getName ()] = {a .commandLineName (): a for a in p .algs }
151
-
146
+ algList .reloadProvider (providerName )
152
147
153
148
@staticmethod
154
149
def getAlgorithm (name ):
155
- for provider in Processing .algs .values ():
156
- if name in provider :
157
- return provider [name ]
158
- return None
150
+ return algList .getAlgorithm (name )
159
151
160
152
@staticmethod
161
153
def getAlgorithmFromFullName (name ):
162
- for provider in Processing .algs .values ():
163
- for alg in provider .values ():
164
- if alg .name == name :
165
- return alg
166
- return None
154
+ return algList .getAlgorithmFromFullName (name )
167
155
168
156
@staticmethod
169
157
def getObject (uri ):
0 commit comments