Changeset 437:750a9bfbc6dd for src/mlx
- Timestamp:
- 02/23/13 08:46:11 (12 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- src/mlx
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
src/mlx/const.py
r432 r437 237 237 #------------------------------------------------------------------------------- 238 238 239 ## Delay code: loading problems240 DELAYCODE_LOADING = 0241 242 ## Delay code: VATSIM problem243 DELAYCODE_VATSIM = 1244 245 ## Delay code: network problems246 DELAYCODE_NETWORK = 2247 248 ## Delay code: controller's fault249 DELAYCODE_CONTROLLER = 3250 251 ## Delay code: system crash or freeze252 DELAYCODE_SYSTEM = 4253 254 ## Delay code: navigation problem255 DELAYCODE_NAVIGATION = 5256 257 ## Delay code: traffic problems258 DELAYCODE_TRAFFIC = 6259 260 ## Delay code: apron navigation261 DELAYCODE_APRON = 7262 263 ## Delay code: weather problems264 DELAYCODE_WEATHER = 8265 266 ## Delay code: personal reasons267 DELAYCODE_PERSONAL = 9268 269 #-------------------------------------------------------------------------------270 271 239 ## Message type: logger error 272 240 # FIXME: cannot set the hotkey -
src/mlx/gui/delaycodes.py
r436 r437 185 185 #------------------------------------------------------------------------------ 186 186 187 class CheckButton(gtk.CheckButton): 188 """A check button that contains a reference to a row in the delay code 189 data table.""" 190 def __init__(self, delayCodeRow): 191 """Construct the check button.""" 192 super(CheckButton, self).__init__() 193 self.delayCodeRow = delayCodeRow 194 195 #------------------------------------------------------------------------------ 196 187 197 CAPTION = 1 188 198 189 199 DELAYCODE = 2 190 200 191 _data1 = ( ["Num", "Code", "Title", "Description"], 201 _data1 = ( lambda row: row[0].strip(), 202 ["Num", "Code", "Title", "Description"], 192 203 [ (CAPTION, "Others"), 193 204 (DELAYCODE, (" 6", "OA ", "NO GATES/STAND AVAILABLE", … … 203 214 "Error with passenger or baggage details")) ] ) 204 215 205 _data2 = ( ["MA", "IATA", "Description"], 216 _data2 = ( lambda row: row[0].strip(), 217 ["MA", "IATA", "Description"], 206 218 [ (CAPTION, "Passenger and baggage"), 207 (DELAYCODE, (" 012", "01 ",219 (DELAYCODE, (" 012", "01 ", 208 220 "Late shipping of parts and/or materials")), 209 221 (DELAYCODE, (" 111", "11", … … 223 235 super(DelayCodeTable, self).__init__() 224 236 237 self._delayCodeData = None 238 225 239 self._treeView = None 226 240 227 self._listStore = gtk.ListStore(str, str) 228 self._treeView = gtk.TreeView(self._listStore) 241 self._treeView = gtk.TreeView(gtk.ListStore(str, str)) 229 242 self._treeView.set_rules_hint(True) 230 243 … … 232 245 233 246 self._alignments = [] 247 self._checkButtons = [] 234 248 235 249 self._eventBox = gtk.EventBox() … … 244 258 245 259 self._previousWidth = 0 260 261 @property 262 def delayCodes(self): 263 """Get a list of the delay codes checked by the user.""" 264 codes = [] 265 266 if self._delayCodeData is not None: 267 codeExtractor = self._delayCodeData[0] 268 for checkButton in self._checkButtons: 269 if checkButton.get_active(): 270 codes.append(codeExtractor(checkButton.delayCodeRow)) 271 272 return codes 246 273 247 274 def allocate_column_sizes(self, allocation): … … 263 290 data = _data2 264 291 292 self._delayCodeData = data 293 265 294 columns = self._treeView.get_columns() 266 295 for column in columns: 267 296 self._treeView.remove_column(column) 268 297 269 ( headers, rows) = data298 (_extractor, headers, rows) = data 270 299 numColumns = len(headers) + 1 271 300 numRows = len(rows) … … 287 316 288 317 self._alignments = [] 318 self._checkButtons = [] 289 319 290 320 firstDelayCodeRow = True … … 301 331 self._table.set_row_spacing(i, 8) 302 332 elif type==DELAYCODE: 333 checkButton = CheckButton(elements) 334 self._checkButtons.append(checkButton) 303 335 alignment = Alignment(xalign = 0.5, yalign = 0.5, xscale = 1.0) 304 alignment.add( gtk.CheckButton())336 alignment.add(checkButton) 305 337 self._table.attach(alignment, 0, 1, i, i+1) 306 338 if firstDelayCodeRow: -
src/mlx/gui/info.py
r436 r437 23 23 """The flight info tab.""" 24 24 @staticmethod 25 def _delayCodes():26 """Get an array of delay codes."""27 return [ (const.DELAYCODE_LOADING, xstr("info_delay_loading")),28 (const.DELAYCODE_VATSIM, xstr("info_delay_vatsim")),29 (const.DELAYCODE_NETWORK, xstr("info_delay_net")),30 (const.DELAYCODE_CONTROLLER, xstr("info_delay_atc")),31 (const.DELAYCODE_SYSTEM, xstr("info_delay_system")),32 (const.DELAYCODE_NAVIGATION, xstr("info_delay_nav")),33 (const.DELAYCODE_TRAFFIC, xstr("info_delay_traffic")),34 (const.DELAYCODE_APRON, xstr("info_delay_apron")),35 (const.DELAYCODE_WEATHER, xstr("info_delay_weather")),36 (const.DELAYCODE_PERSONAL, xstr("info_delay_personal")) ]37 38 @staticmethod39 25 def _createCommentArea(label): 40 26 """Create a comment area. … … 54 40 55 41 scroller = gtk.ScrolledWindow() 56 # FIXME: these should be constants 57 scroller.set_policy(gtk.PolicyType.AUTOMATIC if pygobject 58 else gtk.POLICY_AUTOMATIC, 59 gtk.PolicyType.AUTOMATIC if pygobject 60 else gtk.POLICY_AUTOMATIC) 61 scroller.set_shadow_type(gtk.ShadowType.IN if pygobject 62 else gtk.SHADOW_IN) 42 scroller.set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC) 43 scroller.set_shadow_type(SHADOW_IN) 44 63 45 comments = gtk.TextView() 64 46 comments.set_wrap_mode(WRAP_WORD) … … 100 82 padding_left = 8, padding_right = 8) 101 83 102 103 # self._delayTable = table = gtk.Table(5, 2) 104 # table.set_col_spacings(16) 105 106 # row = 0 107 # column = 0 108 109 # self._delayCodeWidgets = [] 110 # for (_code, label) in FlightInfo._delayCodes(): 111 # button = gtk.CheckButton(label) 112 # button.set_use_underline(True) 113 # table.attach(button, column, column + 1, row, row + 1) 114 # self._delayCodeWidgets.append(button) 115 # if column==0: 116 # column += 1 117 # else: 118 # row += 1 119 # column = 0 120 self._delayTable = table = DelayCodeTable() 84 self._delayCodeTable = table = DelayCodeTable() 121 85 self._delayWindow = scrolledWindow = gtk.ScrolledWindow() 122 86 scrolledWindow.add(table) … … 156 120 def delayCodes(self): 157 121 """Get the list of delay codes checked by the user.""" 158 codes = [] 159 delayCodes = FlightInfo._delayCodes() 160 for index in range(0, len(delayCodes)): 161 if self._delayCodeWidgets[index].get_active(): 162 codes.append(delayCodes[index][0]) 163 return codes 122 return self._delayCodeTable.delayCodes 164 123 165 124 def enable(self, aircraftType): … … 167 126 self._comments.set_sensitive(True) 168 127 self._flightDefects.set_sensitive(True) 169 self._delay Table.setType(aircraftType)128 self._delayCodeTable.setType(aircraftType) 170 129 self._delayWindow.set_sensitive(True) 171 self._delay Table.setStyle()130 self._delayCodeTable.setStyle() 172 131 173 132 def disable(self): … … 176 135 self._flightDefects.set_sensitive(False) 177 136 self._delayWindow.set_sensitive(False) 178 self._delay Table.setStyle()137 self._delayCodeTable.setStyle() 179 138 180 139 def reset(self): … … 182 141 self._comments.get_buffer().set_text("") 183 142 self._flightDefects.get_buffer().set_text("") 184 self._delayTable.reset() 185 # for widget in self._delayCodeWidgets: 186 # widget.set_active(False) 143 self._delayCodeTable.reset() 187 144 188 145 def _commentsChanged(self, textbuffer): -
src/mlx/gui/pirep.py
r303 r437 241 241 for code in pirep.delayCodes: 242 242 if delayCodes: delayCodes += ", " 243 delayCodes += PIREP.delayCodeNames[code]243 delayCodes += code 244 244 245 245 self._delayCodes.get_buffer().set_text(delayCodes) -
src/mlx/pirep.py
r401 r437 19 19 class PIREP(object): 20 20 """A pilot's report of a flight.""" 21 delayCodeNames = { const.DELAYCODE_LOADING : "Loading Problems",22 const.DELAYCODE_NETWORK : "Net Problems",23 const.DELAYCODE_SYSTEM : "System Crash/Freezing",24 const.DELAYCODE_TRAFFIC : "Traffic Problems",25 const.DELAYCODE_WEATHER : "Weather Problems",26 const.DELAYCODE_VATSIM : "VATSIM Problem",27 const.DELAYCODE_CONTROLLER : "Controller's Fault",28 const.DELAYCODE_NAVIGATION : "Navigation Problem",29 const.DELAYCODE_APRON : "Apron Navigation Problems",30 const.DELAYCODE_PERSONAL : "Personal Reasons" }31 32 21 @staticmethod 33 22 def _formatLine(timeStr, line): … … 140 129 for code in self.delayCodes: 141 130 if s: s += ", " 142 s += PIREP.delayCodeNames[code]131 s += code 143 132 return s 144 133
Note:
See TracChangeset
for help on using the changeset viewer.