Changeset 61:7deb4cf7dd78 for src/mlx/gui
- Timestamp:
- 04/07/12 11:03:47 (13 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/mlx/gui/flight.py
r60 r61 6 6 import mlx.fs as fs 7 7 from mlx.checks import PayloadChecker 8 9 import datetime 10 import time 8 11 9 12 #----------------------------------------------------------------------------- … … 642 645 def _zfwRequested(self, button): 643 646 """Called when the ZFW is requested from the simulator.""" 647 self._wizard.gui.beginBusy("Querying ZFW...") 644 648 self._wizard.gui.simulator.requestZFW(self._handleZFW) 645 649 … … 650 654 def _processZFW(self, zfw): 651 655 """Process the given ZFW value received from the simulator.""" 656 self._wizard.gui.endBusy() 652 657 self._simulatorZFWValue = zfw 653 658 self._simulatorZFW.set_text("%.0f" % (zfw,)) … … 657 662 """Called when the forward button is clicked.""" 658 663 self._wizard._zfw = self._calculateZFW() 664 self._wizard.nextPage() 665 666 #----------------------------------------------------------------------------- 667 668 class TimePage(Page): 669 """Page displaying the departure and arrival times and allows querying the 670 current time from the flight simulator.""" 671 def __init__(self, wizard): 672 help = "The departure and arrival times are displayed below in UTC.\n\n" \ 673 "You can also query the current UTC time from the simulator.\n" \ 674 "Ensure that you have enough time to properly prepare for the flight." 675 676 super(TimePage, self).__init__(wizard, "Time", help) 677 678 alignment = gtk.Alignment(xalign = 0.5, yalign = 0.5, 679 xscale = 0.0, yscale = 0.0) 680 681 table = gtk.Table(3, 2) 682 table.set_row_spacings(4) 683 table.set_col_spacings(16) 684 table.set_homogeneous(False) 685 alignment.add(table) 686 self.setMainWidget(alignment) 687 688 label = gtk.Label("Departure:") 689 label.set_alignment(0.0, 0.5) 690 table.attach(label, 0, 1, 0, 1) 691 692 self._departure = gtk.Label() 693 self._departure.set_alignment(0.0, 0.5) 694 table.attach(self._departure, 1, 2, 0, 1) 695 696 label = gtk.Label("Arrival:") 697 label.set_alignment(0.0, 0.5) 698 table.attach(label, 0, 1, 1, 2) 699 700 self._arrival = gtk.Label() 701 self._arrival.set_alignment(0.0, 0.5) 702 table.attach(self._arrival, 1, 2, 1, 2) 703 704 button = gtk.Button("_Time from FS:") 705 button.set_use_underline(True) 706 button.connect("clicked", self._timeRequested) 707 table.attach(button, 0, 1, 2, 3) 708 709 self._simulatorTime = gtk.Label("-") 710 self._simulatorTime.set_alignment(0.0, 0.5) 711 table.attach(self._simulatorTime, 1, 2, 2, 3) 712 713 self._button = self.addButton(gtk.STOCK_GO_FORWARD, default = True) 714 self._button.set_use_stock(True) 715 self._button.connect("clicked", self._forwardClicked) 716 717 def activate(self): 718 """Activate the page.""" 719 bookedFlight = self._wizard._bookedFlight 720 self._departure.set_text(str(bookedFlight.departureTime.time())) 721 self._arrival.set_text(str(bookedFlight.arrivalTime.time())) 722 723 def _timeRequested(self, button): 724 """Request the time from the simulator.""" 725 self._wizard.gui.beginBusy("Querying time...") 726 self._wizard.gui.simulator.requestTime(self._handleTime) 727 728 def _handleTime(self, timestamp): 729 """Handle the result of a time retrieval.""" 730 gobject.idle_add(self._processTime, timestamp) 731 732 def _processTime(self, timestamp): 733 """Process the given time.""" 734 self._wizard.gui.endBusy() 735 tm = time.gmtime(timestamp) 736 t = datetime.time(tm.tm_hour, tm.tm_min, tm.tm_sec) 737 self._simulatorTime.set_text(str(t)) 738 739 ts = tm.tm_hour * 3600 + tm.tm_min * 60 + tm.tm_sec 740 dt = self._wizard._bookedFlight.departureTime.time() 741 dts = dt.hour * 3600 + dt.minute * 60 + dt.second 742 diff = dts-ts 743 744 markupBegin = "" 745 markupEnd = "" 746 if diff < 0: 747 markupBegin = '<b><span foreground="red">' 748 markupEnd = '</span></b>' 749 elif diff < 3*60 or diff > 30*60: 750 markupBegin = '<b><span foreground="orange">' 751 markupEnd = '</span></b>' 752 753 self._departure.set_markup(markupBegin + str(dt) + markupEnd) 754 755 def _forwardClicked(self, button): 756 """Called when the forward button is clicked.""" 659 757 self._wizard.nextPage() 660 758 … … 677 775 self._pages.append(ConnectPage(self)) 678 776 self._pages.append(PayloadPage(self)) 777 self._pages.append(TimePage(self)) 679 778 680 779 maxWidth = 0
Note:
See TracChangeset
for help on using the changeset viewer.