@@ -40,9 +40,19 @@ def ParseFloat(InputString, DefaultValue=0.0):
40
40
print ("Value not valid" )
41
41
return value
42
42
43
- class Dialog (dialog_text_base .DIALOG_TEXT_BASE ):
43
+ class Dialog (dialog_text_base .DialogPanelBase ):
44
+ def __init__ (self , parent , config , layertable , ordering , panelizer , func ):
45
+ dialog_text_base .DialogPanelBase .__init__ (self , None )
44
46
47
+ self .SetTitle (_APP_NAME + " - " + _APP_VERSION )
48
+ self .panel = DialogPanel (self ,config ,layertable ,ordering ,panelizer ,func )
49
+
50
+
51
+ class DialogPanel (dialog_text_base .DialogPanel ):
45
52
# The names of the config items need to match the names in dialog_text_base minus the m_
53
+ # - except for vScoreLayer
54
+ vscore_layer = 'vScoreLayer'
55
+ default_vscore_layer = 'User.Comments'
46
56
config_defaults = {
47
57
'dimensionsInchesBtn' : 'true' ,
48
58
'dimensionsMmBtn' : 'false' ,
@@ -55,11 +65,12 @@ class Dialog(dialog_text_base.DIALOG_TEXT_BASE):
55
65
'removeRightVerticalCheck' : 'false' ,
56
66
'productionBordersCheck' : 'false' ,
57
67
'productionFiducialsCheck' : 'false' ,
58
- 'productionExposeCheck' : 'false'
68
+ 'productionExposeCheck' : 'false' ,
69
+ vscore_layer : default_vscore_layer
59
70
}
60
71
61
- def __init__ (self , parent , config , ordering , panelizer , func ):
62
- dialog_text_base .DIALOG_TEXT_BASE .__init__ (self , parent )
72
+ def __init__ (self , parent , config , layertable , ordering , panelizer , func ):
73
+ dialog_text_base .DialogPanel .__init__ (self , parent )
63
74
64
75
# hack for some gtk themes that incorrectly calculate best size
65
76
#best_size = self.BestSize
@@ -68,6 +79,8 @@ def __init__(self, parent, config, ordering, panelizer, func):
68
79
69
80
self .config_file = config
70
81
82
+ self .layertable = layertable
83
+
71
84
self .ordering_instructions = ordering
72
85
73
86
self .panelizer = panelizer
@@ -76,8 +89,25 @@ def __init__(self, parent, config, ordering, panelizer, func):
76
89
77
90
self .error = None
78
91
79
- self .SetTitle (_APP_NAME + " - " + _APP_VERSION )
80
-
92
+ self .general = GeneralPanel (self .notebook )
93
+ self .vscore = VScorePanel (self .notebook )
94
+ self .notebook .AddPage (self .general , "General" )
95
+ self .notebook .AddPage (self .vscore , "V-Score" )
96
+
97
+ # Delete any existing rows in LayersGrid
98
+ if self .vscore .LayersGrid .NumberRows :
99
+ self .vscore .LayersGrid .DeleteRows (0 , self .vscore .LayersGrid .NumberRows )
100
+ # Append empty rows based on layertable
101
+ self .vscore .LayersGrid .AppendRows (len (self .layertable ))
102
+ # Initialize them
103
+ row = 0
104
+ for layer in self .layertable .keys ():
105
+ self .vscore .LayersGrid .SetCellValue (row , 0 , "0" ) # JSON style
106
+ self .vscore .LayersGrid .SetCellRenderer (row , 0 , wx .grid .GridCellBoolRenderer ())
107
+ self .vscore .LayersGrid .SetCellValue (row , 1 , layer )
108
+ self .vscore .LayersGrid .SetReadOnly (row , 1 )
109
+ row += 1
110
+
81
111
self .loadConfig ()
82
112
83
113
def loadConfig (self ):
@@ -108,34 +138,70 @@ def LoadSettings(self, params):
108
138
if value is None :
109
139
continue
110
140
111
- try :
112
- obj = getattr (self , "m_{}" .format (key ))
113
- if hasattr (obj , "SetValue" ):
114
- obj .SetValue (value )
115
- elif hasattr (obj , "SetStringSelection" ):
116
- obj .SetStringSelection (value )
117
- else :
118
- raise Exception ("Invalid item" )
119
- except Exception as e :
120
- pass
141
+ if self .vscore_layer in key :
142
+ defaultLayerFound = False
143
+ for row in range (self .vscore .LayersGrid .GetNumberRows ()):
144
+ if value in self .vscore .LayersGrid .GetCellValue (row , 1 ):
145
+ b = "1"
146
+ defaultLayerFound = True
147
+ else :
148
+ b = "0"
149
+ self .vscore .LayersGrid .SetCellValue (row , 0 , b )
150
+ if not defaultLayerFound :
151
+ self .vscore .LayersGrid .SetCellValue (0 , 0 , "1" ) # Default to the first layer
152
+ else :
153
+ try :
154
+ obj = getattr (self , "m_{}" .format (key ))
155
+ if hasattr (obj , "SetValue" ):
156
+ obj .SetValue (value )
157
+ elif hasattr (obj , "SetStringSelection" ):
158
+ obj .SetStringSelection (value )
159
+ else :
160
+ raise Exception ("Invalid item" )
161
+ except Exception as e :
162
+ pass
163
+
121
164
return params
122
165
123
166
def CurrentSettings (self ):
124
167
params = {}
125
168
126
169
for item in self .config_defaults .keys ():
127
- obj = getattr (self , "m_{}" .format (item ))
128
- if hasattr (obj , "GetValue" ):
129
- params .update ({item : obj .GetValue ()})
130
- elif hasattr (obj , "GetStringSelection" ):
131
- params .update ({item : obj .GetStringSelection ()})
170
+ if self .vscore_layer in item :
171
+ for row in range (self .vscore .LayersGrid .GetNumberRows ()):
172
+ if self .vscore .LayersGrid .GetCellValue (row , 0 ) == "1" :
173
+ params .update ({'vScoreLayer' : self .LayersGrid .GetCellValue (row , 1 )})
132
174
else :
133
- raise Exception ("Invalid item" )
175
+ obj = getattr (self , "m_{}" .format (item ))
176
+ if hasattr (obj , "GetValue" ):
177
+ params .update ({item : obj .GetValue ()})
178
+ elif hasattr (obj , "GetStringSelection" ):
179
+ params .update ({item : obj .GetStringSelection ()})
180
+ else :
181
+ raise Exception ("Invalid item" )
182
+
134
183
return params
135
184
136
185
def OnPanelizeClick (self , e ):
137
186
self .saveConfig ()
138
187
self .func (self , self .panelizer )
139
188
140
189
def OnCancelClick (self , e ):
141
- self .EndModal (wx .ID_CANCEL )
190
+ self .GetParent ().EndModal (wx .ID_CANCEL )
191
+
192
+ class GeneralPanel (dialog_text_base .GeneralPanelBase ):
193
+ def __init__ (self , parent ):
194
+ dialog_text_base .GeneralPanelBase .__init__ (self , parent )
195
+
196
+ class VScorePanel (dialog_text_base .VScorePanelBase ):
197
+ def __init__ (self , parent ):
198
+ dialog_text_base .VScorePanelBase .__init__ (self , parent )
199
+
200
+ def OnLayersGridCellClicked (self , event ):
201
+ self .LayersGrid .ClearSelection ()
202
+ #self.LayersGrid.SelectRow(event.Row)
203
+ if event .Col == 0 :
204
+ for row in range (self .LayersGrid .GetNumberRows ()):
205
+ val = "1" if (row == event .Row ) else "0" # JSON style
206
+ self .LayersGrid .SetCellValue (event .Row , event .Col , val )
207
+
0 commit comments