Skip to content

Commit 365ccd3

Browse files
author
volayaf@gmail.com
committed
Started adding an auto configuration mechanism
git-svn-id: http://sextante.googlecode.com/svn/trunk/soft/bindings/qgis-plugin@75 881b9c09-3ef8-f3c2-ec3d-21d735c97f4d
1 parent 8dd4574 commit 365ccd3

10 files changed

+46
-5
lines changed

src/sextante/SextantePlugin.py

+3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from sextante.gui.ResultsDialog import ResultsDialog
1414
from sextante.about.AboutDialog import AboutDialog
1515
import subprocess
16+
from sextante.core.SextanteExternalAppsConfigurer import SextanteExternalAppsConfigurer
1617

1718
cmd_folder = os.path.split(inspect.getfile( inspect.currentframe() ))[0]
1819
if cmd_folder not in sys.path:
@@ -25,6 +26,8 @@ def __init__(self, iface):
2526
QGisLayers.setInterface(iface)
2627
Sextante.initialize()
2728
Sextante.setInterface(iface)
29+
SextanteExternalAppsConfigurer.autoConfigure()
30+
2831

2932
def initGui(self):
3033
self.toolbox = SextanteToolbox(self.iface)

src/sextante/core/Sextante.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,12 @@ def initialize():
8080
Sextante.addProvider(MMQGISAlgorithmProvider())
8181
Sextante.addProvider(FToolsAlgorithmProvider())
8282
Sextante.addProvider(ModelerOnlyAlgorithmProvider())
83-
Sextante.addProvider(ScriptAlgorithmProvider())
8483
Sextante.addProvider(RAlgorithmProvider())
8584
Sextante.addProvider(SagaAlgorithmProvider())
8685
Sextante.addProvider(GrassAlgorithmProvider())
8786
Sextante.addProvider(GdalAlgorithmProvider())
8887
Sextante.addProvider(OTBAlgorithmProvider())
88+
Sextante.addProvider(ScriptAlgorithmProvider())
8989
Sextante.modeler.initializeSettings();
9090
#and initialize
9191
SextanteLog.startLogging()

src/sextante/core/SextanteConfig.py

+6
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,12 @@ def getSetting(name):
8282
else:
8383
return None
8484

85+
@staticmethod
86+
def setSettingValue(name, value):
87+
if name in SextanteConfig.settings.keys():
88+
SextanteConfig.settings[name].value = value
89+
SextanteConfig.saveSettings()
90+
8591

8692
class Setting():
8793
'''A simple config parameter that will appear on the SEXTANTE config dialog'''
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from sextante.core.SextanteConfig import SextanteConfig
2+
from PyQt4 import QtCore
3+
class SextanteExternalAppsConfigurer():
4+
5+
@staticmethod
6+
def autoConfigure():
7+
IS_FIRST_USAGE = "IS_FIRST_USAGE"
8+
settings = QtCore.QSettings()
9+
if not settings.contains(IS_FIRST_USAGE):
10+
settings.setValue(IS_FIRST_USAGE, True)
11+
12+
13+
14+

src/sextante/gdal/polygonize.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def defineCharacteristics(self):
2424
self.addOutput(OutputVector(polygonize.OUTPUT, "Output layer"))
2525

2626
def processAlgorithm(self, progress):
27-
commands = ["polygonize"]
27+
commands = ["gdal_polygonize"]
2828
commands.append(self.getParameterValue(polygonize.INPUT))
2929
commands.append("-f")
3030
commands.append("ESRI Shapefile")

src/sextante/gui/ExtentSelectionPanel.py

+13
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,19 @@ def __init__(self, default):
3131
self.connect(self.tool, SIGNAL("rectangleCreated()"), self.fillCoords)
3232

3333
def buttonPushed(self):
34+
popupmenu = QMenu()
35+
useLayerExtentAction = QtGui.QAction("Use layer/canvas extent", self.pushButton)
36+
useLayerExtentAction.triggered.connect(self.useLayerExtent)
37+
popupmenu.addAction(useLayerExtentAction)
38+
selectOnCanvasAction = QtGui.QAction("Select extent on canvas", self.pushButton)
39+
selectOnCanvasAction.triggered.connect(self.selectOnCanvas)
40+
popupmenu.addAction(selectOnCanvasAction)
41+
popupmenu.exec_(QtGui.QCursor.pos())
42+
43+
def useLayerExtent(self):
44+
pass
45+
46+
def selectOnCanvas(self):
3447
canvas = QGisLayers.iface.mapCanvas()
3548
canvas.setMapTool(self.tool)
3649

src/sextante/gui/ParametersDialog.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class ParametersDialog(QtGui.QDialog):
3535
'''the default parameters dialog, to be used when an algorithm is called from the toolbox'''
3636
def __init__(self, alg):
3737
QtGui.QDialog.__init__(self)
38-
self.setModal(True)
38+
self.setModal(False)
3939
self.ui = Ui_ParametersDialog()
4040
self.ui.setupUi(self, alg)
4141
self.executed = False

src/sextante/gui/SextanteToolbox.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ def executeAlgorithm(self):
9797
item = self.algorithmTree.currentItem()
9898
if isinstance(item, TreeAlgorithmItem):
9999
alg = Sextante.getAlgorithm(item.alg.commandLineName())
100-
if alg.checkBeforeOpeningParametersDialog():
100+
message = alg.checkBeforeOpeningParametersDialog()
101+
if message:
101102
QtGui.QMessageBox.warning(self, "Warning", message)
102103
return
103104
alg = copy.deepcopy(alg)

src/sextante/modeler/ModelerAlgorithm.py

+1
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ def getOutputType(self, i, outname):
263263

264264

265265
def getAsPythonCode(self):
266+
return
266267
s = []
267268
for param in self.parameters:
268269
s.append(str(param.getAsScriptCode().lower()))

src/sextante/script/ScriptAlgorithm.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,10 @@ def defineCharacteristicsFromFile(self):
4343
line = lines.readline()
4444
while line != "":
4545
if line.startswith("##"):
46-
self.processParameterLine(line.strip("\n"))
46+
try:
47+
self.processParameterLine(line.strip("\n"))
48+
except:
49+
raise WrongScriptException("Could not load script: " + self.descriptionFile +"\n" + "Problem with line: " + line)
4750
self.script += line
4851
line = lines.readline()
4952
lines.close()

0 commit comments

Comments
 (0)