1+
2+ from PyQt4 .QtGui import *
3+ from processing .gui .AlgorithmDialog import AlgorithmDialog
4+ from processing .gui .AlgorithmDialogBase import AlgorithmDialogBase
5+ from processing .gui .ParametersPanel import ParametersPanel
6+
7+ class GdalAlgorithmDialog (AlgorithmDialog ):
8+
9+ def __init__ (self , alg ):
10+ AlgorithmDialogBase .__init__ (self , alg )
11+
12+ self .alg = alg
13+
14+ self .mainWidget = GdalParametersPanel (self , alg )
15+ self .setMainWidget ()
16+ self .mainWidget .parametersHaveChanged ()
17+
18+ class GdalParametersPanel (ParametersPanel ):
19+
20+ def __init__ (self , parent , alg ):
21+ ParametersPanel .__init__ (self , parent , alg )
22+
23+ w = QWidget ()
24+ layout = QVBoxLayout ()
25+ layout .setMargin (9 )
26+ layout .setSpacing (6 )
27+ label = QLabel ()
28+ label .setText ("GDAL/OGR console call" )
29+ layout .addWidget (label )
30+ self .text = QPlainTextEdit ()
31+ self .text .setEnabled (False )
32+ layout .addWidget (self .text )
33+ w .setLayout (layout )
34+ self .layout ().addWidget (w )
35+
36+ self .connectParameterSignals ()
37+ self .parametersHaveChanged ()
38+
39+ def connectParameterSignals (self ):
40+ for w in self .widgets .values ():
41+ if isinstance (w , QLineEdit ):
42+ w .textChanged .connect (self .parametersHaveChanged )
43+ elif isinstance (w , QComboBox ):
44+ w .currentIndexChanged .connect (self .parametersHaveChanged )
45+ elif isinstance (w , QCheckBox ):
46+ w .stateChanged .connect (self .parametersHaveChanged )
47+
48+ def parametersHaveChanged (self ):
49+ try :
50+ self .parent .setParamValues ()
51+ for output in self .alg .outputs :
52+ if output .value is None :
53+ output .value = "[temporary file]"
54+ commands = self .alg .getConsoleCommands ()
55+ commands = [c for c in commands if c not in ['cmd.exe' , '/C ' ]]
56+ self .text .setPlainText (" " .join (commands ))
57+ except :
58+ self .text .setPlainText ("" )
0 commit comments