Changeset 96:aa6a0b79c073
- Timestamp:
- 04/21/12 11:13:29 (13 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- src/mlx
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/mlx/acft.py
r95 r96 25 25 self._maxVS = -10000.0 26 26 self._minVS = 10000.0 27 28 self._vrefLineIndex = None 27 29 28 30 self._checkers = [] … … 189 191 "Altimeter setting: %.0f hPa" % \ 190 192 (self._aircraftState.altimeter,)) 191 self.logger.message(self._aircraftState.timestamp, 192 "VRef speed calculated by the pilot: %s" % \ 193 ("-" if self._flight.vref is None 194 else str(self._flight.vref))) 193 self._vrefLineIndex = \ 194 self.logger.message(self._aircraftState.timestamp, 195 "VRef speed calculated by the pilot: %s" % \ 196 ("-" if self._flight.vref is None 197 else str(self._flight.vref))) 195 198 self.flight.flareStarted(flareStart, flareStartFS) 196 199 … … 230 233 if n1>=0.5: return False 231 234 return True 235 236 def updateVRef(self): 237 """Update the Vref value from the flight, if the Vref value has already 238 been logged.""" 239 if self._vrefLineIndex is not None: 240 self._logVRef() 241 242 def _logVRef(self): 243 """Log the Vref value either newly, or by updating the corresponding 244 line.""" 245 message = "VRef speed calculated by the pilot: %s" % \ 246 ("-" if self._flight.vref is None else str(self._flight.vref)) 247 if self._vrefLineIndex is None: 248 self._vrefLineIndex = \ 249 self.logger.message(self._aircraftState.timestamp, message) 250 else: 251 self.logger.updateLine(self._vrefLineIndex, message) 232 252 233 253 #--------------------------------------------------------------------------------------- -
src/mlx/gui/flight.py
r94 r96 1557 1557 1558 1558 self._vref.set_sensitive(False) 1559 self._wizard.gui.flight.aircraft.updateVRef() 1559 1560 # FIXME: Perhaps a separate initialize() call which would set up 1560 # defaults? 1561 # defaults? -> use reset() 1561 1562 self._flightEnded = False 1562 1563 … … 1618 1619 xscale = 0.0, yscale = 0.0) 1619 1620 1620 table = gtk.Table( 5, 2)1621 table = gtk.Table(7, 2) 1621 1622 table.set_row_spacings(4) 1622 1623 table.set_col_spacings(16) 1623 table.set_homogeneous( True)1624 table.set_homogeneous(False) 1624 1625 alignment.add(table) 1625 1626 self.setMainWidget(alignment) … … 1689 1690 labelAlignment.add(self._fuelUsed) 1690 1691 table.attach(labelAlignment, 1, 2, 4, 5) 1692 1693 labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0) 1694 label = gtk.Label("_Type:") 1695 label.set_use_underline(True) 1696 labelAlignment.add(label) 1697 table.attach(labelAlignment, 0, 1, 5, 6) 1698 1699 flightTypeModel = gtk.ListStore(str, int) 1700 index = 1 1701 for type in ["scheduled", "old-timer", "VIP", "charter"]: 1702 flightTypeModel.append([type, index]) 1703 index += 1 1704 1705 self._flightType = gtk.ComboBox(model = flightTypeModel) 1706 renderer = gtk.CellRendererText() 1707 self._flightType.pack_start(renderer, True) 1708 self._flightType.add_attribute(renderer, "text", 0) 1709 self._flightType.set_tooltip_text("Select the type of the flight.") 1710 self._flightType.set_active(0) 1711 self._flightType.connect("changed", self._flightTypeChanged) 1712 flightTypeAlignment = gtk.Alignment(xalign=0.0, xscale=0.0) 1713 flightTypeAlignment.add(self._flightType) 1714 table.attach(flightTypeAlignment, 1, 2, 5, 6) 1715 label.set_mnemonic_widget(self._flightType) 1716 1717 self._onlineFlight = gtk.CheckButton("_Online flight") 1718 self._onlineFlight.set_use_underline(True) 1719 self._onlineFlight.set_tooltip_text("Check if your flight was online, uncheck otherwise.") 1720 onlineFlightAlignment = gtk.Alignment(xalign=0.0, xscale=0.0) 1721 onlineFlightAlignment.add(self._onlineFlight) 1722 table.attach(onlineFlightAlignment, 1, 2, 6, 7) 1691 1723 1692 1724 button = self.addButton(gtk.STOCK_GO_BACK) … … 1727 1759 (flight.endFuel - flight.startFuel,)) 1728 1760 1761 self._flightType.set_active(-1) 1762 self._onlineFlight.set_active(True) 1763 1729 1764 def _backClicked(self, button): 1730 1765 """Called when the Back button is pressed.""" 1731 1766 self.goBack() 1767 1768 def _flightTypeChanged(self, comboBox): 1769 """Called when the flight type has changed.""" 1770 index = self._flightType.get_active() 1771 flightTypeIsValid = index>=0 1772 self._saveButton.set_sensitive(flightTypeIsValid) 1773 self._sendButton.set_sensitive(flightTypeIsValid) 1732 1774 1733 1775 #----------------------------------------------------------------------------- -
src/mlx/gui/gui.py
r93 r96 24 24 class GUI(fs.ConnectionListener): 25 25 """The main GUI class.""" 26 @staticmethod 27 def _formatFlightLogLine(timeStr, line): 28 """Format the given line for flight logging.""" 29 if timeStr is not None: 30 line = timeStr + ": " + line 31 return line + "\n" 32 26 33 def __init__(self, programDirectory, config): 27 34 """Construct the GUI.""" … … 33 40 self._reconnecting = False 34 41 self._connected = False 35 self._logger = logger.Logger( output =self)42 self._logger = logger.Logger(self) 36 43 self._flight = None 37 44 self._simulator = None … … 272 279 self._statusbar.updateConnection(False, False) 273 280 274 def write(self, msg): 275 """Write the given message to the log.""" 276 gobject.idle_add(self._writeLog, msg, self._logView) 277 281 def addFlightLogLine(self, timeStr, line): 282 """Write the given message line to the log.""" 283 gobject.idle_add(self._writeLog, 284 GUI._formatFlightLogLine(timeStr, line), 285 self._logView) 286 287 def updateFlightLogLine(self, index, timeStr, line): 288 """Update the line with the given index.""" 289 gobject.idle_add(self._updateFlightLogLine, index, 290 GUI._formatFlightLogLine(timeStr, line)) 291 292 def _updateFlightLogLine(self, index, line): 293 """Replace the contents of the given line in the log.""" 294 buffer = self._logView.get_buffer() 295 startIter = buffer.get_iter_at_line(index) 296 endIter = buffer.get_iter_at_line(index + 1) 297 buffer.delete(startIter, endIter) 298 buffer.insert(startIter, line) 299 self._logView.scroll_mark_onscreen(buffer.get_insert()) 300 278 301 def check(self, flight, aircraft, logger, oldState, state): 279 302 """Update the data.""" … … 428 451 429 452 for line in lines: 430 print >> sys.__stdout__, line453 #print >> sys.__stdout__, line 431 454 self._writeLog(line + "\n", self._debugLogView) 432 455 433 456 if text: 434 print >> sys.__stdout__, line,457 #print >> sys.__stdout__, text, 435 458 self._writeLog(text, self._debugLogView) 436 459 -
src/mlx/logger.py
r87 r96 28 28 NO_GO_SCORE = 10000 29 29 30 def __init__(self, output = sys.stdout):30 def __init__(self, output): 31 31 """Construct the logger.""" 32 self._lines = [] 32 33 self._faults = {} 33 34 self._output = output … … 42 43 43 44 The faults logged so far will be cleared.""" 45 self._lines = [] 44 46 self._faults.clear() 45 47 … … 47 49 """Put a simple textual message into the log with the given timestamp.""" 48 50 timeStr = Logger._getTimeStr(timestamp) 49 print >> self._output, timeStr + ":", msg51 return self._logLine(msg, timeStr) 50 52 51 53 def untimedMessage(self, msg): 52 54 """Put an untimed message into the log.""" 53 print >> self._output, msg55 return self._logLine(msg) 54 56 55 57 def debug(self, msg): … … 93 95 totalScore -= score 94 96 return totalScore 97 98 def updateLine(self, index, line): 99 """Update the line at the given index with the given string.""" 100 (timeStr, _line) = self._lines[index] 101 self._lines[index] = (timeStr, line) 102 self._output.updateFlightLogLine(index, timeStr, line) 103 104 def _logLine(self, line, timeStr = None): 105 """Log the given line.""" 106 index = len(self._lines) 107 self._lines.append((timeStr, line)) 108 self._output.addFlightLogLine(timeStr, line) 109 return index 95 110 96 111 #--------------------------------------------------------------------------------------
Note:
See TracChangeset
for help on using the changeset viewer.