@@ -34,9 +34,11 @@ def __init__(self, alg, paramDialog):
34
34
self .alg = alg ;
35
35
self .paramDialog = paramDialog
36
36
self .valueItems = {}
37
+ self .labels = {}
38
+ self .widgets = {}
37
39
self .dependentItems = {}
38
40
self .iterateButtons = {}
39
-
41
+ self . showAdvanced = False
40
42
self .initGUI ()
41
43
42
44
def initGUI (self ):
@@ -63,11 +65,20 @@ def initGUI(self):
63
65
self .verticalLayout = QtGui .QVBoxLayout ()
64
66
self .verticalLayout .setSpacing (5 )
65
67
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
66
76
for param in self .alg .parameters :
67
77
desc = param .description
68
78
if isinstance (param , ParameterExtent ):
69
79
desc += "(xmin, xmax, ymin, ymax)"
70
80
label = QtGui .QLabel (desc )
81
+ self .labels [param .name ] = label
71
82
widget = self .getWidgetFromParameter (param )
72
83
self .valueItems [param .name ] = widget
73
84
if isinstance (param , ParameterVector ):
@@ -93,6 +104,10 @@ def initGUI(self):
93
104
tooltip = param .description
94
105
label .setToolTip (tooltip )
95
106
widget .setToolTip (tooltip )
107
+ if param .isAdvanced :
108
+ label .setVisible (self .showAdvanced )
109
+ widget .setVisible (self .showAdvanced )
110
+ self .widgets [param .name ] = widget
96
111
self .verticalLayout .addWidget (label )
97
112
self .verticalLayout .addWidget (widget )
98
113
@@ -108,6 +123,17 @@ def initGUI(self):
108
123
self .verticalLayout .addStretch (1000 )
109
124
self .setLayout (self .verticalLayout )
110
125
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
+
111
137
def buttonToggled (self , value ):
112
138
if value :
113
139
sender = self .sender ()
0 commit comments