Skip to content

Commit 4e62f7c

Browse files
author
volayaf
committed
added "advanced parameters" button in parameters panel
git-svn-id: http://sextante.googlecode.com/svn/trunk/soft/bindings/qgis-plugin@158 881b9c09-3ef8-f3c2-ec3d-21d735c97f4d
1 parent ce5b309 commit 4e62f7c

18 files changed

+50
-31
lines changed

src/sextante/ftools/Union.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def processAlgorithm(self, progress):
4343
else:
4444
if not crsA != crsB:
4545
SextanteLog.addToLog(SextanteLog.LOG_WARNING, "Union. Non-matching CRSs. Results might be unexpected")
46-
fields = ftools_utils.combineVectorFields( self.vlayerA, self.vlayerB )
46+
fields = ftools_utils.combineVectorFields(vlayerA, vlayerB )
4747
longNames = ftools_utils.checkFieldNameLength( fields )
4848
if not longNames.isEmpty():
4949
raise GeoAlgorithmExecutionException("Following field names are longer than 10 characters:\n" + longNames.join('\n') )

src/sextante/grass/GrassAlgorithm.py

+4
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ def defineCharacteristicsFromFile(self):
7979
line = line.strip("\n").strip()
8080
if line.startswith("Parameter"):
8181
self.addParameter(ParameterFactory.getFromString(line))
82+
elif line.startswith("*Parameter"):
83+
param = ParameterFactory.getFromString(line[1:])
84+
param.isAdvanced = True
85+
self.addParameter(param)
8286
else:
8387
self.addOutput(OutputFactory.getFromString(line))
8488
line = lines.readline().strip("\n").strip()

src/sextante/gui/ParametersPanel.py

+27-1
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,11 @@ def __init__(self, alg, paramDialog):
3434
self.alg = alg;
3535
self.paramDialog = paramDialog
3636
self.valueItems = {}
37+
self.labels = {}
38+
self.widgets = {}
3739
self.dependentItems = {}
3840
self.iterateButtons = {}
39-
41+
self.showAdvanced = False
4042
self.initGUI()
4143

4244
def initGUI(self):
@@ -63,11 +65,20 @@ def initGUI(self):
6365
self.verticalLayout = QtGui.QVBoxLayout()
6466
self.verticalLayout.setSpacing(5)
6567
self.verticalLayout.setMargin(20)
68+
for param in self.alg.parameters:
69+
if param.isAdvanced:
70+
self.advancedButton = QtGui.QPushButton()
71+
self.advancedButton.setText("Show advanced parameters")
72+
self.advancedButton.setMaximumWidth(150)
73+
QtCore.QObject.connect(self.advancedButton, QtCore.SIGNAL("clicked()"), self.showAdvancedParametersClicked)
74+
self.verticalLayout.addWidget(self.advancedButton)
75+
break
6676
for param in self.alg.parameters:
6777
desc = param.description
6878
if isinstance(param, ParameterExtent):
6979
desc += "(xmin, xmax, ymin, ymax)"
7080
label = QtGui.QLabel(desc)
81+
self.labels[param.name] = label
7182
widget = self.getWidgetFromParameter(param)
7283
self.valueItems[param.name] = widget
7384
if isinstance(param, ParameterVector):
@@ -93,6 +104,10 @@ def initGUI(self):
93104
tooltip = param.description
94105
label.setToolTip(tooltip)
95106
widget.setToolTip(tooltip)
107+
if param.isAdvanced:
108+
label.setVisible(self.showAdvanced)
109+
widget.setVisible(self.showAdvanced)
110+
self.widgets[param.name] = widget
96111
self.verticalLayout.addWidget(label)
97112
self.verticalLayout.addWidget(widget)
98113

@@ -108,6 +123,17 @@ def initGUI(self):
108123
self.verticalLayout.addStretch(1000)
109124
self.setLayout(self.verticalLayout)
110125

126+
def showAdvancedParametersClicked(self):
127+
self.showAdvanced = not self.showAdvanced
128+
if self.showAdvanced:
129+
self.advancedButton.setText("Hide advanced parameters")
130+
else:
131+
self.advancedButton.setText("Show advanced parameters")
132+
for param in self.alg.parameters:
133+
if param.isAdvanced:
134+
self.labels[param.name].setVisible(self.showAdvanced)
135+
self.widgets[param.name].setVisible(self.showAdvanced)
136+
111137
def buttonToggled(self, value):
112138
if value:
113139
sender = self.sender()

src/sextante/parameters/Parameter.py

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ def __init__(self, name="", description=""):
66
self.description = description
77
self.value = None
88

9+
#this is not used yet
10+
self.isAdvanced = False
11+
912

1013
def setValue(self, obj):
1114
'''sets the value of the parameter.

src/sextante/parameters/ParameterBoolean.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
class ParameterBoolean(Parameter):
44

55
def __init__(self, name="", description="", default=True):
6-
self.name = name
7-
self.description = description
6+
Parameter.__init__(self, name, description)
87
self.default = default
98
self.value = None
109

src/sextante/parameters/ParameterCrs.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ class ParameterCrs(Parameter):
44

55
def __init__(self, name="", description="", default = "4326"):
66
'''The values is the EPSG code of the CRS'''
7-
self.name = name
8-
self.description = description
7+
Parameter.__init__(self, name, description)
98
self.value = None
109
self.default = default
1110

src/sextante/parameters/ParameterExtent.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from sextante.parameters.Parameter import Parameter
22

33
class ParameterExtent(Parameter):
4+
45
def __init__(self, name="", description="", default="0,1,0,1"):
5-
self.name = name
6-
self.description = description
6+
Parameter.__init__(self, name, description)
77
self.default = default
88
self.value = None #The value is a string in the form "xmin, xmax, ymin, y max"
99

src/sextante/parameters/ParameterFile.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
class ParameterFile(Parameter):
44

55
def __init__(self, name="", description="", isFolder = False):
6-
self.name = name
7-
self.description = description
6+
Parameter.__init__(self, name, description)
87
self.value = None
98
self.isFolder = isFolder
109

src/sextante/parameters/ParameterFixedTable.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
from sextante.parameters.Parameter import Parameter
2-
from PyQt4 import QtGui
32

43
class ParameterFixedTable(Parameter):
54

65
def __init__(self, name="", description="", cols=["value"], numRows=3, fixedNumOfRows = False):
6+
Parameter.__init__(self, name, description)
77
self.cols = cols
88
self.numRows = numRows
99
self.fixedNumOfRows = fixedNumOfRows
10-
self.name = name
11-
self.description = description
1210
self.value = None
1311

1412
def setValue(self, obj):

src/sextante/parameters/ParameterMultipleInput.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ class ParameterMultipleInput(ParameterDataObject):
1818
TYPE_RASTER = 3
1919

2020
def __init__(self, name="", description="", datatype=-1, optional = False):
21-
self.name = name
22-
self.description = description
21+
ParameterDataObject.__init__(self, name, description)
2322
self.datatype = datatype
2423
self.optional = optional
2524
self.value = None

src/sextante/parameters/ParameterNumber.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
class ParameterNumber(Parameter):
55

66
def __init__(self, name="", description="", minValue = None, maxValue = None, default = 0):
7-
self.name = name
8-
self.description = description
7+
Parameter.__init__(self, name, description)
98
'''if the passed value is an int or looks like one, then we assume that float values
109
are not allowed'''
1110
try:

src/sextante/parameters/ParameterRange.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
class ParameterRange(Parameter):
44

55
def __init__(self, name="", description="", default="0,1"):
6-
self.name = name
7-
self.description = description
6+
Parameter.__init__(self, name, description)
87
self.default = default
98
self.value = None
109

src/sextante/parameters/ParameterRaster.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
class ParameterRaster(ParameterDataObject):
77

88
def __init__(self, name="", description="", optional=False):
9-
self.name = name
10-
self.description = description
9+
ParameterDataObject.__init__(self, name, description)
1110
self.optional = optional
1211
self.value = None
1312
self.exported = None

src/sextante/parameters/ParameterSelection.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
class ParameterSelection(Parameter):
44

55
def __init__(self, name="", description="", options=[], default = 0):
6-
self.name = name
7-
self.description = description
6+
Parameter.__init__(self, name, description)
87
self.options = options
98
self.value = None
109
self.default = default

src/sextante/parameters/ParameterString.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
class ParameterString(Parameter):
44

55
def __init__(self, name="", description="", default=""):
6-
self.name = name
7-
self.description = description
6+
Parameter.__init__(self, name, description)
87
self.default = default
98
self.value = None
109

src/sextante/parameters/ParameterTable.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
class ParameterTable(ParameterDataObject):
66

77
def __init__(self, name="", description="", optional=False):
8-
self.name = name
9-
self.description = description
8+
ParameterDataObject.__init__(self, name, description)
109
self.optional = optional
1110
self.value = None
1211

src/sextante/parameters/ParameterTableField.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
class ParameterTableField(Parameter):
44

55
def __init__(self, name="", description="", parent=None):
6-
self.name = name
7-
self.description = description
6+
Parameter.__init__(self, name, description)
87
self.parent = parent
98
self.value = None
109

src/sextante/parameters/ParameterVector.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ class ParameterVector(ParameterDataObject):
1111
VECTOR_TYPE_ANY = -1
1212

1313
def __init__(self, name="", description="", shapetype=-1, optional=False):
14-
self.name = name
15-
self.description = description
14+
ParameterDataObject.__init__(self, name, description)
1615
self.optional = optional
1716
self.shapetype = shapetype
1817
self.value = None

0 commit comments

Comments
 (0)