Skip to content

Commit 7c67101

Browse files
committed
[sextante] improved toolbox and modeler to better use classification by categories (easy mode)
1 parent 5fead9f commit 7c67101

File tree

5 files changed

+333
-141
lines changed

5 files changed

+333
-141
lines changed

python/plugins/sextante/core/Sextante.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
from sextante.core.SextanteConfig import SextanteConfig
3131
from sextante.core.GeoAlgorithm import GeoAlgorithm
3232
from sextante.core.SextanteLog import SextanteLog
33-
from sextante.core.AlgorithmClassification import AlgorithmDecorator
33+
from sextante.gui.AlgorithmClassification import AlgorithmDecorator
3434
from sextante.gui.AlgorithmExecutor import AlgorithmExecutor
3535
from sextante.gui.RenderingStyles import RenderingStyles
3636
from sextante.gui.SextantePostprocessing import SextantePostprocessing
@@ -127,11 +127,11 @@ def initialize():
127127
Sextante.addProvider(AdminToolsAlgorithmProvider())
128128
Sextante.modeler.initializeSettings();
129129
#and initialize
130+
AlgorithmDecorator.loadClassification()
130131
SextanteLog.startLogging()
131132
SextanteConfig.initialize()
132133
SextanteConfig.loadSettings()
133-
RenderingStyles.loadStyles()
134-
AlgorithmDecorator.loadClassification()
134+
RenderingStyles.loadStyles()
135135
Sextante.loadFromProviders()
136136

137137
@staticmethod
@@ -378,6 +378,7 @@ def alghelp(name):
378378
alg = Sextante.getAlgorithm(name)
379379
if alg != None:
380380
print(str(alg))
381+
algoptions(name)
381382
else:
382383
print "Algorithm not found"
383384

python/plugins/sextante/core/AlgorithmClassification.py renamed to python/plugins/sextante/gui/AlgorithmClassification.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
"""
44
***************************************************************************
5-
SextanteToolbox.py
5+
AlgorithmClassification.py
66
---------------------
7-
Date : August 2012
7+
Date : November 2012
88
Copyright : (C) 2012 by Victor Olaya
99
Email : volayaf at gmail dot com
1010
***************************************************************************
@@ -16,8 +16,6 @@
1616
* *
1717
***************************************************************************
1818
"""
19-
from sextante.core.SextanteUtils import SextanteUtils
20-
2119
__author__ = 'Victor Olaya'
2220
__date__ = 'November 2012'
2321
__copyright__ = '(C) 2012, Victor Olaya'
@@ -31,30 +29,33 @@ class AlgorithmDecorator():
3129
classification = {};
3230

3331
@staticmethod
34-
def loadClassification():
32+
def loadClassification():
3533
if not os.path.isfile(AlgorithmDecorator.classificationFile()):
3634
return
3735
lines = open(AlgorithmDecorator.classificationFile())
3836
line = lines.readline().strip("\n")
3937
while line != "":
40-
tokens = line.split("\t")
41-
AlgorithmDecorator.classification[tokens[0]] = (tokens[1], tokens[2], tokens[3]);
38+
tokens = line.split(",")
39+
subtokens = tokens[2].split("/")
40+
AlgorithmDecorator.classification[tokens[0]] = (subtokens[0], subtokens[1], tokens[1]);
4241
line = lines.readline().strip("\n")
4342
lines.close()
4443

4544
@staticmethod
46-
def classificationFile():
47-
return os.path.join(SextanteUtils.userFolder(), "sextante_qgis_algclass.txt")
45+
def classificationFile():
46+
folder = os.path.join(os.path.dirname(__file__), "help")
47+
f = os.path.join(folder, "algclasssification.txt")
48+
return f
4849

4950
@staticmethod
5051
def getGroupsAndName(alg):
51-
if alg.commandLineName() in AlgorithmDecorator.classification:
52-
group, subgroup, name = AlgorithmDecorator.classification[alg.commandLineName]
52+
if alg.commandLineName().lower() in AlgorithmDecorator.classification:
53+
group, subgroup, name = AlgorithmDecorator.classification[alg.commandLineName()]
5354
if name == "USE_ORIGINAL_NAME":
5455
name = alg.name
5556
return (group, subgroup, name)
5657
else:
57-
return ("Uncategorized", alg.group, alg.name)
58+
return (None,None,alg.commandLineName())
5859

5960

6061

python/plugins/sextante/gui/SextanteToolbox.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,17 @@
2222
# This will get replaced with a git SHA1 when you do a git archive
2323
__revision__ = '$Format:%H$'
2424

25-
import os
26-
import sys
27-
import subprocess
28-
2925
from PyQt4.QtCore import *
3026
from PyQt4.QtGui import *
3127

3228
import webbrowser
3329
from sextante.core.GeoAlgorithm import GeoAlgorithm
3430
from sextante.modeler.Providers import Providers
35-
from sextante.core.AlgorithmClassification import AlgorithmDecorator
31+
from sextante.gui.AlgorithmClassification import AlgorithmDecorator
3632
from sextante.core.Sextante import Sextante
3733
from sextante.core.SextanteLog import SextanteLog
3834
from sextante.core.SextanteConfig import SextanteConfig
3935
from sextante.core.QGisLayers import QGisLayers
40-
4136
from sextante.gui.ParametersDialog import ParametersDialog
4237
from sextante.gui.BatchProcessingDialog import BatchProcessingDialog
4338
from sextante.gui.EditRenderingStylesDialog import EditRenderingStylesDialog
@@ -192,6 +187,8 @@ def fillTreeUsingCategories(self):
192187
if not alg.showInToolbox:
193188
continue
194189
altgroup, altsubgroup, altname = AlgorithmDecorator.getGroupsAndName(alg)
190+
if altgroup is None:
191+
continue
195192
if text =="" or text.lower() in altname.lower():
196193
if altgroup not in groups:
197194
groups[altgroup] = {}

0 commit comments

Comments
 (0)