Ignore:
Timestamp:
09/25/16 06:40:16 (8 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
hg-Phase:
(<MercurialRepository 1 'hg:/home/ivaradi/mlx/hg' '/'>, 'public')
Message:

The basics of the pending flight window work (re #307).

File:
1 edited

Legend:

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

    r818 r819  
    22from mlx.gui.common import *
    33import mlx.gui.cef as cef
    4 from mlx.gui.flightlist import ColumnDescriptor, FlightList
     4from mlx.gui.flightlist import ColumnDescriptor, FlightList, PendingFlightsWindow
    55
    66import mlx.const as const
     
    453453        self.setMainWidget(self._flightList)
    454454
     455        self._pendingButton = self.addButton(xstr("flightsel_pending"),
     456                                             sensitive = False,
     457                                             clicked = self._pendingClicked,
     458                                             tooltip = xstr("flightsel_pending_tooltip"))
     459
    455460        self._saveButton = self.addButton(xstr("flightsel_save"),
    456461                                          sensitive = False,
     
    474479
    475480        self._flights = []
     481
     482        self._pendingFlightsWindow = PendingFlightsWindow(self._wizard)
     483        self._pendingFlightsWindowShown = False
     484        self._pendingFlightsWindow.connect("delete-event",
     485                                           self._deletePendingFlightsWindow)
    476486
    477487    def activate(self):
     
    514524        self._flights = []
    515525        self._flightList.clear()
     526        self._pendingFlightsWindow.clear()
     527        loginResult = self._wizard.loginResult
    516528        if self._wizard.loggedIn:
    517             for flight in self._wizard.loginResult.flights:
     529            for flight in loginResult.flights:
    518530                self._addFlight(flight)
     531            for flight in loginResult.reportedFlights:
     532                self._pendingFlightsWindow.addReportedFlight(flight)
     533            for flight in loginResult.rejectedFlights:
     534                self._pendingFlightsWindow.addRejectedFlight(flight)
     535
     536        self._updatePendingButton()
    519537
    520538    def _addFlight(self, flight):
     
    522540        self._flights.append(flight)
    523541        self._flightList.addFlight(flight)
     542
     543    def _pendingClicked(self, button):
     544        """Called when the Pending flights button is clicked."""
     545        self._pendingFlightsWindow.show_all()
     546        self._pendingFlightsWindowShown = True
     547        self._updateNextButton()
     548
     549    def _deletePendingFlightsWindow(self, window, event):
     550        """Called when the pending flights window is closed."""
     551        self._pendingFlightsWindow.hide()
     552        self._pendingFlightsWindowShown = False
     553        self._updateNextButton()
     554        return True
    524555
    525556    def _saveClicked(self, button):
     
    575606        selected = index is not None
    576607        self._saveButton.set_sensitive(selected)
    577         self._button.set_sensitive(selected)
     608        self._updateNextButton()
     609
     610    def _updatePendingButton(self):
     611        """Update the senstivity of the Pending button."""
     612        self._pendingButton.set_sensitive(self._pendingFlightsWindow.hasFlights)
     613
     614    def _updateNextButton(self):
     615        """Update the sensitivity of the Next button."""
     616        sensitive = self._flightList.selectedIndex is not None and \
     617          not self._pendingFlightsWindowShown
     618        self._button.set_sensitive(sensitive)
    578619
    579620    def _loadButtonClicked(self, loadButton):
Note: See TracChangeset for help on using the changeset viewer.