Ignore:
Timestamp:
12/21/12 16:50:01 (11 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
Phase:
public
Message:

Implemented support for entering derate values (#158)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/mlx/gui/flight.py

    r383 r384  
    19991999                                  xscale = 0.0, yscale = 0.0)
    20002000
    2001         table = gtk.Table(6, 4)
     2001        table = gtk.Table(7, 4)
    20022002        table.set_row_spacings(4)
    20032003        table.set_col_spacings(16)
     
    20442044
    20452045        self._v1Unit = gtk.Label(xstr("label_knots"))
     2046        self._v1Unit.set_alignment(0.0, 0.5)
    20462047        table.attach(self._v1Unit, 3, 4, 2, 3)
    20472048
     
    20602061
    20612062        self._vrUnit = gtk.Label(xstr("label_knots"))
     2063        self._vrUnit.set_alignment(0.0, 0.5)
    20622064        table.attach(self._vrUnit, 3, 4, 3, 4)
    20632065
     
    20762078
    20772079        self._v2Unit = gtk.Label(xstr("label_knots"))
     2080        self._v2Unit.set_alignment(0.0, 0.5)
    20782081        table.attach(self._v2Unit, 3, 4, 4, 5)
     2082
     2083        self._hasDerate = False
     2084
     2085        self._derateLabel = gtk.Label()
     2086        self._derateLabel.set_use_underline(True)
     2087        self._derateLabel.set_markup(xstr("takeoff_derate_tupolev"))
     2088        self._derateLabel.set_alignment(0.0, 0.5)
     2089        table.attach(self._derateLabel, 0, 1, 5, 6)
     2090
     2091        self._derate = gtk.Entry()
     2092        self._derate.set_width_chars(10)
     2093        self._derate.set_tooltip_text(xstr("takeoff_derate_tooltip"))
     2094        self._derate.set_alignment(1.0)
     2095        self._derate.connect("changed", self._derateChanged)
     2096        table.attach(self._derate, 1, 3, 5, 6)
     2097        self._derateLabel.set_mnemonic_widget(self._derate)
     2098
     2099        self._derateUnit = gtk.Label("")
     2100        self._derateUnit.set_use_markup(True)
     2101        self._derateUnit.set_alignment(0.0, 0.5)
     2102        table.attach(self._derateUnit, 3, 4, 5, 6)
    20792103
    20802104        self._rto = gtk.CheckButton(xstr("takeoff_rto"))
     
    20822106        self._rto.set_tooltip_text(xstr("takeoff_rto_tooltip"))
    20832107        self._rto.connect("toggled", self._rtoToggled)
    2084         table.attach(self._rto, 2, 4, 5, 6, ypadding = 8)
     2108        table.attach(self._rto, 2, 4, 6, 7, ypadding = 8)
    20852109
    20862110        self.addCancelFlightButton()
     
    21142138        """Get the v2 speed."""
    21152139        return self._v2.get_int()
     2140
     2141    @property
     2142    def derate(self):
     2143        """Get the derate value, if any."""
     2144        if self._hasDerate:
     2145            derate = self._derate.get_text()
     2146            return derate if derate else None
     2147        else:
     2148            return None
    21162149
    21172150    @property
     
    21432176        self._v2.set_tooltip_markup(xstr("takeoff_v2_tooltip" + i18nSpeedUnit))
    21442177
     2178        (derateLabel, derateUnit) = \
     2179             self._wizard.gui.flight.aircraft.derateLabels
     2180
     2181        self._hasDerate = derateLabel is not None
     2182
     2183        if self._hasDerate:
     2184            self._derateLabel.set_markup(derateLabel)
     2185            self._derateLabel.set_use_underline(True)
     2186            self._derateUnit.set_markup("" if derateUnit is None
     2187                                        else derateUnit)
     2188        else:
     2189            self._derateLabel.set_markup(xstr("takeoff_derate"))
     2190            self._derateUnit.set_text("")
     2191
     2192        self._derate.set_text("")
     2193
     2194        self._derateLabel.set_sensitive(self._hasDerate)
     2195        self._derate.set_sensitive(self._hasDerate)
     2196        self._derateUnit.set_sensitive(self._hasDerate)
     2197
    21452198        self._rto.set_active(False)
    21462199        self._rto.set_sensitive(False)
     
    21602213        self._vr.reset()
    21612214        self._v2.reset()
     2215
     2216        self._hasDerate = False
    21622217
    21632218    def setRTOEnabled(self, enabled):
     
    21762231                    self.v2 is not None and \
    21772232                    self.v1 <= self.vr and \
    2178                     self.vr <= self.v2
     2233                    self.vr <= self.v2 and \
     2234                    (not self._hasDerate or self._derate.get_text()!="")
    21792235        self._button.set_sensitive(sensitive)
    21802236
     
    21892245        self._valueChanged(entry, arg)
    21902246
     2247    def _derateChanged(self, entry):
     2248        """Called when the value of the derate is changed."""
     2249        self._updateForwardButton()
     2250
    21912251    def _rtoToggled(self, button):
    21922252        """Called when the RTO check button is toggled."""
     
    22002260        """Called when the forward button is clicked."""
    22012261        self._wizard.gui.flight.aircraft.updateV1R2()
     2262        if self._hasDerate:
     2263            self._wizard.gui.flight.aircraft.updateDerate()
    22022264        self._wizard.nextPage()
    22032265
     
    31183180        """Get the V2 speed."""
    31193181        return self._takeoffPage.v2
     3182
     3183    @property
     3184    def derate(self):
     3185        """Get the derate value."""
     3186        return self._takeoffPage.derate
    31203187
    31213188    @property
Note: See TracChangeset for help on using the changeset viewer.