1
+ from PyQt4 .QtCore import *
2
+ from PyQt4 .QtGui import *
3
+ from PyQt4 import QtCore , QtGui
4
+ from sextante .outputs .OutputRaster import OutputRaster
5
+ from sextante .outputs .OutputVector import OutputVector
6
+ from sextante .gui .RenderingStyles import RenderingStyles
7
+
8
+ class EditRenderingStylesDialog (QtGui .QDialog ):
9
+ def __init__ (self , alg ):
10
+ QtGui .QDialog .__init__ (self )
11
+ self .setModal (True )
12
+ self .alg = alg
13
+ self .setupUi ()
14
+
15
+ def setupUi (self ):
16
+ self .valueItems = {}
17
+ self .dependentItems = {}
18
+ self .resize (650 , 450 )
19
+ self .buttonBox = QtGui .QDialogButtonBox ()
20
+ self .buttonBox .setOrientation (QtCore .Qt .Horizontal )
21
+ self .buttonBox .setStandardButtons (QtGui .QDialogButtonBox .Cancel | QtGui .QDialogButtonBox .Ok )
22
+ self .buttonBox .setObjectName ("buttonBox" )
23
+ self .tableWidget = QtGui .QTableWidget ()
24
+ self .tableWidget .setSelectionMode (QtGui .QAbstractItemView .NoSelection )
25
+ self .tableWidget .setColumnCount (2 )
26
+ self .tableWidget .setColumnWidth (0 ,300 )
27
+ self .tableWidget .setColumnWidth (1 ,300 )
28
+ self .tableWidget .setHorizontalHeaderItem (0 , QtGui .QTableWidgetItem ("Output" ))
29
+ self .tableWidget .setHorizontalHeaderItem (1 , QtGui .QTableWidgetItem ("Style" ))
30
+ self .tableWidget .setObjectName ("tableWidget" )
31
+ self .tableWidget .verticalHeader ().setVisible (False )
32
+ self .tableWidget .horizontalHeader ().setResizeMode (QtGui .QHeaderView .Stretch )
33
+ self .setTableContent ()
34
+ self .setWindowTitle (self .alg .name )
35
+ self .verticalLayout = QtGui .QVBoxLayout ()
36
+ self .verticalLayout .setSpacing (2 )
37
+ self .verticalLayout .setMargin (0 )
38
+ self .verticalLayout .setObjectName ("vLayout" )
39
+ self .verticalLayout .addWidget (self .tableWidget )
40
+ self .verticalLayout .addWidget (self .buttonBox )
41
+ self .setLayout (self .verticalLayout )
42
+ QtCore .QObject .connect (self .buttonBox , QtCore .SIGNAL ("accepted()" ), self .okPressed )
43
+ QtCore .QObject .connect (self .buttonBox , QtCore .SIGNAL ("rejected()" ), self .cancelPressed )
44
+ QtCore .QMetaObject .connectSlotsByName (self )
45
+
46
+ def setTableContent (self ):
47
+ numOutputs = 0
48
+ for output in self .alg .outputs :
49
+ if isinstance (output , (OutputVector , OutputRaster )):
50
+ if isinstance (output , OutputVector ):
51
+ if output .hidden :
52
+ continue
53
+ numOutputs += 1
54
+ self .tableWidget .setRowCount (numOutputs )
55
+
56
+ i = 0
57
+ for output in self .alg .outputs :
58
+ if isinstance (output , OutputVector ):
59
+ if output .hidden :
60
+ continue
61
+ item = QtGui .QTableWidgetItem (output .description + "<" + output .__module__ .split ("." )[- 1 ] + ">" )
62
+ item .setFlags (QtCore .Qt .ItemIsEnabled )
63
+ self .tableWidget .setItem (i ,0 , item )
64
+ item = QtGui .QLineEdit ()
65
+ style = RenderingStyles .getStyle (self .alg .commandLineName (), output .name )
66
+ if style :
67
+ item .setText (str (style ))
68
+ self .valueItems [output .name ] = item
69
+ self .tableWidget .setCellWidget (i ,1 , item )
70
+ self .tableWidget .setRowHeight (i ,22 )
71
+ i += 1
72
+
73
+ def okPressed (self ):
74
+ styles = {}
75
+ for key in self .valueItems .keys ():
76
+ styles [key ] = str (self .valueItems [key ].text ())
77
+ RenderingStyles .addAlgStylesAndSave (self .alg .commandLineName (), styles )
78
+ self .close ()
79
+
80
+ def cancelPressed (self ):
81
+ self .close ()
0 commit comments