Changeset 138:bc4d9d192a7b


Ignore:
Timestamp:
05/01/12 07:11:34 (13 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
Phase:
public
Message:

Uppercasing characters in certain fields.

File:
1 edited

Legend:

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

    r136 r138  
    10271027                               else gtk.POLICY_AUTOMATIC)
    10281028
     1029        self._uppercasingRoute = False
     1030
    10291031        self._route = gtk.TextView()
    10301032        self._route.set_tooltip_text(xstr("route_route_tooltip"))
     1033        self._route.set_wrap_mode(WRAP_WORD)
    10311034        self._route.get_buffer().connect("changed", self._routeChanged)
     1035        self._route.get_buffer().connect_after("insert-text", self._routeInserted)
    10321036        routeWindow.add(self._route)
    10331037
     
    10791083    def _routeChanged(self, textBuffer):
    10801084        """Called when the route has changed."""
    1081         self._updateForwardButton()
     1085        if not self._uppercasingRoute:
     1086            self._updateForwardButton()
     1087
     1088    def _routeInserted(self, textBuffer, iter, text, length):
     1089        """Called when new characters are inserted into the route.
     1090
     1091        It uppercases all characters."""
     1092        if not self._uppercasingRoute:
     1093            self._uppercasingRoute = True
     1094
     1095            iter1 = iter.copy()
     1096            iter1.backward_chars(length)
     1097            textBuffer.delete(iter, iter1)
     1098
     1099            textBuffer.insert(iter, text.upper())
     1100
     1101            self._uppercasingRoute = False
    10821102
    10831103    def _backClicked(self, button):
     
    11881208                                  gtk.PolicyType.AUTOMATIC if pygobject
    11891209                                  else gtk.POLICY_AUTOMATIC)
     1210
     1211        self._uppercasingMETAR = False
     1212
    11901213        self._metar = gtk.TextView()
    11911214        self._metar.set_accepts_tab(False)
    11921215        self._metar.set_wrap_mode(gtk.WrapMode.WORD if pygobject else gtk.WRAP_WORD)
    11931216        self._metar.get_buffer().connect("changed", self._metarChanged)
     1217        self._metar.get_buffer().connect_after("insert-text", self._metarInserted)
    11941218        scrolledWindow.add(self._metar)
    11951219        alignment = gtk.Alignment(xalign = 0.0, yalign = 0.0,
     
    12841308    def _metarChanged(self, buffer):
    12851309        """Called when the METAR has changed."""
    1286         self.metarEdited = True
    1287         self._button.set_sensitive(buffer.get_text(buffer.get_start_iter(),
    1288                                                    buffer.get_end_iter(),
    1289                                                    True)!="")
     1310        if not self._uppercasingMETAR:
     1311            self.metarEdited = True
     1312            self._button.set_sensitive(buffer.get_text(buffer.get_start_iter(),
     1313                                                       buffer.get_end_iter(),
     1314                                                       True)!="")
     1315
     1316    def _metarInserted(self, textBuffer, iter, text, length):
     1317        """Called when new characters are inserted into the METAR.
     1318
     1319        It uppercases all characters."""
     1320        if not self._uppercasingMETAR:
     1321            self._uppercasingMETAR = True
     1322
     1323            iter1 = iter.copy()
     1324            iter1.backward_chars(length)
     1325            textBuffer.delete(iter, iter1)
     1326
     1327            textBuffer.insert(iter, text.upper())
     1328
     1329            self._uppercasingMETAR = False
    12901330
    12911331#-----------------------------------------------------------------------------
     
    13191359        self._runway.set_width_chars(10)
    13201360        self._runway.set_tooltip_text(xstr("takeoff_runway_tooltip"))
    1321         self._runway.connect("changed", self._valueChanged)
     1361        self._runway.connect("changed", self._upperChanged)
    13221362        table.attach(self._runway, 1, 3, 0, 1)
    13231363        label.set_mnemonic_widget(self._runway)
     
    13311371        self._sid.set_width_chars(10)
    13321372        self._sid.set_tooltip_text(xstr("takeoff_sid_tooltip"))
    1333         self._sid.connect("changed", self._valueChanged)
     1373        self._sid.connect("changed", self._upperChanged)
    13341374        table.attach(self._sid, 1, 3, 1, 2)
    13351375        label.set_mnemonic_widget(self._sid)
     
    14531493        self._updateForwardButton()
    14541494       
     1495    def _upperChanged(self, entry, arg = None):
     1496        """Called when the value of some entry widget has changed and the value
     1497        should be converted to uppercase."""
     1498        entry.set_text(entry.get_text().upper())
     1499        self._valueChanged(entry, arg)
     1500       
    14551501    def _backClicked(self, button):
    14561502        """Called when the Back button is pressed."""
     
    14951541        self._star.set_width_chars(10)
    14961542        self._star.set_tooltip_text(xstr("landing_star_tooltip"))
    1497         self._star.connect("changed", self._updateForwardButton)
     1543        self._star.connect("changed", self._upperChanged)
    14981544        self._star.set_sensitive(False)
    14991545        table.attach(self._star, 2, 4, 0, 1)
     
    15121558        self._transition.set_width_chars(10)
    15131559        self._transition.set_tooltip_text(xstr("landing_transition_tooltip"))
    1514         self._transition.connect("changed", self._updateForwardButton)
     1560        self._transition.connect("changed", self._upperChanged)
    15151561        self._transition.set_sensitive(False)
    15161562        table.attach(self._transition, 2, 4, 1, 2)
     
    15251571        self._runway.set_width_chars(10)
    15261572        self._runway.set_tooltip_text(xstr("landing_runway_tooltip"))
    1527         self._runway.connect("changed", self._updateForwardButton)
     1573        self._runway.connect("changed", self._upperChanged)
    15281574        table.attach(self._runway, 2, 4, 2, 3)
    15291575        label.set_mnemonic_widget(self._runway)
     
    15371583        self._approachType.set_width_chars(10)
    15381584        self._approachType.set_tooltip_text(xstr("landing_approach_tooltip"))
    1539         self._approachType.connect("changed", self._updateForwardButton)
     1585        self._approachType.connect("changed", self._upperChanged)
    15401586        table.attach(self._approachType, 2, 4, 3, 4)
    15411587        label.set_mnemonic_widget(self._approachType)
     
    16501696        self._updateForwardButton()   
    16511697
    1652     def _updateForwardButton(self, widget = None):
     1698    def _updateForwardButton(self):
    16531699        """Update the sensitivity of the forward button."""
    16541700        sensitive = self._flightEnded and \
     
    16631709                    self.vref is not None
    16641710        self._button.set_sensitive(sensitive)
     1711
     1712    def _upperChanged(self, entry):
     1713        """Called for entry widgets that must be converted to uppercase."""
     1714        entry.set_text(entry.get_text().upper())
     1715        self._updateForwardButton()
    16651716
    16661717    def _vrefChanged(self, widget, value):
Note: See TracChangeset for help on using the changeset viewer.