Ignore:
Timestamp:
05/21/17 15:21:55 (7 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
hg-Phase:
(<MercurialRepository 1 'hg:/home/ivaradi/mlx/hg' '/'>, 'public')
Message:

The accepted flights can be queried and viewed (re #307)

File:
1 edited

Legend:

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

    r853 r854  
    1313from mlx.gui.checklist import ChecklistEditor
    1414from mlx.gui.callouts import ApproachCalloutsEditor
     15from mlx.gui.flightlist import AcceptedFlightsWindow
    1516from mlx.gui.pirep import PIREPViewer, PIREPEditor
    1617from mlx.gui.bugreport import BugReportDialog
     
    119120
    120121        self._preferences = Preferences(self)
     122        self._flightsWindow = AcceptedFlightsWindow(self)
     123        self._flightsWindow.connect("delete-event", self._hideFlightsWindow)
    121124        self._checklistEditor = ChecklistEditor(self)
    122125        self._approachCalloutsEditor = ApproachCalloutsEditor(self)
     
    10591062        toolsMenuItem.set_submenu(toolsMenu)
    10601063        menuBar.append(toolsMenuItem)
     1064
     1065        self._flightsMenuItem = flightsMenuItem = \
     1066          gtk.ImageMenuItem(gtk.STOCK_SPELL_CHECK)
     1067        flightsMenuItem.set_use_stock(True)
     1068        flightsMenuItem.set_label(xstr("menu_tools_flights"))
     1069        flightsMenuItem.add_accelerator("activate", accelGroup,
     1070                                        ord(xstr("menu_tools_flights_key")),
     1071                                        CONTROL_MASK, ACCEL_VISIBLE)
     1072        flightsMenuItem.connect("activate", self.showFlights)
     1073        self._flightsMenuItem.set_sensitive(False)
     1074        toolsMenu.append(flightsMenuItem)
    10611075
    10621076        checklistMenuItem = gtk.ImageMenuItem(gtk.STOCK_APPLY)
     
    12221236            self._mainWindow.set_default(None)
    12231237
     1238    def loginSuccessful(self):
     1239        """Called when the login is successful."""
     1240        self._flightsMenuItem.set_sensitive(True)
     1241
    12241242    def isWizardActive(self):
    12251243        """Determine if the flight wizard is active."""
    12261244        return self._notebook.get_current_page()==0
     1245
     1246    def showFlights(self, menuItem):
     1247        """Callback for showing the flight list."""
     1248        if self._flightsWindow.hasFlights:
     1249            self._flightsWindow.show_all()
     1250        else:
     1251            self.beginBusy(xstr("acceptedflt_query_busy"))
     1252            self.webHandler.getAcceptedFlights(self._acceptedFlightsCallback)
     1253
     1254    def _acceptedFlightsCallback(self, returned, result):
     1255        """Called when the accepted flights have been received."""
     1256        gobject.idle_add(self._handleAcceptedFlights, returned, result)
     1257
     1258    def _handleAcceptedFlights(self, returned, result):
     1259        """Handle the result of the query for accepted flights."""
     1260        self.endBusy()
     1261        if returned:
     1262            self._flightsWindow.clear()
     1263            for flight in result.flights:
     1264                self._flightsWindow.addFlight(flight)
     1265            self._flightsWindow.show_all()
     1266        else:
     1267            dialog = gtk.MessageDialog(parent = self.mainWindow,
     1268                                       type = MESSAGETYPE_ERROR,
     1269                                       message_format = xstr("acceptedflt_failed"))
     1270            dialog.add_button(xstr("button_ok"), RESPONSETYPE_OK)
     1271            dialog.set_title(WINDOW_TITLE_BASE)
     1272            dialog.run()
     1273            dialog.hide()
     1274
     1275    def _hideFlightsWindow(self, window, event):
     1276        """Hide the window of the accepted flights."""
     1277        self._flightsWindow.hide()
     1278        return True
    12271279
    12281280    def _editChecklist(self, menuItem):
Note: See TracChangeset for help on using the changeset viewer.