Ignore:
Files:
15 added
55 edited

Legend:

Unmodified
Added
Removed
  • MLXMANIFEST

    r723 r726  
    11library/encodings/shift_jis.pyc 1670    afdb08e9b2888f86fc71010edcf057b4
    2 library/xml/__init__.pyc        1058    8f77f254e8c6db7a3b6d9930a686d787
    3 doc/manual/en/finish.png        28855   671eac74a9f5801c794f08d5861eafaa
    42library/sre_constants.pyc       5988    060e037737c1096503cf9247fc353edf
    53library/encodings/euc_jis_2004.pyc      1694    e12bbd059d4fd595cf4be5440ab439c2
    6 library/encodings/iso8859_7.pyc 2686    db390f1961c1fd4181e351c330816ecd
     4library/xml/dom/xmlbuilder.pyc  15414   42285fdd810a2aa92c06775b5d415c33
    75library/fnmatch.pyc     3414    4d50000f78e903598af06ef1c5cfb3ef
    8 library/libexpat-1.dll  143096  701659d3689bf4a8265b669b7d774255
    9 library/gtk/_gtk.pyc    549     fc79b81b10be66eb2514e690cc0090ac
     6library/gtk/_gtk.pyc    549     9458c6b0ddc3c1e11c1203b6fd4633a9
    107library/encodings/cp858.pyc     7591    02054a0b8e91b9758826eb70cddf096f
    11 library/mlx/pirep.pyc   4623    6c485ea65ff6245ab56960a8bbec7051
    128library/encodings/cp1254.pyc    2678    17ff2ac86f90886d5c73ed789f0499f3
    139library/encodings/unicode_internal.pyc  2022    1e902113491e0c334b44deb0c8940e01
    14 library/libpango-1.0-0.dll      333729  5a14efd93ee27cfe960220fe4a904911
    15 library/mlx/gui/gui.pyc 53459   ff9a0ce7c21f1d3dfb7c1359a4226d34
    16 library/stat.pyc        2503    d3b6dc7a54e705219f04d0be75a212de
    17 library/posixpath.pyc   10734   d694316c239784c444b252c801c97efa
    18 doc/manual/hu/landing.png       28525   2dd99249a389e9faf5c4d7b1180e8ebb
     10library/lxml/etree.pyc  555     698876f9fdc81ba76c8a6fe486c49dab
    1911library/encodings/gbk.pyc       1622    71c1e7fe25116114241829a60e57c5f4
    2012sounds/speed.mp3        26331   3d64da0eea9f48fa73be82d385354bf6
    2113library/encodings/cp932.pyc     1638    e060301989634a7fb30ded375011cb09
    22 doc/manual/hu/bugreport.png     12385   c71c7db56f19870ae5d6bb7f533d3679
    23 library/share/locale/hu/LC_MESSAGES/gtk20.mo    58794   6ee4491ae7bc9d3dfb778578eb29a0b3
    24 library/gobject/_gobject.pyc    573     81047d5239f6250991b28ed9d046173f
    25 locale/en/LC_MESSAGES/mlx.mo    64494   5eb2e430656c49a02122e3ea54fe4698
    26 library/encodings/utf_7.pyc     1747    2beeb059236527197d6c640396476ce8
     14locales/am.pak  10404   5501abf396344840777c5e65843dd680
     15locales/id.pak  6724    87f2077cb9f8a80f18ed5ab3c48d448b
     16library/distutils/__init__.pyc  365     6f7d10b79fa1086d3ac9ce0806b5ba23
    2717doc/manual/hu/pirepViewer.png   26835   267e4325e550ed14ed22f86a2c7e8e9d
    2818doc/manual/hu/prefsGeneral.png  25082   9775eaf0c8f1f770e1ad46ce9b6e6973
    29 library/atexit.pyc      2083    595a09be339c73c3c02e378d99325d2a
    30 library/cookielib.pyc   52852   2a1030653dc204a9ba1fb56fd32eca68
    31 sounds/737taxi.mp3      157362  846c403e5cb660be53c8b6da16b68234
     19library/mlx/gui/statusbar.pyc   4812    490a882b53429fa18f317e146f0c70c0
    3220doc/manual/hu/mainWindow.png    27770   42e5565ccb75d22b2f378d2df2b2865d
    33 library/libgobject-2.0-0.dll    341594  356d697647a480562c4e2e921b13f8ed
    34 library/email/charset.pyc       13200   771aee9802116e673d08b44bc0450f99
    35 library/libpangocairo-1.0-0.dll 104729  d3ad38599649097a3645777ff95be08e
    36 doc/manual/en/briefing.png      32129   65cf1236d009fd61c1bd6c374ffd261c
    37 library/uu.pyc  4212    0073b65d26a6092e4e177c7763058fa4
    38 library/encodings/iso8859_1.pyc 2678    f09ec3b7f6a348cbd7f7286b60572bd0
    39 doc/manual/hu/monitorWindow.png 20577   34bfd26fe50e72706625a9203ac98217
     21library/lxml.etree.pyd  2977792 d9f46391d4eeb719304a07b1ddaa72d9
    4022library/pdb.pyc 41336   cca4477d622e897335b3f0cecb667ff4
    41 library/pangocairo.pyd  17920   5fc69a7d29a6d3127710c64de440daa4
     23library/lxml/html/_setmixin.pyc 4312    eac09282d97aceede13bb8efc0da3a5f
    4224doc/manual/en/fuel.png  27700   777f9f3431c2f53db4b98f3449e4baf7
    43 library/mlx/gui/info.pyc        6538    78c97f25111c13dc94c6226140943916
    44 library/io.pyc  3378    197da422e1d85c483c94fa0251b5ff76
     25subprocess.exe  267264  00107a8ed63a3e055e5d14f5c4b6cb0d
     26library/selenium/webdriver/android/webdriver.pyc        1348    d8e382aa629964bf424c14159dd4fd2d
    4527library/xml/sax/xmlreader.pyc   17862   0362ded7016d21cdd85aea1170ebdda1
    4628doc/manual/hu/fuel.png  29886   92a67f7d11e5101a7ac64034c7be26a4
    4729doc/manual/hu/time.png  28618   50dd8f862b7e1034cb1066ab16e7c587
    4830library/encodings/mac_croatian.pyc      2755    425b44ba614eff660b863cb7cc12e509
    49 library/encodings/iso8859_6.pyc 2723    c8f9aa14a6a2ebf05d977317114bc65d
    5031library/stringprep.pyc  14089   1c0d248fa5ff974c44479a82d8deb72c
    51 doc/manual/hu/prefsSounds.png   22667   452c396c2bda9684bf052c98fd7870d1
    52 library/sre.pyc 499     92bb633daa0bab6550ec0e3677673b5b
     32library/WINHTTP.dll     354304  d29f2889baa10e19ad9ff70c8d5ecf50
     33locales/ca.pak  7484    6490335e2837ffefb296ff1fabb50372
     34library/selenium/webdriver/remote/switch_to.pyc 3203    203c551f8bb5b7999810cf31728c85ee
    5335library/encodings/cp720.pyc     2736    a0f8bdcf6477a00166d2a38b1ba3ce7c
    5436library/xml/sax/_exceptions.pyc 5829    9f1abe12a091b6808b131a0b4e179b5a
    55 library/encodings/iso2022_jp_3.pyc      1699    ee1c3aa11bbe19eeb4deafa238563133
    56 library/encodings/mac_turkish.pyc       2739    1682e228ddfd2e74e3ccaee0b65e7261
    5737doc/manual/en/prefsMessages.png 22653   9002bdcc9f1ecd395c67e0662dec62dc
    5838library/xml/sax/handler.pyc     12528   655e21f07d79d8cde1d7af6fe0d9c2db
    5939library/collections.pyc 23430   3b68687320ddc080ef5c92404487a161
    6040library/encodings/hp_roman8.pyc 3922    cc8ddf1c5f5264309df0050775df2dc3
    61 library/xmlrpclib.pyc   40724   d4f819f9199ea21236a74c967e335c43
    6241library/encodings/big5hkscs.pyc 1670    0ff54e70f21b5e4a359d3779367cba85
    6342library/encodings/utf_8.pyc     1806    4b8dee0284ea2f55c4142fcde7463524
    64 library/unicodedata.pyd 688128  c856c31a03dc892e4f2aee93d0bfee44
    65 locale/hu/LC_MESSAGES/mlx.mo    69361   d6d8b2f8bd1a18bcc710b841e849d5c3
     43locale/hu/LC_MESSAGES/mlx.mo    73166   f479bb641fede1c31adbd0ff2a3d736b
    6644library/encodings/mac_roman.pyc 2716    4b4745eccfcb77860b70b374ac07fbcc
    67 library/copy_reg.pyc    4893    7a58bc441232056d1c123cd3375b3774
     45library/py_compile.pyc  6292    425da7ee065aa158fd274946204a4a77
    6846library/ctypes/_endian.pyc      2154    c73aab798475f9961158ed4f6c07a70b
    69 doc/manual/en/debugLogTab.png   33696   5be65d41058f78554840032c51aa9d6d
    7047doc/manual/en/checklistEditor.png       26353   b8963432d1219a2138e22850b1b94b56
    7148library/email/_parseaddr.pyc    13285   9a4c79b09ed093f1fc48b4d427b877e0
    72 library/dummy_thread.pyc        5094    310a3d15c9cf20259b0ca4892811dec5
    73 library/gtk._gtk.pyd    1882624 bbb1d1e41bbebc6abf69bed719d50497
    7449library/encodings/__init__.pyc  4298    df673fd19cf6e69f54e7638d05179a32
    7550library/share/themes/MS-Windows/gtk-2.0/gtkrc   1825    94d104680cec5f3d8bbec56258d0c926
    76 library/_hashlib.pyd    287232  a1a18de0644f481749fcbcf26005eeaf
    77 doc/manual/en/monitorWindow.png 20886   42e08d10c758e21209c4c021f391dee7
    78 library/_hashlib.pyc    549     9e2049be4b8278f6106cd91d0b39a375
    7951library/libpng14-14.dll 230529  f3a15497e25baaa721f96638d7a4d2f8
    80 library/copy.pyc        11674   30d1745c5e38ab170f8a0486fbebf305
    8152library/share/locale/hu/LC_MESSAGES/gdk-pixbuf.mo       21895   a932ead453f04de30e348c1689a4d896
     53library/selenium/webdriver/safari/__init__.pyc  125     4a6fe7f5be076227125ddd0577386fa7
     54locales/fil.pak 7790    38cdea149d120d8e9a8a0b0a90ac5dfd
    8255library/mlx/gui/dcdata.pyc      19878   128e72fd5c4cf74b988abe22b9e9e641
    83 library/mlx/gui/__init__.pyc    107     22f268cac1c5be2f3a058810b6caead3
     56library/selenium/webdriver/common/utils.pyc     1718    4f61f38d0107f2694454eacb6d480f45
    8457library/encodings/iso8859_5.pyc 2679    58a290e94b0266ef8ff4ee52da00e257
    8558library/encodings/iso2022_kr.pyc        1683    ef9549932514d2deda6c4676e5e5f1db
    8659library/libglib-2.0-0.dll       1242929 18e88b04da123bf05b07ff60a4e96654
    87 library/select.pyd      11776   d90bf525f9f6c9c3aa6532fa6e569b4f
    8860library/base64.pyc      10528   39abec9c60dc011d3c763f443f9b1a11
    8961library/mlx/gui/bugreport.pyc   4602    a32ca4d644f316b3d120ae3dc2597eba
    90 library/traceback.pyc   11223   50ace5c2c6c040a923082442da94cd78
    91 library/_weakrefset.pyc 9290    a56e87c491c0511cd329a3c8c4cd9563
    92 library/mlx/flight.pyc  21066   471a24b3678e6d684d6bf5aead1ae544
    93 library/urllib2.pyc     43566   7eb57ea0dcd1086d1d9073a5cefb0903
    9462doc/manual/en/flightSelection.png       29847   7817c8f5ed8d7fe64cf72d0addaf3e4a
    95 library/encodings/mac_farsi.pyc 2659    df751a61510129a25f7a43ae3aace4f7
    96 library/tokenize.pyc    13565   354d02cd79df187a28c1851a1e3bad96
    9763library/encodings/cp500.pyc     2639    bb122a6e1384530e1b2efb14cf999239
    9864sounds/TaxiAfterLand.mp3        155481  ded1908d2e7bf2ee2cbf445bb44cf756
    9965library/urlparse.pyc    13222   cca8581f4f4fa9067ccc880f049a6032
    100 library/mlx/common.pyc  1327    822ddec8bdeabcd64ec7927b275680c0
     66library/json/encoder.pyc        12918   d4d1f0b8a67df3e7c2f470ca19d0f964
     67library/selenium/webdriver/remote/webdriver.pyc 31960   5ef4044402659e32409fa4570a91f03c
    10168doc/manual/en/mainWindow.png    25345   15b206118a6670f9edaceb8aa830fdd7
    102 library/ctypes/__init__.pyc     18846   2bd183962453ae93d6887b303d3fd338
    103 library/mlx/acars.pyc   1690    733d057c94683c74079d6e096f601855
    10469library/encodings/iso8859_3.pyc 2685    7b5b2924647578ab7555db2d86cd1b9b
    105 sounds/taps.mp3 16614   d4a019c7e9342ae329aee6932d6a43c3
     70locales/kn.pak  15411   d24e6fbfcbd4c8e76cc534bf63d75d61
     71library/xml/dom/minicompat.pyc  3256    4cb81e995ea180f716a8913fb0148a64
    10672library/email/generator.pyc     9877    f387feb2b59e121f7b0ece209e8875ae
    10773library/types.pyc       2386    25023bf7b2334153cfff8922979862c9
    108 conn_grey.png   988     7a956ebba793197f324cec56d94073e7
    109 library/getopt.pyc      6454    8f8cd6763f5339988d157d153c910bf5
     74doc/manual/en/bugreport.png     11730   a649c456acbbfa0419d183a7b8261c01
     75locales/mr.pak  13137   cdfba7767a139ab7c34ec01d496029a2
     76library/xml/dom/pulldom.pyc     12238   14c378c017da4b4a1576321c884c9ac4
    11077doc/manual/en/landing.png       26272   97115671017d7dd3af55513ae912ff17
    11178library/textwrap.pyc    11410   f7bfc56465324edf71b977397a4c7c0b
     79locales/nb.pak  6676    56894a866d7af9193faca13ef28c7b68
    11280library/encodings/undefined.pyc 2399    030217a6a82b09af1a32dc18955d3355
    113 library/encodings/idna.pyc      6124    6d67198be2b194c4c0acf48e2f1473ac
    114 library/email/mime/__init__.pyc 110     bae57a199e3d0998a1364b9fbae8b3cd
    115 library/calendar.pyc    26136   6f2f18efc99d759f99b2935b9dc9dbb1
    116 library/winerror.pyc    112982  4986a8f2df094dddedd12c9fddf4966d
    117 library/_LWPCookieJar.pyc       5440    3782ae675165b232a3f78608ac2dbccd
    118 library/encodings/mac_latin2.pyc        4717    564dbaf5c296a147203eb821dc2466ba
     81library/cairo/__init__.pyc      142     010dd7cc8485565d5782d60e92e4ba34
    11982library/encodings/utf_16_be.pyc 1854    84a1d1465453727af051eaeeb853782f
    120 library/mlx/fsuipc.pyc  74670   4da0a45a9a6372a2e463ab21fdc43359
    121 library/xml/sax/__init__.pyc    3579    c78222ad1fd4f3dbdea06666fe74e84e
    122 doc/manual/en/connect.png       27436   5406dfe5408569cb95499c057bf0185b
     83library/selenium/webdriver/ie/webdriver.pyc     1917    121143596ab09d1c691eb62c08540471
     84library/selenium/webdriver/common/keys.pyc      2116    25c69327342e220cdafefcca6e79bfe5
    12385library/encodings/cp1006.pyc    2725    99fe5e34e21f82126b87b830c382347f
    12486logo.ico        44054   8a2bfc719521f8dc59540055941af7db
     
    12688doc/manual/hu/takeoff.png       28255   c328eb866f78338e178f1fb761f57511
    12789library/encodings/rot_13.pyc    3413    04994d9c6c3622213b73a23e86c4cd07
    128 library/encodings/charmap.pyc   3203    2358b8eb05c66e2a2826b5db6f214547
    129 library/os2emxpath.pyc  4312    0c35794eeb4739ebb4eb28b9a1daf0ca
    130 library/libgdk-win32-2.0-0.dll  931390  a2b46daac3d4140efdf86429f7aea476
     90library/selenium/webdriver/chrome/service.pyc   3456    213d552983fc36a04948f1c1fb551965
    13191library/win32file.pyd   111616  25ecaa0a381c6fd9ba4080bea63b952e
    132 library/mlx/gui/common.pyc      10398   b94179414ef460863981a327bbea2cf3
    133 library/dummy_threading.pyc     1265    5ab5c897721aeb346b5bccb84066c5bd
    134 library/markupbase.pyc  9010    b33ff430e9b1adba3d540b5394ff289a
    135 library/encodings/cp1258.pyc    2681    5c09b3b0a82036b0e785422376cb64cc
    136 sounds/767taxi.mp3      160496  4cb43cda6e1214fbe15328a716827345
    137 doc/manual/en/prefsAdvanced.png 16169   64c14e0842c413cac98b92926279f3e0
    138 library/mlx/pyuipc_sim.pyc      57203   e1828998919f435bae2a5cbd969ff8f3
    139 library/cairo/_cairo.pyc        561     74600b46e3cca88959de18f46fd35dd6
    140 library/win32file.pyc   552     7cc3345bbc0f00a5ab26fd1fa2644112
    141 library/encodings/cp865.pyc     7868    7d40a7ba053ac23339218be8799e5397
    142 library/lib/gtk-2.0/2.10.0/engines/libwimp.dll  97984   a5bbbe46e1363aba9020a76f2d58e9d6
     92library/share/locale/hu/LC_MESSAGES/gtk20-properties.mo 167125  cd1b1b3693c1e3c74bfcea20be640cc6
     93library/lxml/_elementpath.pyc   6886    9a280fb32989572f97a77a8439c60b03
    14394library/unittest/__init__.pyc   2945    3b9d3992b823bd7bc391d8b1bb434310
    14495sounds/sikoly.mp3       126222  b0bb88361b253cd21bfd3706524f4aec
    145 library/HTMLParser.pyc  11589   f641df5331b5bb552ebe180f79b85a6b
    146 library/bz2.pyd 76800   1ca9ececd2c84b80996fe632627f857f
    147 library/encodings/iso8859_16.pyc        2695    85e819a29dec2b601ce978dcd5a040fc
    148 library/share/locale/hu/LC_MESSAGES/gtk20-properties.mo 167125  cd1b1b3693c1e3c74bfcea20be640cc6
     96library/selenium/webdriver/common/proxy.pyc     9645    560e74712da0a0e2f9115689b0dce0a2
    14997conn_red.png    914     860388cb7c3b26b2f348fdbee40780ce
    150 library/bz2.pyc 534     c0e76855ba3b871b6033bf3e93815fb8
    15198library/xml/sax/expatreader.pyc 13563   4f64c0efb2f1f8dbba84cdb5c6036f2d
    152 library/email/utils.pyc 8840    a7be428df6fddee6121cfce55382d1f8
     99library/lxml/html/__init__.pyc  57505   75e60bdbe2cda9fe95dc43345e79a0ae
    153100library/encodings/iso8859_14.pyc        2714    b9baeb3f59da8a2137db576b2e434feb
    154101library/unittest/signals.pyc    2126    d574469ae3f8e3c3c6054c48e8ff6fe1
    155102library/encodings/cp949.pyc     1638    a248191502a186c4ee64598e5e684608
    156 library/encodings/iso2022_jp_2.pyc      1699    4b917caa926e5779176612409c66be39
    157 library/_ssl.pyd        720896  90826a140137efd0d806038828e16f8e
    158103library/urllib.pyc      48771   4d4b07040a1d0b0b31f5779eeb01c269
    159104doc/manual/hu/payload.png       29785   c9b8f7dd269629ea22764f531e5d27bf
    160105doc/manual/en/gateSelection.png 28063   b02c97fe05d9cd8ea986a5023937f4bc
    161 library/glib/__init__.pyc       187     d44c8c2772b263a36726ac0dcfc04b42
    162106library/UserDict.pyc    7920    c72896a5a8a1a3d93fa6ba23c50a04b0
    163107library/encodings/koi8_r.pyc    2700    fff1b35002b9e938b7ea6fd0fbe824ae
    164 library/mlx/gui/statusbar.pyc   4812    490a882b53429fa18f317e146f0c70c0
    165 library/warnings.pyc    12666   9788b5f45765e8204e04c820f2711094
    166 mlxupdate.exe   19456   ddccbdef96743f9fb9ef233581c240fc
    167 library/mlx/const.pyc   6289    fda6baed7910fe29ee62a57e7818eb89
    168 library/email/errors.pyc        3229    cdb78ab237e195ad69f059128bc03b1d
    169 library/linecache.pyc   3091    666e6f81b0ea9a7637f8068493f738d5
    170 sounds/malev.mp3        201247  8a00666288f14a1666eb112223c140e0
    171 library/encodings/mac_iceland.pyc       2738    dfff28ea5edfda00df56b4ab9a35bc59
     108sounds/737taxi.mp3      157362  846c403e5cb660be53c8b6da16b68234
     109library/mlx/const.pyc   6294    5cdef68da98c1d03135d20e2b78668fc
     110locales/th.pak  13637   7262d0f5e1877212a45a1ef1ccc4c777
     111library/mlx/gui/cef.pyc 13834   c0aa2cc0103680c5c8f25a8b504839d8
    172112library/encodings/punycode.pyc  7570    335ff94e207934ae64e6f5fc07a5cacc
    173 library/unittest/util.pyc       4358    1530cc34b18ae6a6c6128a1d8b1355d7
    174 library/gtk/__init__.pyc        3025    9f6605bf84c6cbd3c20f1d37e58af969
    175 library/codecs.pyc      34722   339dc90c17d548887dbcf1bbbcae5d5b
     113mlx_cef_caller.bat      142     d1815645d52f5638f27f16903a977d00
    176114library/encodings/shift_jisx0213.pyc    1710    1ec0383aafb1dcadb5f9b6afff16eb7f
    177 doc/manual/hu/statusIcon2.png   7969    3ec6caa058848932d381da6e02c702be
    178115library/shlex.pyc       7282    cbe1a4823894c97c87d01f9d9faf5b8f
    179 library/cairo/__init__.pyc      142     010dd7cc8485565d5782d60e92e4ba34
    180 library/_ssl.pyc        537     aca2f45a9b83601311c6292e537f4611
     116library/encodings/idna.pyc      6124    6d67198be2b194c4c0acf48e2f1473ac
     117library/selenium/webdriver/support/wait.pyc     3062    0b45eef7d5f12effdcb7b3b3bf077953
    181118library/encodings/iso8859_8.pyc 2717    f3ad6ce58cfac9e3ca86cf5c2fef092b
    182 library/encodings/iso2022_jp_1.pyc      1699    faed9d5747e982cec9fa8b3ad8e1de26
    183 library/encodings/cp850.pyc     7621    20d776af743fa7acf090fbd575eea143
    184 library/xml/parsers/expat.pyc   259     d7be0c4de475d65e08ba7fdbabe088d3
    185119library/encodings/utf_16.pyc    4808    45343ba87ff1675cd72f656555193d29
    186 library/struct.pyc      219     421271d66b783c3f13c37ec09efa8b65
    187120library/httplib.pyc     35251   2ac8119676b4b02ed78fd020ea423de5
    188 doc/manual/en/bugreport.png     11730   a649c456acbbfa0419d183a7b8261c01
    189 python27.dll    2206720 f8f39495ed4a813e8f3049a4b9f5cff4
    190 library/encodings/mac_centeuro.pyc      2747    6461bd7ed7a57683d5c36001f9ac85c9
    191 library/encodings/utf_32.pyc    5336    912103fef3db6edc29a35dd0cfb5c5b9
    192 library/ntpath.pyc      11407   533c9331a1b72cc80dd3f88145ba4466
     121library/selenium/webdriver/remote/__init__.pyc  125     98c24cdbe880f259e3a39688b035f899
    193122library/rfc822.pyc      30648   0d6ab1f052b2b58e19659373c57e6443
    194123library/encodings/cp869.pyc     7915    404063f8111d018b17d803a12c956ee8
    195124library/opcode.pyc      6052    4b056d1c0ecd2904ca1fb2a14f28da3c
    196 library/mlx/gui/checklist.pyc   12279   555775aaed42b3d0687e1b0f501a9f61
    197125library/email/header.pyc        13339   f741f4c3543a278fec30f4d9bdd0f859
    198 library/encodings/cp1252.pyc    2676    b4c43cc72650c911cf3654dbaf565df9
    199126library/share/locale/hu/LC_MESSAGES/atk10.mo    8465    e3f3466da367215aad971d7b0394229d
    200 library/unicodedata.pyc 558     9fff50a023ac65726b3f323860f16dc7
    201 library/select.pyc      543     ac1d1553c508b92a2f222dc5babd3060
     127library/selenium/webdriver/android/__init__.pyc 126     2c08539a10f0de9d77dea0fb81f88c93
     128library/select.pyc      543     000aafbf9f916aa8dc56f48e6421ae8e
    202129library/encodings/uu_codec.pyc  4646    5282a5fcb676851224d2924aa3e48a9e
     130library/selenium/webdriver/remote/file_detector.pyc     2025    06b01ab65d8732125257374fb263e879
     131library/selenium/webdriver/phantomjs/webdriver.pyc      2534    dedaa853a9d939c417e05069a74a0851
    203132library/ConfigParser.pyc        23857   1d17020dd0000ce0f73de812effa152f
    204 library/encodings/cp1256.pyc    2675    c1bf26ed9c9b5ee0eec495138993cffb
     133mlx_cef_caller_secondary.bat    172     c4864924a731e8ed4beae9e70018370f
    205134library/genericpath.pyc 3063    eb5a2eacaea46c733ed68d770eb1d89c
    206135sounds/notam.mp3        195604  9c5edf885a2ba68484a9554a1cd22c47
    207 library/email/base64mime.pyc    5221    c536d6f0c03f029bba77f15ef6ba3d99
     136locales/en-US.pak       6371    7dc755262eb4ba15fd0f2bd986801f13
    208137library/gettext.pyc     14675   606ad2e00535dd0f4fee5bd8d8562b29
    209 logo.png        69816   4a7517b22cfd75cc9c15e3fc1b7ebeec
    210 library/libpangoft2-1.0-0.dll   815421  1dbfead06e26edb81f0849490210e3ff
    211138library/random.pyc      24831   54b2048974a5c98912276ffa5dc637a9
    212 library/mlx/util.pyc    4884    7537803cf47e18210ab5f298ba9eba9e
     139icudt.dll       9956864 5434e18b933e03f274d8da59fda4c676
    213140library/mlx/soundsched.pyc      9185    4211730170fddb82b5683ce1849234ee
    214 library/doctest.pyc     79210   620422f95e18417ff5f8440534a71e91
    215141library/mlx/logger.pyc  13109   a70c061d36cf6b4e540f5610133466d3
    216 library/encodings/cp775.pyc     7888    25bf7dd514dff294aa02d5119399b2b7
    217 library/libfontconfig-1.dll     279059  dd583bedc5efe7bbd21a8ef107dec88d
    218 library/_strptime.pyc   14347   ad17a449b54061177a080e3a21507a39
    219 library/mlx/singleton.pyc       9184    9eec2ed5b230e043afc56592fb13a684
    220 library/mlx/airports.pyc        4350    e0fee9bae54850629841bbcf68b1b89f
    221142library/xplra.pyc       32012   50a1d9f19c0cc88783d264909ad1c678
    222 library/socket.pyc      15488   35f8eb455d6d8df8e19826d1dd7193f2
    223 doc/manual/en/statusIcon1.png   6472    10a7158dd8655de3f18ba914eb2373a5
    224 doc/manual/hu/prefsAdvanced.png 16738   d39884283d7c0f25efa3dc97328749a3
    225 library/encodings/euc_kr.pyc    1646    af2a5eaf1ea334c3f3bd60ea13db33a9
     143library/selenium/selenium.pyc   88274   e4b7af1a0fdb5800faba4cdbba1e85b3
     144library/selenium/webdriver/common/html5/__init__.pyc    131     e2214dcaff874176a4d2b8ecdaa8a677
    226145library/encodings/string_escape.pyc     1907    5856af6d4b4bbbe84b0595434afe8d34
    227 library/encodings/ptcp154.pyc   4700    377245b13f9246526c8c17b5e13bac4f
    228 library/gobject/__init__.pyc    5154    944a57e672b63943bf88c5dbe459cd41
     146locales/lv.pak  7778    892b75d606ecee874c180454b1dcb956
    229147library/xmllib.pyc      25767   3ec689dd4068f2f244823616800486f7
    230148library/re.pyc  12699   5b157b40e294465c0f3d2ca82f70f66e
     149locales/gu.pak  13531   b227db903a5cadbf928e97133643415d
    231150doc/manual/hu/flightInfoTab.png 28786   3e8af27775131f02696b0912ca441f36
    232 library/encodings/utf_8_sig.pyc 4625    1b1405db186e5819fa271ff96c1ca2c5
    233 library/pangocairo.pyc  555     6323df5caa1cde78b3888b71fb9ef34e
    234 library/encodings/cp1255.pyc    2697    b265913c887f2e1c8736632b652c0093
    235 library/encodings/zlib_codec.pyc        4308    319c9073aff840436a03cc1fa0b08fb5
    236 library/encodings/unicode_escape.pyc    1996    32990583f1caf874e556087da7b92971
    237 library/pprint.pyc      9852    6b4724e14285c257116655b1d4ba6db1
    238 doc/manual/hu/connect.png       28822   929f3eb85ee3cad019e12017c923f664
    239 library/encodings/palmos.pyc    2876    9284ad53dcfd82dfae0a79923b1cf91d
    240 library/mlx/web.pyc     36866   96511f975c55c000b0e9c16dff3aa31b
    241 library/mlx/gui/gates.pyc       5635    ea478376f306ce9d6d0ed2e759407c00
    242 library/email/feedparser.pyc    10682   4de6a63da8dc270c9881edb9c2f28508
    243 library/gobject/propertyhelper.pyc      8878    cc3598dab17d31ff46a6dee669ccb5ed
    244 library/intl.dll        152489  eb2d4c4d4a527bc88a69a16cc99afcf5
     151library/xml/dom/expatbuilder.pyc        31399   c996bf83ee6078c9ddda33b79ce11d48
    245152library/encodings/mbcs.pyc      1883    2213911a7dd0deada6799b63e18b695b
    246 library/pyuipc.pyc      543     2977fd6e66c07bb48bb2c21f1b90139c
    247 sounds/TOC.mp3  273032  fae1be2ad25c8b54806bd1d759919705
     153library/json/decoder.pyc        11727   edb191cd3c20a61e33cbe04edd422270
    248154library/encodings/iso8859_4.pyc 2678    16f2fe7994051752360c533c052b892b
    249155library/functools.pyc   5569    4af4ea4f948f8327649fd65f93cde1d4
    250156library/getpass.pyc     4627    7c01bf3df2e0074115d1a484629b4c63
    251 library/freetype6.dll   538324  fe5ec4b2a07d2c20a4cd3aa09ce0c571
    252 doc/manual/hu/finish.png        31044   adb40bacabf2cc597687fffe5c3340de
    253157library/encodings/mac_cyrillic.pyc      2745    c17fd9fd5bc854dd5ffe80076e1eeb02
    254158library/threading.pyc   26361   ac75b44a3dfea9ec884fcde4f7aa3275
    255 library/email/__init__.pyc      2752    5e1a1ba649ac697d631b031987d09c33
    256 library/share/icons/hicolor/index.theme 22255   5138b82a57488ee821b8a38c2aa1420e
    257159library/pywintypes27.dll        110080  7fa49d1d53588cca5071dfaa61061087
    258 library/glob.pyc        2238    d06c4386d18e2ab7f53fb866599403cc
     160library/lxml/html/defs.pyc      3980    b5d26d607dc394b6a37511fc902fed94
    259161doc/manual/en/calloutsEditor.png        14862   8041dc5f889a8913f510bdf0da923b58
    260 library/encodings/iso2022_jp_ext.pyc    1715    97eda1c1468f65445951b0bf23a89570
     162locales/ro.pak  8130    3220d7b7833d5a3df586c24a6f1696a9
    261163library/unittest/runner.pyc     7220    118e9e76a41d050e53c2a5ef70189acb
    262 library/_threading_local.pyc    6424    9dfe88d58a5811d2d56347cc381ebf0a
     164library/selenium/common/__init__.pyc    166     b2bcfbae2f994badd5e73c3ec186552f
    263165library/abc.pyc 5923    c45df4ceeb48b9c74dcb8bc4d5928924
    264166library/os.pyc  25063   7c7eee513ae4238d1b2c16af719c10a0
    265 doc/manual/en/payload.png       28191   b9d22d6226541b8f58df89c7c9da9a62
    266 library/pyuipc.pyd      47616   2b4fe2d52575de71dda6f72690cf581e
     167library/selenium/webdriver/chrome/options.pyc   5251    e62df837d9fe50d3f6464a0c4f02489e
    267168library/encodings/cp424.pyc     2669    4667015363f54bae44e98d4748e8acfa
    268169doc/manual/hu/flightSelection.png       30815   e8bcdda6079c6b16ffa72ca62c21ca85
    269170library/win32pipe.pyd   24064   de374eded459293b2a7eb8ed8fb38eaa
    270 library/win32pipe.pyc   552     19590da3d42ad587ab8f48ab66c92312
     171library/win32pipe.pyc   552     91891e843acff73f0bf28e2450464e7b
    271172doc/manual/hu/cruise.png        27460   a2610173563e45baae1b0f9e63007ebd
    272 doc/manual/hu/logTab.png        28706   f48004202310bd2a1cb2f873d8064e93
    273173library/encodings/iso2022_jp_2004.pyc   1723    66376e788f3819e781897268c1100986
    274 library/win32event.pyc  555     c419ceffad157c77eb64a0567a49f85e
     174library/cefpython3.cefpython_py27.pyd   968192  58161b73feae974f560d2c9f416adf3b
    275175library/encodings/cp866.pyc     8103    f36418dcf93b17b3ced63bd544f44159
    276 library/gio/_gio.pyc    549     dc1412f35c94fea43409ff9228163889
     176library/gio/_gio.pyc    549     2965d8aa7312527dda6888c8f5ecb287
    277177library/encodings/cp437.pyc     7874    63f1278c0a66129c6fb4f504d6b61b66
    278 doc/manual/hu/helpTab.png       27961   8e7cc4aeb8d7f40fcf186c7caf53583b
     178doc/manual/hu/prefsSounds.png   22667   452c396c2bda9684bf052c98fd7870d1
    279179library/mlx/gates.pyc   7002    20aca1eaf3de122eda51883b5b518f6f
    280 library/encodings/shift_jis_2004.pyc    1710    f8bb22a8b02dba2b66b7f77122c98fd6
    281 library/encodings/cp856.pyc     2701    8b6649490089bedd87e9b8c56985f6b3
    282180library/mimetools.pyc   7837    c9accd6ef795bf71c90630be0161cadc
    283181doc/manual/en/pirepLoaded.png   9887    e27a7c87e134944787e29874c455380d
    284 library/mlx/gui/weighthelp.pyc  13179   9ebfa07c41e167371380dda80b5bd72b
    285 library/encodings/quopri_codec.pyc      3365    01342d4d2735bcbfeb333d784297547a
    286 library/libcairo-2.dll  1294335 c0da2a3ab704f338f0fc6df51fd99497
    287182library/encodings/cp852.pyc     7890    7d58aa3397615349148b7885dc0e5280
    288183doc/manual/hu/pirepLoaded.png   10573   af950f8f037d6e17a24edcb3e849d159
    289 library/gio/__init__.pyc        809     bc9332556e93183a58be5c10cba18557
    290184library/pygtk.pyc       1914    814f68243c9fd447c0aa02326f1ead2b
    291 doc/manual/hu/debugLogTab.png   34237   e4d91a024beec781966f7de91ffd196d
    292185doc/manual/en/cruise.png        26531   fc94f27a40dad772437494c71e3c3d73
    293 library/weakref.pyc     13028   5d1c14275f47e8cf6d40bc6877fde976
     186locales/es.pak  7713    1bdcb1f825bf2bf68380662427f583b2
    294187library/encodings/utf_32_be.pyc 1747    3e8c9ef8145de502320202b1688fd2ee
    295 library/nturl2path.pyc  1755    7835082f2dd6806f99cc25bed13ff7dc
    296 library/email/message.pyc       27764   493826f529d17f5a21080a4c98b49369
     188library/cefpython3/cefpython_py27.pyc   600     5aecdbd2ba6e2bcdc1bd808985d7825a
    297189library/encodings/mac_romanian.pyc      2756    a3b2a0892236bc80c8efe8940e33339e
    298 library/mlx/gui/pirep.pyc       16749   2006126d65a19999a20c4a34f1e94342
    299 library/mimetypes.pyc   17806   927ce6a7079707aaee925e855ed23454
    300 library/_ctypes.pyc     546     2d4307addb84216cfe89da22fc9e397c
    301 library/mlx/gui/faultexplain.pyc        9707    938e02beb962d574df694c77536533ca
    302 sounds/F70taxi.mp3      154854  51332dc691d3519355f61ed06c959d8d
    303 library/encodings/cp857.pyc     7611    1b46c8959ac097b73e1c680d464cdc32
     190library/_ctypes.pyc     546     481eb87be1fe7c202bd442fdd963f41a
     191mlx_cef_caller_secondary.sh     178     ecb35d3294a5d1e729697f802a75cde4
    304192library/encodings/iso8859_2.pyc 2678    da65f42e1be5bec97161e8c1cc4f0fb7
    305 doc/manual/hu/statusIcon1.png   6920    614cde237a5b4e2678ed15d9cd01088e
    306193doc/manual/hu/briefing.png      31774   e090e1a6fab300a2d55cac03ad71d551
    307 library/pango.pyd       111616  c934763bdf125c3dc92b56db817001d4
    308194library/encodings/cp855.pyc     8071    0a4259ba854c24186f2ce61d85883b4a
    309195doc/manual/en/time.png  26508   0267dbdd59e65692bb0b9108103c07f5
    310196doc/manual/en/flightInfoTab.png 27718   4634da26b64d2c1a07ff5a7eec1ae29f
    311 library/encodings/ascii.pyc     2081    a5fffd04734740386629fdba1113d585
    312197library/libgio-2.0-0.dll        1222182 ea1263fb4c2230284f3e30c446bfea6b
    313 doc/manual/en/helpTab.png       26243   cd5c021a2fc40485805b9fde03bcd060
    314198library/encodings/cp037.pyc     2639    2981678e762ba857e30becbe27eb6614
    315199library/email/parser.pyc        3669    b4c89014f11b6551907291d3b789f371
    316 library/_MozillaCookieJar.pyc   4392    21966f49c75d0bd7827ec82d4e6e5d30
    317200library/repr.pyc        5045    82f0d89c685c3dacd941e01e4b2f31ef
    318201library/quopri.pyc      6352    87c42d94f753dd4c8a761cfa79453bb8
    319202library/htmlentitydefs.pyc      6347    814dc784fdb3d998dccee4c3f4c0394f
    320203library/mlx/gui/monitor.pyc     12980   dc303c215e1380adee44b691870d45e8
     204library/selenium/webdriver/common/action_chains.pyc     12050   696113f4eb85587998c08b915d8269a4
    321205library/encodings/latin_1.pyc   2111    52427573ccbfd06220b67d5a9dd1376e
    322 library/mlx/update.pyc  16956   458d28bd83dc10d0b2cb3c1a2623bca9
    323 library/encodings/gb2312.pyc    1646    466ac29d34de1ad4b3d299ca834e28d9
    324 library/libgdk_pixbuf-2.0-0.dll 285194  e4c64b0e7e4c6606f3973a16c0c1ee84
    325 library/encodings/big5.pyc      1630    a21b45d3e487bf09f40a08448040c97d
    326 library/mlx/gui/update.pyc      11427   5698abbc9b133f18fa2c37d3bfa74bee
    327 doc/manual/en/gatesTab.png      29585   00ebc96a2b4a7473dbb6a3162a04192f
     206library/mlx/update.pyc  16925   8c57d867b7f8ed088ab2b2afb2ae455c
     207library/selenium/webdriver/firefox/extension_connection.pyc     3145    5f8929a22a172a0aa71d4d4acb2aaf17
     208library/selenium/webdriver/remote/webelement.pyc        17884   6fa60da9a8bc1d2dc6e1286d9bd8f1ab
    328209library/bdb.pyc 17708   9a8fdcaa65f595c842689247847879d9
    329 library/mlx/gui/flight.pyc      126827  159f2acb2bda5ab2719affc81d8e1c7f
     210locales/sl.pak  6956    f4f7de66d579c41682c64ee1ef1f11f8
    330211library/unittest/case.pyc       37758   1d2235e74c246b562c5c00ddf73c621a
    331212library/subprocess.pyc  38648   c9f749db06dfc9fb32079de51d6efd01
    332 library/mlx/acft.pyc    39301   a2bc53905f026b474e7b50df620ee7dc
     213library/mlx/acft.pyc    40830   effafce121013f2b7631e46bf568b2ac
     214library/selenium/webdriver/firefox/firefox_binary.pyc   7758    cee737a6fd574b0f2e6ca28508844a30
    333215library/gobject._gobject.pyd    113152  3d05dd191361f83aa247b62c700fa04e
    334216doc/manual/hu/checklistEditor.png       27863   8c750892a52dc10ca654a9d0b2765358
    335 library/keyword.pyc     2063    4d5bab044f614cfdabe89011cd3d7375
    336217library/bisect.pyc      2971    ad8ce3e265b404ed3971b842106f8179
    337 doc/manual/hu/index.html        51903   4bfbb26709c699f21fe593cb4efd2d98
    338 library/encodings/cp862.pyc     8003    261df6dd1a6e5ad90a83dfc739a25e0a
     218library/mlx/gui/acars.pyc       1057    27238740a8776e6d8e6c8867d23955ea
    339219library/gtk/_lazyutils.pyc      2772    93f9aa41ad4223106d99340cd539a566
    340 library/mlx/gui/statusicon.pyc  5616    03e079307c1f83f36284e1b32887b28e
    341220library/mlx/mlx.pyc     2979    876ff2c4456985567d8a8af6d156b743
     221library/selenium/webdriver/remote/utils.pyc     3073    592eeca209cae991779c97ddd322b388
    342222library/encodings/cp864.pyc     7999    ca90afae086cb6b8f69b8419cc3cd1cb
    343223library/pyexpat.pyd     152576  5a82e9ec95005aca6130751e5b961cc3
    344 library/encodings/cp863.pyc     7868    fc7ff06dab536b93c68fcb8e7bac713f
    345 library/xml/parsers/__init__.pyc        294     83f6a77ed8cd962b3c75c4779dc557ac
    346 library/pyexpat.pyc     546     8554aacca112be2cb661f77bee54716f
    347 doc/manual/hu/gateSelection.png 29237   bac37e7001261a40a84e4202247f6052
    348 library/cmd.pyc 13512   808f813d5e354b7073a1356e44c7b554
     224library/pyexpat.pyc     546     bc188a96c9c3a69312eb9fb5d9183558
    349225library/unittest/loader.pyc     10884   591a785be23fba35582ce33bdd3d7acd
    350226library/ftplib.pyc      32043   5a1925388a0874e459aed6891f4cf0c1
    351227library/libgmodule-2.0-0.dll    36986   b0b2396fc6413016a45a5e8ca2ea8152
    352 library/gzip.pyc        14358   2a4a036a0b24586b6bdde419847a18f6
    353228library/libatk-1.0-0.dll        163476  c703f592ddf798472189d895b652aff4
    354 doc/manual/en/route.png 25228   c1b2fb99d21cd862ea292d693400c955
    355 library/email/quoprimime.pyc    8590    f6c7a8ad81d44037dd074f4871053dab
    356 library/encodings/cp1140.pyc    2639    8320825626639ecf4604aac43477b65c
     229library/platform.pyc    35896   50aadbb6c4c78153f204e07704a2f892
    357230library/unittest/suite.pyc      9838    bf2c79bd4a6b6032f1ea53fa4908748f
    358 library/encodings/cp1251.pyc    2673    cb5ce7a7207c53f1d9e7cae48b3fb258
    359 library/encodings/koi8_u.pyc    2686    b7e5a52eaaaf6b340075b40dc7596f42
    360231library/encodings/mac_arabic.pyc        7824    820deef79b02e1f7e52eb18e9be655bf
    361 library/mlx/gui/prefs.pyc       27685   9f1dd6950e694169e6e12a768fb4d2a8
    362 library/atk.pyd 208384  ebe7f0929eac23a3205d17d69906e172
    363 library/win32event.pyd  18432   8b65330a56e2bc60d43d6e266c3a922a
     232library/mlx/gui/prefs.pyc       27921   24af38ec7e9b5dd275557147785f3d74
    364233library/encodings/tis_620.pyc   2748    5969b4db4f967b11ae7992cdfbf5890e
    365234library/encodings/base64_codec.pyc      3568    1d8f13d09024bd124a9ff73a9244c0f1
    366 library/_ctypes.pyd     106496  deccede0781726ce0daa75a4635bf919
    367 library/encodings/euc_jp.pyc    1646    c0d60e6d08161643bd7dbe651063f334
    368 library/encodings/utf_16_le.pyc 1854    dfa68705c26fd303adfc7ce3322166f2
    369235Microsoft.VC90.CRT/msvcr90.dll  655872  e7d91d008fe76423962b91c43c88e4eb
    370 library/_socket.pyd     38400   5d273be76603399e88cf57f2605004bf
     236library/selenium/webdriver/phantomjs/__init__.pyc       128     48073c8ec42358f04a36b7f127c3db92
     237library/distutils/spawn.pyc     5292    4cbe559081b3f8cab915a083bd9ef4bd
    371238sounds/ding.wav 80856   18e639792d3767436ac6955eb60e4f54
    372 library/_socket.pyc     546     b1108e87d6be8d38c7e2c6e6cfa03992
    373 library/encodings/hex_codec.pyc 3520    a8b8d5b7c8810379c7007bcbc253951c
     239library/selenium/webdriver/firefox/__init__.pyc 126     0ce57f6223e88783f1a5d4d8c4998682
    374240library/mlx/checks.pyc  62721   759425ec78c8430f699691e5abf92c1d
    375241doc/manual/en/statusIcon2.png   5875    71fc121823dee0a4c00715fac1b5665c
    376 library/mlx/sound.pyc   8226    03b098ed1dd965db98ef4f75b07d6cae
    377242doc/manual/en/pirepViewer.png   25098   7c545e70b995ac0f9fcae93fe5d0e899
    378 library/encodings/aliases.pyc   8750    75c22196420d0157fec085d285947a71
    379 library/glib/_glib.pyc  555     f29fe66820e637dadd911b7b8275820e
    380243library/libpangowin32-1.0-0.dll 108945  d07f128828225b7cc38e9e590eb3ba8a
    381 library/encodings/iso8859_10.pyc        2693    5e6cc8f721486ddbc1c99da285e13191
    382 library/win32api.pyc    549     a39e5810fa1f2f7d4c0738f05e64cdac
    383244library/gobject/constants.pyc   1957    2e9cdc605e7c449ef4fc23f56128acec
    384 library/libgtk-win32-2.0-0.dll  4938115 cc6dca192aca6f91bd96a5b5f86e036d
    385245doc/manual/hu/calloutsEditor.png        16026   fede870894a85e5d21ca16a026aa6a98
    386246library/mlx/xplane.pyc  67098   a714130f818d2d0220760c98268a1e66
     
    390250w9xpopen.exe    49664   e6895233ad1e6f3dcdd04c7c26b0e7c0
    391251library/locale.pyc      48754   a51d20267132acc6bc66ac6252cf870f
    392 library/mlx/gui/callouts.pyc    16060   7a3055f313e693779e9d2df22bb7568a
    393252library/encodings/cp1026.pyc    2653    ced5dd0cc0da378b0968f82309b9bcfb
    394 library/encodings/iso8859_15.pyc        2693    b892f358bbc25ae9d3824be158aabe28
    395 doc/manual/hu/prefsMessages.png 22980   6e60ec51305e95e5d057c0dd82b69460
     253locales/ms.pak  6916    b7742e34f8fff506ced8caedc5dde0ff
     254locales/lt.pak  7703    6fa4b1f4e7a936189a41811e0d0e3431
    396255library/win32api.pyd    98816   4a1ebd35719d263205eb014913b784bf
    397256library/encodings/utf_32_le.pyc 1747    8679f9c7cca87ad540b30c176ef914de
    398 library/_abcoll.pyc     19891   a5c1881934f1533c22b22b9317ac1d68
    399 library/encodings/iso8859_11.pyc        2787    a31e6d0d34e35259d7183cc9437eacca
     257library/selenium/webdriver/common/touch_actions.pyc     7806    8de07e30cc8e6b7014b6a5c80ba7bc6b
     258locales/zh-TW.pak       6505    ba45f30c77d990e9139af1f48927f717
     259library/selenium/webdriver/opera/__init__.pyc   124     7b04c3d7c320d1da1cb3cda037eba3b1
    400260doc/manual/en/prefsSounds.png   21397   9037f17f772e554e7d9d24133acd5c4d
    401 sounds/cpt_takeoff.mp3  8255    254edcf79b8b3752d1a7c191c57f615a
     261library/posixpath.pyc   10734   d694316c239784c444b252c801c97efa
    402262library/encodings/cp860.pyc     7857    59c6f69108873700081e71b2faaa29f8
    403 library/mlx/__init__.pyc        103     029f80bd80f880e6ca70ef4ba46f7d06
    404 library/encodings/iso8859_13.pyc        2696    f901ae0bbcfbb78f0c1783e89b2e2dc5
    405 library/mlx/i18n.pyc    1972    fe45816e49cf5e380bc39942a9dfa875
    406 library/xml/sax/saxutils.pyc    12382   32ed045b3b520234ebea6a508a6569fe
     263library/selenium/webdriver/support/select.pyc   8438    be8c4fccc3c268163b6800af0a83dac8
     264library/_MozillaCookieJar.pyc   4392    21966f49c75d0bd7827ec82d4e6e5d30
    407265library/share/locale/hu/LC_MESSAGES/glib20.mo   84697   a3167f1c306a43d662f7c261abc69156
    408266library/heapq.pyc       13109   20df4990fffba06bbdda995ce7466caa
    409 doc/manual/hu/gatesTab.png      30710   a6a59e6a2660c15418489e8785e4bcee
    410 library/webbrowser.pyc  18138   c85009edebad6d278fe786fec10ebbbe
     267library/selenium/webdriver/remote/mobile.pyc    2444    e666ca905ceeb2a1569a60ed6eea974a
    411268library/sre_compile.pyc 10792   c58f94fbee661f3bb0c59ecc13c0416e
    412 sounds/notify.wav       119384  108025b17f67e61946df5d7fbf713cdb
    413269library/encodings/iso8859_9.pyc 2678    88880e046738ebd2012c8034416a9adf
    414 library/encodings/cp875.pyc     2636    c72faa5d1cb6105ae81c971448fea479
    415270library/encodings/mac_greek.pyc 2699    770cdf4f35a081a8ce71e776e6ecd804
    416 library/dis.pyc 6068    3934ab23d64f3da393305b19df0f1fd0
    417 library/difflib.pyc     60869   38d2e1340b64e22d7b1fed90a57fb83a
     271library/struct.pyc      219     421271d66b783c3f13c37ec09efa8b65
    418272library/hashlib.pyc     4346    fc9aecaadc9607989e48449f46cbdfd1
    419 conn_green.png  936     0b7fbe8ee0af2cbeefdb42110a8fdf34
    420 doc/manual/en/index.html        47073   66a8cdd22cfd3d819c02f3aaab48eaea
    421 library/encodings/cp1253.pyc    2689    52d4a723e9e86940701cb648b40ed884
    422273library/email/encoders.pyc      2092    cd83727bafdb4145b8fa43dd10ea48f3
    423274library/email/iterators.pyc     2266    b8a0df35815bc00be1ed8ece42aac537
    424 library/encodings/hz.pyc        1614    876bb7c36683358c3e95005619b10541
    425 library/encodings/cp737.pyc     8102    40e61988748e4ca1742a2bad43949f4e
    426 library/encodings/iso2022_jp.pyc        1683    40c2b92127f99452f84b250c2b4b2cda
    427 library/libgthread-2.0-0.dll    44287   7ad6f303082b382bff7bafbab246c61f
    428 library/glib._glib.pyd  58368   0de636503e43c4eb00e80927bc9bda97
    429 library/mlx/config.pyc  30521   18f980c9cfecafe53ae473bb1ca69a54
    430 library/atk.pyc 534     45ea15aa2ebf37b7d14f67ae940b0ba6
     275locales/pt-PT.pak       7270    731a9c54bd2331f411a5a2976d1f3622
     276library/selenium/webdriver/remote/command.pyc   5463    3e7f6443358e670e58a7fc6c97e4ab16
     277library/encodings/iso8859_10.pyc        2693    5e6cc8f721486ddbc1c99da285e13191
     278library/mlx/gui/statusicon.pyc  5616    03e079307c1f83f36284e1b32887b28e
     279library/mlx/config.pyc  32743   5a5523901d6fcb215f84e3d217c47f31
     280library/atk.pyc 534     2a53b13519b7419e8cf08f48baa4c1b6
    431281library/gio._gio.pyd    263168  acb8c95fdc391079bebdf7d8685b0dbc
    432282library/encodings/cp861.pyc     7868    c97a8970ce4d9f40cbafbea6576fbdca
    433283library/encodings/cp950.pyc     1638    00b7b6457e3fef8feb173ed8e561825c
    434 doc/manual/en/logTab.png        28522   305732f8485a15b7c802801038d688b7
    435 doc/manual/en/prefsGeneral.png  24487   4858becb6764518a428273e5ee8ee4d5
    436 library/encodings/johab.pyc     1638    5346c11a863ffbcfb21aba8f1d2236b7
    437 library/encodings/cp1257.pyc    2683    d24f94b6abbda684c0ad9f3370d86956
     284library/selenium/webdriver/safari/webdriver.pyc 2470    f5e61aec420bfc43a08db515c9b75276
     285locales/cs.pak  7347    82b7a3d87a1307e65b6dac449e858721
    438286library/__future__.pyc  4177    43d264d951ac2085334c7b9dd4558595
    439 library/logging/__init__.pyc    54813   7bcdf2e8da474f5e94d8e499f6fc3ed4
    440 runmlx.exe      64000   c7d906aea1b4aa8b4496febdf150717d
    441287library/optparse.pyc    51253   39594a40bc1222173d57b7d5740e3d92
    442 library/mlx/fs.pyc      11863   63fda2c4e0727136be69ed82f9e2bbc8
    443288doc/manual/en/takeoff.png       26128   63fb0227347eba88fe4f108d730dc8c0
    444 library/unittest/result.pyc     7444    aefbb3cc79c0ff17787ce84faed7f5e8
    445 library/inspect.pyc     38547   836f659fad54f5ee7e8f9d565003aacd
    446 library/pickle.pyc      36348   2b55640f6f4e2fd70d95482fd16bfb73
    447 library/encodings/cp1250.pyc    2676    c92e287a2aa6a1c924df287d826aa3b7
    448 library/encodings/cp874.pyc     2767    fe0c510a9aafa14cae6b037955a93f0b
     289library/selenium/webdriver/safari/service.pyc   2695    e70fc7f74f77a3824804835b54bcfea4
    449290library/cairo._cairo.pyd        69632   46d708899832abc0123c4e9cb4f61d5d
    450291library/zlib1.dll       100352  d90dad5eea33a178bac56fff2847d4c2
    451 library/glib/option.pyc 11891   bd90183c75d8f473ecf653e3d63a27f9
    452 library/StringIO.pyc    11100   f4eb4a2bb3d6fb0af925681c5375c673
    453 library/pango.pyc       540     516526ae5531b783342c20285ba0ee7d
    454 Microsoft.VC90.CRT/msvcp90.dll  568832  6de5c66e434a9c1729575763d891c6c2
    455 library/sre_parse.pyc   18380   fe2376a101668be1124f9ee316662bab
     292locales/en-GB.pak       6364    2a92f4fc905c2743129ccbcdf80d443a
    456293library/mlx/gui/delaycodes.pyc  12929   e8c1d6f46ef6e369451be3cbde0a3127
    457294library/encodings/raw_unicode_escape.pyc        2048    8138045029da04bf45204ab756d1bcd4
    458295sounds/TOD.mp3  174707  92176d53d948fbfebd08c011b063179a
    459296sounds/board.mp3        296751  bbacc6eabce97cbae49b4157ece7b8fe
     297locales/uk.pak  11136   21bcaa6fd116b4f5f23ee207e96fa156
     298library/gtk/deprecation.pyc     3104    2e6c9eef82dfa8aa3beb05abd3e274a4
     299Microsoft.VC90.CRT/msvcm90.dll  224768  4a8bc195abdc93f0db5dab7f5093c52f
     300doc/manual/hu/route.png 26601   fd1ee7c47290f4c3a2f9fd6618aeb678
     301chromedriver.exe        5009408 d662fef51894e4e5b6a6f508ed214904
     302library/encodings/iso8859_7.pyc 2686    db390f1961c1fd4181e351c330816ecd
     303library/xml/__init__.pyc        1058    8f77f254e8c6db7a3b6d9930a686d787
     304doc/manual/en/finish.png        28855   671eac74a9f5801c794f08d5861eafaa
     305doc/manual/hu/bugreport.png     12385   c71c7db56f19870ae5d6bb7f533d3679
     306locales/pt-BR.pak       7211    d0542b9b325ea58be590d021aeb7333d
     307library/libexpat-1.dll  143096  701659d3689bf4a8265b669b7d774255
     308library/mlx/gui/info.pyc        6538    78c97f25111c13dc94c6226140943916
     309library/encodings/iso8859_6.pyc 2723    c8f9aa14a6a2ebf05d977317114bc65d
     310library/xml/dom/minidom.pyc     61068   74ffa387e505b9fec2f2ad6a5dcd415d
     311library/selenium/webdriver/chrome/__init__.pyc  125     ff98e760d2c777eacfc473761486a702
     312library/mlx/gui/gui.pyc 54583   52c366560eec66413e5e7850fb5b3308
     313library/stat.pyc        2503    d3b6dc7a54e705219f04d0be75a212de
     314locales/ru.pak  10392   1b66f03dd656a2433ce643d0259fca6f
     315doc/manual/hu/landing.png       28525   2dd99249a389e9faf5c4d7b1180e8ebb
     316library/gobject/_gobject.pyc    573     e4e42f72e063e30757a0183f9b06fe39
     317libcef.dll      38585344        4dfb8a77f35c41bdbe8469877d4af853
     318library/encodings/utf_7.pyc     1747    2beeb059236527197d6c640396476ce8
     319library/atexit.pyc      2083    595a09be339c73c3c02e378d99325d2a
     320library/cookielib.pyc   52852   2a1030653dc204a9ba1fb56fd32eca68
     321library/email/charset.pyc       13200   771aee9802116e673d08b44bc0450f99
     322library/libpangocairo-1.0-0.dll 104729  d3ad38599649097a3645777ff95be08e
     323doc/manual/en/briefing.png      32129   65cf1236d009fd61c1bd6c374ffd261c
     324library/uu.pyc  4212    0073b65d26a6092e4e177c7763058fa4
     325library/encodings/iso8859_1.pyc 2678    f09ec3b7f6a348cbd7f7286b60572bd0
     326doc/manual/hu/monitorWindow.png 20577   34bfd26fe50e72706625a9203ac98217
     327library/pangocairo.pyd  17920   5fc69a7d29a6d3127710c64de440daa4
     328library/pangocairo.pyc  555     d83b002b1ec69315516867733a206a60
     329library/zipfile.pyc     37345   568c6ee7e0404625f47248340afb4524
     330locales/it.pak  7188    10ae10d8bfcffbfa1160574134e14edb
     331doc/manual/hu/helpTab.png       27961   8e7cc4aeb8d7f40fcf186c7caf53583b
     332library/sre.pyc 499     92bb633daa0bab6550ec0e3677673b5b
     333library/tokenize.pyc    13565   354d02cd79df187a28c1851a1e3bad96
     334library/win32con.pyc    140797  84d2d064066cfbcc219230f7e9c6e0b0
     335library/mlx/gui/flight.pyc      147639  f487da6516256651fdc2410dac2ed76e
     336library/xmlrpclib.pyc   40724   d4f819f9199ea21236a74c967e335c43
     337library/lib/gtk-2.0/2.10.0/engines/libwimp.dll  97984   a5bbbe46e1363aba9020a76f2d58e9d6
     338library/email/quoprimime.pyc    8590    f6c7a8ad81d44037dd074f4871053dab
     339library/copy_reg.pyc    4893    7a58bc441232056d1c123cd3375b3774
     340library/libgtk-win32-2.0-0.dll  4938115 cc6dca192aca6f91bd96a5b5f86e036d
     341doc/manual/en/debugLogTab.png   33696   5be65d41058f78554840032c51aa9d6d
     342library/dummy_thread.pyc        5094    310a3d15c9cf20259b0ca4892811dec5
     343library/gtk._gtk.pyd    1882624 bbb1d1e41bbebc6abf69bed719d50497
     344library/_hashlib.pyd    287232  a1a18de0644f481749fcbcf26005eeaf
     345locales/fi.pak  7098    70c7e2fb26c7abf09cb0f9972fb6c93a
     346doc/manual/en/monitorWindow.png 20886   42e08d10c758e21209c4c021f391dee7
     347library/_hashlib.pyc    549     d4aff375686d5501893ac1116dbaf7a1
     348library/copy.pyc        11674   30d1745c5e38ab170f8a0486fbebf305
     349locales/et.pak  6856    18a0a857e46c28b7f1cd8ff639a24aec
     350library/unittest/result.pyc     7444    aefbb3cc79c0ff17787ce84faed7f5e8
     351library/mlx/gui/__init__.pyc    107     22f268cac1c5be2f3a058810b6caead3
     352library/mlx/pirep.pyc   4623    6c485ea65ff6245ab56960a8bbec7051
     353library/json/scanner.pyc        2169    e19ee185b7c79ab5cc433b39fcd33faa
     354library/traceback.pyc   11223   50ace5c2c6c040a923082442da94cd78
     355library/mlx/flight.pyc  21066   471a24b3678e6d684d6bf5aead1ae544
     356library/urllib2.pyc     43566   7eb57ea0dcd1086d1d9073a5cefb0903
     357library/encodings/mac_farsi.pyc 2659    df751a61510129a25f7a43ae3aace4f7
     358library/encodings/iso2022_jp_3.pyc      1699    ee1c3aa11bbe19eeb4deafa238563133
     359library/cefpython3/__init__.pyc 556     38a652a0209e49e323bee4dd54a018af
     360library/mlx/common.pyc  1300    9c6f2d502b9274073cd96caaf4fb90ff
     361library/ctypes/__init__.pyc     18846   2bd183962453ae93d6887b303d3fd338
     362library/mlx/acars.pyc   1690    733d057c94683c74079d6e096f601855
     363library/encodings/cp865.pyc     7868    7d40a7ba053ac23339218be8799e5397
     364locales/bn.pak  14431   f402d363b8a07649b6787b745434daf7
     365sounds/taps.mp3 16614   d4a019c7e9342ae329aee6932d6a43c3
     366library/markupbase.pyc  9010    b33ff430e9b1adba3d540b5394ff289a
     367library/cairo/_cairo.pyc        561     fb6b7b442e46dce7a08d5875101f4a21
     368locales/te.pak  16110   c3af85e60b78273a93970cf8805ded04
     369library/lxml/cssselect.pyc      3861    2e693f0c25ab04b1d130646cddd4e081
     370library/warnings.pyc    12666   9788b5f45765e8204e04c820f2711094
     371library/selenium/webdriver/chrome/webdriver.pyc 2758    a7d3d371b22119d0327d9af9f77fd845
     372locales/sv.pak  6641    4e11abed42cc59a403ae4767d2acbeff
     373library/encodings/iso2022_jp_1.pyc      1699    faed9d5747e982cec9fa8b3ad8e1de26
     374library/email/mime/__init__.pyc 110     bae57a199e3d0998a1364b9fbae8b3cd
     375library/winerror.pyc    112982  4986a8f2df094dddedd12c9fddf4966d
     376library/encodings/cp775.pyc     7888    25bf7dd514dff294aa02d5119399b2b7
     377library/mlx/fsuipc.pyc  74670   4da0a45a9a6372a2e463ab21fdc43359
     378library/xml/sax/__init__.pyc    3579    c78222ad1fd4f3dbdea06666fe74e84e
     379doc/manual/en/connect.png       27436   5406dfe5408569cb95499c057bf0185b
     380library/selenium/webdriver/opera/service.pyc    2411    df01b6f7348ad54da47919158fe7e596
     381library/selenium/webdriver/opera/webdriver.pyc  5308    7ba71ef197d7d537635427f166da0f1c
     382library/encodings/charmap.pyc   3203    2358b8eb05c66e2a2826b5db6f214547
     383library/libgdk-win32-2.0-0.dll  931390  a2b46daac3d4140efdf86429f7aea476
     384library/mlx/gui/common.pyc      10433   e96ada4071fcdd2937398627d5d281dd
     385library/dummy_threading.pyc     1265    5ab5c897721aeb346b5bccb84066c5bd
     386doc/manual/hu/index.html        51903   4bfbb26709c699f21fe593cb4efd2d98
     387library/encodings/cp1258.pyc    2681    5c09b3b0a82036b0e785422376cb64cc
     388sounds/767taxi.mp3      160496  4cb43cda6e1214fbe15328a716827345
     389doc/manual/en/prefsAdvanced.png 16169   64c14e0842c413cac98b92926279f3e0
     390library/xml/dom/NodeFilter.pyc  1066    c5061d268ede84cbb951957f9ca3d820
     391library/calendar.pyc    26136   6f2f18efc99d759f99b2935b9dc9dbb1
     392library/encodings/aliases.pyc   8750    75c22196420d0157fec085d285947a71
     393conn_grey.png   988     7a956ebba793197f324cec56d94073e7
     394library/HTMLParser.pyc  11589   f641df5331b5bb552ebe180f79b85a6b
     395library/bz2.pyd 76800   1ca9ececd2c84b80996fe632627f857f
     396library/encodings/iso8859_16.pyc        2695    85e819a29dec2b601ce978dcd5a040fc
     397sounds/cpt_takeoff.mp3  8255    254edcf79b8b3752d1a7c191c57f615a
     398library/bz2.pyc 534     950c3961b75846807cc186203935c92d
     399library/email/utils.pyc 8840    a7be428df6fddee6121cfce55382d1f8
     400doc/manual/en/prefsGeneral.png  24487   4858becb6764518a428273e5ee8ee4d5
     401library/encodings/iso2022_jp_2.pyc      1699    4b917caa926e5779176612409c66be39
     402library/_ssl.pyd        720896  90826a140137efd0d806038828e16f8e
     403library/pango.pyc       540     4a4e27fa2068680ba2a67bb99132370a
     404locales/de.pak  7420    18ba99b07536017ed8b87cb4f77aee1c
     405library/glib/__init__.pyc       187     d44c8c2772b263a36726ac0dcfc04b42
     406library/pango.pyd       111616  c934763bdf125c3dc92b56db817001d4
     407library/libgobject-2.0-0.dll    341594  356d697647a480562c4e2e921b13f8ed
     408mlxupdate.exe   18944   b8bf9f3d22348aa1f78727f81d967f93
     409library/email/errors.pyc        3229    cdb78ab237e195ad69f059128bc03b1d
     410library/linecache.pyc   3091    666e6f81b0ea9a7637f8068493f738d5
     411sounds/malev.mp3        201247  8a00666288f14a1666eb112223c140e0
     412library/encodings/mac_iceland.pyc       2738    dfff28ea5edfda00df56b4ab9a35bc59
     413library/unittest/util.pyc       4358    1530cc34b18ae6a6c6128a1d8b1355d7
     414locales/tr.pak  6938    55435ada333db8c7c60a3223d6885558
     415doc/manual/hu/statusIcon2.png   7969    3ec6caa058848932d381da6e02c702be
     416library/getopt.pyc      6454    8f8cd6763f5339988d157d153c910bf5
     417library/encodings/cp857.pyc     7611    1b46c8959ac097b73e1c680d464cdc32
     418library/_ssl.pyc        537     9292cb548f29c21f4b0125656d34f0f0
     419library/os2emxpath.pyc  4312    0c35794eeb4739ebb4eb28b9a1daf0ca
     420library/pprint.pyc      9852    6b4724e14285c257116655b1d4ba6db1
     421library/xml/parsers/expat.pyc   259     d7be0c4de475d65e08ba7fdbabe088d3
     422python27.dll    2206720 f8f39495ed4a813e8f3049a4b9f5cff4
     423library/encodings/mac_centeuro.pyc      2747    6461bd7ed7a57683d5c36001f9ac85c9
     424library/encodings/utf_32.pyc    5336    912103fef3db6edc29a35dd0cfb5c5b9
     425library/ntpath.pyc      11407   533c9331a1b72cc80dd3f88145ba4466
     426library/json/__init__.pyc       12974   d7e08774d4fee83dd2a6d3868855a800
     427library/xml/dom/__init__.pyc    6039    5e78d16289c5ae3a9678d53f552862fd
     428library/encodings/cp1252.pyc    2676    b4c43cc72650c911cf3654dbaf565df9
     429library/unicodedata.pyd 688128  c856c31a03dc892e4f2aee93d0bfee44
     430library/unicodedata.pyc 558     dcdfa7fdce1179d8097934a44c983de1
     431library/encodings/cp1256.pyc    2675    c1bf26ed9c9b5ee0eec495138993cffb
     432doc/manual/en/index.html        47073   66a8cdd22cfd3d819c02f3aaab48eaea
     433library/email/base64mime.pyc    5221    c536d6f0c03f029bba77f15ef6ba3d99
     434logo.png        69816   4a7517b22cfd75cc9c15e3fc1b7ebeec
     435library/libpangoft2-1.0-0.dll   815421  1dbfead06e26edb81f0849490210e3ff
     436library/mlx/util.pyc    4884    7537803cf47e18210ab5f298ba9eba9e
     437library/selenium/webdriver/common/__init__.pyc  125     6c65d6e881b33e7aedb01f167184288c
     438library/_LWPCookieJar.pyc       5440    3782ae675165b232a3f78608ac2dbccd
     439library/libfontconfig-1.dll     279059  dd583bedc5efe7bbd21a8ef107dec88d
     440library/_strptime.pyc   14347   ad17a449b54061177a080e3a21507a39
     441library/mlx/singleton.pyc       9184    9eec2ed5b230e043afc56592fb13a684
     442library/mlx/airports.pyc        4350    e0fee9bae54850629841bbcf68b1b89f
     443library/socket.pyc      15488   35f8eb455d6d8df8e19826d1dd7193f2
     444sounds/notify.wav       119384  108025b17f67e61946df5d7fbf713cdb
     445doc/manual/hu/prefsAdvanced.png 16738   d39884283d7c0f25efa3dc97328749a3
     446library/encodings/euc_kr.pyc    1646    af2a5eaf1ea334c3f3bd60ea13db33a9
     447library/encodings/hz.pyc        1614    876bb7c36683358c3e95005619b10541
     448library/encodings/ptcp154.pyc   4700    377245b13f9246526c8c17b5e13bac4f
     449library/gobject/__init__.pyc    5154    944a57e672b63943bf88c5dbe459cd41
     450library/encodings/utf_8_sig.pyc 4625    1b1405db186e5819fa271ff96c1ca2c5
     451library/encodings/cp1255.pyc    2697    b265913c887f2e1c8736632b652c0093
     452library/encodings/zlib_codec.pyc        4308    319c9073aff840436a03cc1fa0b08fb5
     453locales/nl.pak  7068    939be31defbe6bd9f925331ef3987f9a
     454doc/manual/hu/connect.png       28822   929f3eb85ee3cad019e12017c923f664
     455library/encodings/palmos.pyc    2876    9284ad53dcfd82dfae0a79923b1cf91d
     456library/mlx/web.pyc     36866   96511f975c55c000b0e9c16dff3aa31b
     457library/mlx/gui/gates.pyc       5635    ea478376f306ce9d6d0ed2e759407c00
     458library/gobject/propertyhelper.pyc      8878    cc3598dab17d31ff46a6dee669ccb5ed
     459library/intl.dll        152489  eb2d4c4d4a527bc88a69a16cc99afcf5
     460library/selenium/webdriver/common/desired_capabilities.pyc      2206    9769c03bedeb640913decb1a9a23a695
     461library/xml/dom/domreg.pyc      3211    1b8e458700a5b538a4f3e18af5403666
     462library/selenium/webdriver/firefox/webdriver.pyc        2447    83d55a8eec9d18004aefe20d1622f352
     463sounds/TOC.mp3  273032  fae1be2ad25c8b54806bd1d759919705
     464library/share/locale/hu/LC_MESSAGES/gtk20.mo    58794   6ee4491ae7bc9d3dfb778578eb29a0b3
     465library/distutils/log.pyc       2546    c50dfe4041313cc366461a899a1650cf
     466locales/hr.pak  7430    a06f81a87b3fdb822a4f733abd21d1e9
     467doc/manual/hu/finish.png        31044   adb40bacabf2cc597687fffe5c3340de
     468locales/pl.pak  7227    14de2b7637dd2b260184c6ec85976091
     469library/email/__init__.pyc      2752    5e1a1ba649ac697d631b031987d09c33
     470library/share/icons/hicolor/index.theme 22255   5138b82a57488ee821b8a38c2aa1420e
     471simbrief.html   116     d158a7e9f7f34da230229a5c2aab3e66
     472library/glob.pyc        2238    d06c4386d18e2ab7f53fb866599403cc
     473library/_threading_local.pyc    6424    9dfe88d58a5811d2d56347cc381ebf0a
     474locales/fa.pak  9886    475b94417d7b2af113fb147a0c45da0f
     475locales/fr.pak  7917    bac6c149685b4b84617ca8c8c39306b7
     476doc/manual/en/payload.png       28191   b9d22d6226541b8f58df89c7c9da9a62
     477library/selenium/webdriver/support/__init__.pyc 126     b99fdca3533d28cae3e7a63624932966
     478library/sets.pyc        15775   ea560db2e34dae27d1fc9619a342ced8
     479library/doctest.pyc     79210   620422f95e18417ff5f8440534a71e91
     480library/libpango-1.0-0.dll      333729  5a14efd93ee27cfe960220fe4a904911
     481library/encodings/unicode_escape.pyc    1996    32990583f1caf874e556087da7b92971
     482library/selenium/webdriver/support/expected_conditions.pyc      14298   43b8884d089d85e074d0d9f2fbcd5e28
     483doc/manual/hu/logTab.png        28706   f48004202310bd2a1cb2f873d8064e93
     484library/win32event.pyc  555     d66e08d9b35f124fdff12cf4f8273869
     485library/win32file.pyc   552     6a3826b7caca276e9a6e1b84f20302f5
     486library/encodings/shift_jis_2004.pyc    1710    f8bb22a8b02dba2b66b7f77122c98fd6
     487library/encodings/cp856.pyc     2701    8b6649490089bedd87e9b8c56985f6b3
     488locales/hu.pak  7647    7a37ba9f9113e4f7e9de5b5b9643a48c
     489library/mlx/gui/weighthelp.pyc  13179   9ebfa07c41e167371380dda80b5bd72b
     490library/encodings/cp850.pyc     7621    20d776af743fa7acf090fbd575eea143
     491library/gio/__init__.pyc        809     bc9332556e93183a58be5c10cba18557
     492doc/manual/hu/debugLogTab.png   34237   e4d91a024beec781966f7de91ffd196d
     493library/weakref.pyc     13028   5d1c14275f47e8cf6d40bc6877fde976
     494library/mlx/gui/checklist.pyc   12279   555775aaed42b3d0687e1b0f501a9f61
     495library/mlx/fs.pyc      11863   63fda2c4e0727136be69ed82f9e2bbc8
     496locales/he.pak  8198    2486731ee9bedc244d41143a2741775f
     497doc/manual/en/statusIcon1.png   6472    10a7158dd8655de3f18ba914eb2373a5
     498library/email/message.pyc       27764   493826f529d17f5a21080a4c98b49369
     499library/mlx/gui/pirep.pyc       16749   2006126d65a19999a20c4a34f1e94342
     500library/mimetypes.pyc   17806   927ce6a7079707aaee925e855ed23454
     501library/mlx/gui/faultexplain.pyc        9707    938e02beb962d574df694c77536533ca
     502sounds/F70taxi.mp3      154854  51332dc691d3519355f61ed06c959d8d
     503mlx_cef_caller.sh       148     bd16cf4c784490bcd46d7845f2b6edf9
     504library/selenium/webdriver/support/ui.pyc       228     f4a3e26b8378ea9c87e3c97595c42246
     505doc/manual/hu/statusIcon1.png   6920    614cde237a5b4e2678ed15d9cd01088e
     506library/encodings/cp1253.pyc    2689    52d4a723e9e86940701cb648b40ed884
     507library/StringIO.pyc    11100   f4eb4a2bb3d6fb0af925681c5375c673
     508library/gtk/__init__.pyc        3025    9f6605bf84c6cbd3c20f1d37e58af969
     509doc/manual/en/helpTab.png       26243   cd5c021a2fc40485805b9fde03bcd060
     510library/encodings/cp1257.pyc    2683    d24f94b6abbda684c0ad9f3370d86956
     511library/selenium/webdriver/ie/service.pyc       3392    1f0c97b93092c2a239d70a3de49f0642
     512library/_weakrefset.pyc 9290    a56e87c491c0511cd329a3c8c4cd9563
     513library/selenium/webdriver/common/html5/application_cache.pyc   1322    934402964858ad8f330911c4a483d194
     514library/selenium/webdriver/remote/errorhandler.pyc      5753    68a4e26bde6e1f039aa737ded0c3b781
     515library/encodings/gb2312.pyc    1646    466ac29d34de1ad4b3d299ca834e28d9
     516library/libgdk_pixbuf-2.0-0.dll 285194  e4c64b0e7e4c6606f3973a16c0c1ee84
     517library/encodings/big5.pyc      1630    a21b45d3e487bf09f40a08448040c97d
     518library/mlx/gui/update.pyc      11427   5698abbc9b133f18fa2c37d3bfa74bee
     519library/encodings/cp1250.pyc    2676    c92e287a2aa6a1c924df287d826aa3b7
     520doc/manual/en/gatesTab.png      29585   00ebc96a2b4a7473dbb6a3162a04192f
     521library/libcairo-2.dll  1294335 c0da2a3ab704f338f0fc6df51fd99497
     522library/keyword.pyc     2063    4d5bab044f614cfdabe89011cd3d7375
     523locales/vi.pak  7990    f0d8ddd9bdabaef79a9c92f3fd021f25
     524library/encodings/cp862.pyc     8003    261df6dd1a6e5ad90a83dfc739a25e0a
     525library/selenium/webdriver/__init__.pyc 1011    9cce0a4d491b458d651474dc6fd09be0
     526library/selenium/webdriver/common/alert.pyc     2550    cfd59475010657b35ef31c47d8c86fc3
     527library/lxml/__init__.pyc       708     4e6d5e156fb2fe6a8103dd02a1037634
     528library/selenium/webdriver/common/by.pyc        957     9cc3d4670125998f95147624f20d05b0
     529library/encodings/cp863.pyc     7868    fc7ff06dab536b93c68fcb8e7bac713f
     530library/codecs.pyc      34722   339dc90c17d548887dbcf1bbbcae5d5b
     531doc/manual/hu/gateSelection.png 29237   bac37e7001261a40a84e4202247f6052
     532library/cmd.pyc 13512   808f813d5e354b7073a1356e44c7b554
     533locales/ko.pak  7278    41ecc83d5eef5887c7c288b3b570c7b4
     534library/gzip.pyc        14358   2a4a036a0b24586b6bdde419847a18f6
     535locales/ja.pak  8340    21ab6501f6d0c8d3e73b4921ce1b0086
     536locales/ta.pak  16595   5136010addd237205a5560f92b635589
     537library/email/feedparser.pyc    10682   4de6a63da8dc270c9881edb9c2f28508
     538doc/manual/en/route.png 25228   c1b2fb99d21cd862ea292d693400c955
     539library/freetype6.dll   538324  fe5ec4b2a07d2c20a4cd3aa09ce0c571
     540library/encodings/cp1140.pyc    2639    8320825626639ecf4604aac43477b65c
     541library/encodings/cp1251.pyc    2673    cb5ce7a7207c53f1d9e7cae48b3fb258
     542library/encodings/koi8_u.pyc    2686    b7e5a52eaaaf6b340075b40dc7596f42
     543library/selenium/__init__.pyc   187     a6b683ed0e7ff6f74be5d45717a38d10
     544library/atk.pyd 208384  ebe7f0929eac23a3205d17d69906e172
     545library/win32event.pyd  18432   8b65330a56e2bc60d43d6e266c3a922a
     546library/_ctypes.pyd     106496  deccede0781726ce0daa75a4635bf919
     547library/encodings/euc_jp.pyc    1646    c0d60e6d08161643bd7dbe651063f334
     548library/encodings/utf_16_le.pyc 1854    dfa68705c26fd303adfc7ce3322166f2
     549locales/bg.pak  11216   4b55274ffb8f7432bce15cd8b951472e
     550library/_socket.pyd     38400   5d273be76603399e88cf57f2605004bf
     551library/plistlib.pyc    18067   d8d36573e80bfdde7c73e47828f6e710
     552library/_socket.pyc     546     fb1681f80f0e722983f70a325c23b3b5
     553library/encodings/hex_codec.pyc 3520    a8b8d5b7c8810379c7007bcbc253951c
     554library/nturl2path.pyc  1755    7835082f2dd6806f99cc25bed13ff7dc
     555library/mlx/sound.pyc   8226    03b098ed1dd965db98ef4f75b07d6cae
     556library/glib/_glib.pyc  555     ab1cf44ec256636cfd820e5bbdb5cf14
     557library/win32api.pyc    549     5753c8241e91acd8cb4b02cfc18719a3
     558library/encodings/iso8859_13.pyc        2696    f901ae0bbcfbb78f0c1783e89b2e2dc5
     559library/selenium/webdriver/remote/remote_connection.pyc 21225   287db6d396dcce7180eada87e8c6ace0
     560library/mlx/gui/callouts.pyc    16060   7a3055f313e693779e9d2df22bb7568a
     561library/selenium/webdriver/opera/options.pyc    3303    243909f5d36e653ad3ad4921c8df4f78
     562library/encodings/iso8859_15.pyc        2693    b892f358bbc25ae9d3824be158aabe28
     563locales/sr.pak  10790   fd63b700458a187aca8dde86c160a059
     564doc/manual/hu/prefsMessages.png 22980   6e60ec51305e95e5d057c0dd82b69460
     565library/xml/parsers/__init__.pyc        294     83f6a77ed8cd962b3c75c4779dc557ac
     566locale/en/LC_MESSAGES/mlx.mo    68019   e360bc22970f91fa071eec517a0a173c
     567library/_abcoll.pyc     19891   a5c1881934f1533c22b22b9317ac1d68
     568library/encodings/iso8859_11.pyc        2787    a31e6d0d34e35259d7183cc9437eacca
     569library/tarfile.pyc     71654   aca50f546f1356a3e4b33db41bddb9f9
     570locales/es-419.pak      7558    6a9495a0e074a933f0a04a5e5927e2de
     571locales/da.pak  6631    1bf496bcde38f3f2899cd0fab6986959
     572library/encodings/mac_latin2.pyc        4717    564dbaf5c296a147203eb821dc2466ba
     573library/mlx/__init__.pyc        103     029f80bd80f880e6ca70ef4ba46f7d06
     574library/mlx/i18n.pyc    1972    fe45816e49cf5e380bc39942a9dfa875
     575library/xml/sax/saxutils.pyc    12382   32ed045b3b520234ebea6a508a6569fe
     576locales/sw.pak  7078    5406f21a67934bbf0e6c633d2ca573f9
     577library/encodings/mac_turkish.pyc       2739    1682e228ddfd2e74e3ccaee0b65e7261
     578doc/manual/hu/gatesTab.png      30710   a6a59e6a2660c15418489e8785e4bcee
     579library/webbrowser.pyc  18138   c85009edebad6d278fe786fec10ebbbe
     580library/mlx/pyuipc_sim.pyc      57203   e1828998919f435bae2a5cbd969ff8f3
     581library/encodings/cp875.pyc     2636    c72faa5d1cb6105ae81c971448fea479
     582library/dis.pyc 6068    3934ab23d64f3da393305b19df0f1fd0
     583library/difflib.pyc     60869   38d2e1340b64e22d7b1fed90a57fb83a
     584locales/ar.pak  11942   495ed374baef7a96d1a59629f535d084
     585conn_green.png  936     0b7fbe8ee0af2cbeefdb42110a8fdf34
     586locales/ml.pak  17867   1041f687d729ea22199a84dc6d6c8eb8
     587library/selenium/webdriver/firefox/firefox_profile.pyc  13834   6109af4f9224623f12f34284b19a2d74
     588library/selenium/webdriver/ie/__init__.pyc      121     7b4e0c9b6ffbe3385f67f09687f325e7
     589library/encodings/cp737.pyc     8102    40e61988748e4ca1742a2bad43949f4e
     590library/encodings/iso2022_jp.pyc        1683    40c2b92127f99452f84b250c2b4b2cda
     591library/libgthread-2.0-0.dll    44287   7ad6f303082b382bff7bafbab246c61f
     592locales/sk.pak  7622    dfdff6206e5a79aef8b46d0d9c2a8367
     593library/select.pyd      11776   d90bf525f9f6c9c3aa6532fa6e569b4f
     594library/pyuipc.pyc      543     906cca78dfad2ae877c0a2e1595d3d61
     595library/selenium/common/exceptions.pyc  9313    2140bc8b29eb7c3f4fc29622d0060152
     596doc/manual/en/logTab.png        28522   305732f8485a15b7c802801038d688b7
     597library/pyuipc.pyd      47616   2b4fe2d52575de71dda6f72690cf581e
     598library/encodings/johab.pyc     1638    5346c11a863ffbcfb21aba8f1d2236b7
     599library/shutil.pyc      17657   571e2606b42956f9e233242969ceec0d
     600library/encodings/quopri_codec.pyc      3365    01342d4d2735bcbfeb333d784297547a
     601library/distutils/errors.pyc    5885    fbeaddf5d59ea781ec63197dd950aa89
     602library/mlx/gui/mava_simbrief.pyc       10689   e91c026bd70fdde0432196a536017b7b
     603library/logging/__init__.pyc    54813   7bcdf2e8da474f5e94d8e499f6fc3ed4
     604library/selenium/webdriver/phantomjs/service.pyc        3263    3a56577bb9f058e0d7e5be544a8e850b
     605runmlx.exe      63488   3060aa0ed73648edc26992e224568352
     606locales/zh-CN.pak       6386    36e1df83611aef6fbfeeafd067dd4241
     607locales/hi.pak  13321   4b6b27ab4421c94685fc09051a2339f8
     608library/inspect.pyc     38547   836f659fad54f5ee7e8f9d565003aacd
     609library/pickle.pyc      36348   2b55640f6f4e2fd70d95482fd16bfb73
     610library/io.pyc  3378    197da422e1d85c483c94fa0251b5ff76
     611library/encodings/cp874.pyc     2767    fe0c510a9aafa14cae6b037955a93f0b
     612library/glib/option.pyc 11891   bd90183c75d8f473ecf653e3d63a27f9
     613library/encodings/ascii.pyc     2081    a5fffd04734740386629fdba1113d585
     614Microsoft.VC90.CRT/msvcp90.dll  568832  6de5c66e434a9c1729575763d891c6c2
     615library/sre_parse.pyc   18380   fe2376a101668be1124f9ee316662bab
    460616library/token.pyc       3716    732fa0a0cd1c7d9ae9cc696311160fc1
    461617library/encodings/gb18030.pyc   1654    b103fe74a6cdae113476f1fc5255550b
    462 library/gtk/deprecation.pyc     3104    2e6c9eef82dfa8aa3beb05abd3e274a4
    463 Microsoft.VC90.CRT/msvcm90.dll  224768  4a8bc195abdc93f0db5dab7f5093c52f
     618library/glib._glib.pyd  58368   0de636503e43c4eb00e80927bc9bda97
     619locales/el.pak  12310   8f69e235eb651b5c91569cd91c69c689
    464620library/encodings/bz2_codec.pyc 4388    d5ef2b625b70cfae3771a9601d37523b
    465621library/unittest/main.pyc       7701    82258a486f5133466c9cf10323814fbf
    466 doc/manual/hu/route.png 26601   fd1ee7c47290f4c3a2f9fd6618aeb678
     622library/encodings/iso2022_jp_ext.pyc    1715    97eda1c1468f65445951b0bf23a89570
    467623library/mlx/watchdog.pyc        3957    4b6c34d79e730066e8af7cf71689f9ad
  • doc/manual/en/index.html

    r725 r730  
    5858    configuration, however is saved at the time of exceeding 50 knots GS, but
    5959    will be checked and logged when leaving the ground. If you do not lift-off
    60     within 60 seconds of exceeding 50 knots GS, a fault will be logged. If,
    61     however, you check the <i>Rejected takeoff</i> checkbox on
    62     the <a href="#takeOffPage"><i>Takeoff</i></a> page, the fault will
     60    within 60 seconds of exceeding 50 knots GS, a speed fault will be
     61    logged. The same occurs, if your GS decreases to or below 50 knots after
     62    having exceeded it earllier. If, however, you check the
     63    <i>Rejected takeoff</i> checkbox on the
     64    <a href="#takeOffPage"><i>Takeoff</i></a> page, the fault will
    6365    disappear and your flight will enter the <b>RTO</b> (rejected takeoff)
    6466    stage.</li>
     
    7476    to descend during a climb and the previous conditions also hold.</li>
    7577    <li><b>go-around</b>: If you retract the gears during landing.</li>
    76     <li><b>taxi after landing</b>: When the aircraft is in the
     78    <li><b>taxi after landing</b>: When the aircraft is on the
    7779    ground and its ground speed is below 25 knots after landing.</li>
    7880    <li><b>end</b>: If the N<sub>1</sub> of the turbines becomes
     
    100102  the front page of the <a href="http://virtualairlines.hu">MAVA
    101103  website</a> and also on a
    102   <a href="http://virtualairlines.hu/acars2/show.html">map</a>.
     104  <a href="http://virtualairlines.hu/acars2/show.html">map</a>. This map is
     105  also <a href="#acarsTab">displayed</a> by the program.
    103106  </p>
    104107
     
    399402  This page displays some important information about your flight,
    400403  such as the type and tail number of the aircraft to use, the
    401   departure airport and possibly the gate.
     404  departure airport and possibly the gate. You can also select whether you
     405  would like to connect to a variant of  Microsoft Flight Simulator or
     406  X-Plane. The choice is remembered by the program and the selected one will be
     407  the default next time. (<i>Support for X-Plane is currently experimental. The
     408  logger is used by the author on Linux with good results. Volunteers are
     409  wanted to test X-Plane support on Windows.</i>)
    402410  </p>
    403411
     
    459467  When you have set the time of the simulator properly, press
    460468  the <b>Next</b> button.
     469  </p>
     470
     471  <h4><a name="routePage">The <i>Route</i> Page</a></h4>
     472
     473  <img src="route.png" alt="The Route page"/>
     474
     475  <p>
     476  This page displays the flight plan route taken from the booked flight. This
     477  can be edited if necessary (e.g. when you will enter some airspace that will
     478  require you to change the flight level during flight.) You should also
     479  specify the cruise level and the ICAO code of the alternate airport.
     480  </p>
     481
     482  <p>
     483  When satisfied with the information on the page, press
     484  the <b>Next</b> button to advance. Note, that these data can be
     485  edited later as well if you come back to this page.
     486  </p>
     487
     488  <h4><a name="simbriefSetupPage">The <i>SimBrief setup</i> page</a></h4>
     489
     490  <img src="simbriefSetup.png" alt="The SimBrief setup page"/>
     491
     492  <p>
     493  If using the <a href="http://simbrief.com">SimBrief</a> flight planning
     494  service has been enabled in the <a href="#prefsGeneral">Preferences</a>
     495  window, this page is displayed following the
     496  <a href="#routePage"><i>Route</i></a> page.
     497  </p>
     498
     499  <p>
     500  Enter your SimBrief user name and password. The former one is always saved
     501  and offered as the default entry, but the latter one only when the checkbox
     502  below is checked. Some further data should also be entered.
     503  </p>
     504
     505  <p>
     506  Press the <b>Next</b> button to start generating the flight plan. The program
     507  then contacts the SimBrief website, sends the data and downloads the
     508  result. This can take a relatively long time, during which the lower right
     509  corner of the Logger window displays some progress information. If there is
     510  some error, a popup window is displayed. If the login attempt is
     511  unsuccessful, the user name and/or the password can be entered again, but you
     512  can decide to abort using SimBrief.
     513  </p>
     514
     515  <p>
     516  If the result is successfully produced, it can be studied on page
     517  <a href="#simbriefResultPage"><i>SimBrief flight plan</i></a>. In case of a
     518  failure, the flight setup continues with
     519  the  <a href="#fuelPage"><i>Fuel</i></a> page.
     520  </p>
     521
     522  <h4><a name="simbriefResultPage">The <i>SimBrief flight plan</i> page</a></h4>
     523
     524  <img src="simbriefResult.png" alt="The SimBrief flight plan page"/>
     525
     526  <p>
     527  This page displays the SimBrief flight plan created. When carefully read and
     528  understood, press the button at the bottom to the right to continue. Of
     529  course, you can come back to this page later.
    461530  </p>
    462531
     
    494563  </p>
    495564
    496   <h4><a name="routePage">The <i>Route</i> Page</a></h4>
    497 
    498   <img src="route.png" alt="The Route page"/>
    499 
    500   <p>
    501   This page displays the cruise level and the flight plan route. The
    502   cruise level starts out at FL240, but the route comes from the
    503   booked flight. Set the cruise level to the one you have calculated
    504   with, and modify the flight plan if needed. For example, if you will
    505   enter some airspace that will require you to change the flight
    506   level, you should add that here.
    507   </p>
    508 
    509   <p>
    510   When satisfied with the information on the page, press
    511   the <b>Next</b> button to advance. Note, that these data can be
    512   edited later as well if you come back to this page.
    513   </p>
     565  <p>
     566  When fuel pumping has completed, and the SimBrief service is used, and the
     567  generation of the flight plan has been successful, the program jumps to the
     568  <a href="#takeoffPage"><i>Takeoff</i></a> page. Otherwise the
     569  <a href="#briefingPage"><i>Briefing</i></a> pages come next.
    514570
    515571  <h4><a name="briefingPage">The <i>Briefing</i> Pages</a></h4>
     
    519575  <p>
    520576  These pages display the NOTAMs and the METAR for the departure and
    521   the arrival airports. You can edit the METAR if your network
     577  the arrival airports unless we have used SimBrief for flight planning.
     578  You can edit the METAR if your network
    522579  provides a different weather, or you do not fly with real
    523580  weather. The METAR of the arrival airport will be updated when
     
    540597
    541598  <p>
    542   On this page you have to enter the name of the departure runway, the
     599  This page displays the current METAR of the departure airport. It can be
     600  modified if necessary, e.g. when the weather in the simulator is different
     601  from it. Below you have to enter the name of the departure runway, the
    543602  name of the Standard Instrument Departure procedure you follow after
    544   takeoff and the takeoff V-speeds. While you can edit these data
    545   anytime, it is recommended to do so before takeoff.
     603  takeoff and the takeoff V-speeds. In case of the SID you can select
     604  the <i>VECTORS</i> "procedure" if, for some reason, no SID is flown.
     605  While you can edit these data anytime, it is recommended to do so before
     606  takeoff.
    546607  <p>
    547608
     
    576637
    577638  <p>
    578   This page displays your cruise altitude as set on the
    579   <a href="#routePage">Route page</a>. If you need to modify your
     639  This page displays your cruise altitude as set in the
     640  <a href="#routePage"><i>Route</i> page</a>. If you need to modify your
    580641  cruise level due to airspace requirements, step climb or any other
    581642  justified reason, you can set the new level here and then press
    582   the <b>Update</b> button when you have reached the specified level.
     643  the <b>Update</b> button.
    583644  </p>
    584645
     
    593654
    594655  <p>
    595   On this page you have to enter the name of the STAR and/or
    596   transition you planned to follow (even if you get a different one,
    597   or simply vectors from ATC, in which case add a
    598   <a href="#flightInfoTab">comment</a> about it),
     656  The upper part of this page displays the METAR of the landing airport, which
     657  can be edited, if necessary. Below you have to enter the name of the STAR
     658  and/or transition you planned to follow or have followed,
    599659  the approach type (e.g. <q>ILS</q>, <q>VOR</q>, <q>VISUAL</q>,
    600660  etc.), the name of the landing runway, and the landing reference speed,
    601   V<sub>ref</sub>. You can enter this data during the flight, or after
     661  V<sub>ref</sub>. In case of the procedures you can select <i>VECTORS</i>
     662  from the  drop-down list if you have received vectors from ATC.
     663  You can enter this data during the flight, or after
    602664  you have landed, at your discretion. Note, that if you fly one of
    603665  the Tupolev or Yak aircraft, the speed will have to be entered in km/h.
     
    620682  <p>
    621683  This is the final page of the flight wizard. It contains a summary
    622   of your flight: the rating, the flight and block times, the distance
    623   flown and the amount of fuel burnt.
     684  of your flight: the rating, the deptarture, arrival, flight and block times,
     685  the distance flown and the amount of fuel burnt. If the departure or the
     686  arrival time is too off of the schedule, they are displayed in orange or red
     687  depending on the difference. In case of a red colour, comment on the
     688  difference in the <a href="#flightInfoTab"><i>Flight info</i> tab</a>.
    624689  </p>
    625690
     
    651716  <p>
    652717  You can also start a new flight using the <b>New flight</b>
    653   button. If you have not saved or sent the PIREP, you will be asked
     718  button. If you have not saved or sent the PIREP yet, you will be asked
    654719  to confirm your intention. When starting a new flight you are taken
    655720  to the <a href="#flightSelectionPage">flight selection page</a>, if
     
    676741
    677742  <p>
    678   The <i>Flight defects</i> text area should contain information about
    679   any problems you encountered with the plane during the flight. For
    680   example an engine stopped and why (if known), that flaps could not
    681   be extended or retracted, etc.
     743  The <i>Faults, observations</i> area contains the faults logged with a small
     744  field below each of them. The PIREP cannot be sent until an explanation has
     745  been provided in these fields for each fault. The thick frame around the area
     746  appears as long as there is at least one unexplained fault. A warning is also
     747  presented in the upper part of the <a href="#finishPage"<i>Finish</i></a>
     748  page, if something is missing from here.
    682749  </p>
    683750
     
    776843  </p>
    777844
     845  <h3><a name="acarsTab">The ACARS tab</a></h3>
     846
     847  <img src="acarsTab.png" alt="The ACARS tab"/>
     848
     849  <p>
     850  This tab displays the MAVA ACARS system, which is a map with aircraft symbols
     851  representing the flights in progress with icons denoting the departure and
     852  landing airports. Clicking on an airplane displays information on the
     853  corresponding flight.
     854  </p>
     855
     856  <p>
     857  The map is actually displayed by a web browser integrated into the
     858  program. Therefore you can, for example, zoom in or out the map using the
     859  mouse wheel and perform other operations known in case of browsers.
     860  </p>
     861
    778862  <h3><a name="debugLog">The Debug log</a></h3>
    779863
     
    9371021  program. The <i>GUI</i> frame contains options regarding the
    9381022  behaviour of the graphical user interface. The <i>Language</i> combo
    939   box can be used to selected what language the program should
     1023  box can be used to select what language the program should
    9401024  use. Currently English and Hungarian are supported. The value
    9411025  of <i>system default</i> means that the operating system's default
     
    9621046  The <i>Simulator</i> frame contains settings for how the program
    9631047  interacts with the simulator. Most options are self-explanatory, but
    964   the ones related to smoothing requires some discussion. Flight
     1048  the ones related to smoothing require some discussion. Flight
    9651049  Simulator is known to produce wind speed changes that are not
    9661050  entirely realistic and can result in the simulated aircraft
     
    9761060  for which you press the <b>OK</b> button is taken into account
    9771061  immediately.
     1062  </p>
     1063
     1064  <p>
     1065  If the <b>Use SimBrief</b> checkbox is checked, the program will try to
     1066  <a href="#simbriefSetupPage">create</a> a flight plan using the SimBrief
     1067  service during the flight preparation.
    9781068  </p>
    9791069
  • doc/manual/hu/index.html

    r725 r730  
    5959    belépés pillanatában ellenőrzi, illetve írja a naplóba. Ha az 50 csomó
    6060    túllépését követően 60 másodpercen belül nem emelkedünk el, a program
    61     hibát naplóz. Ha azonban ezután a
     61    sebességtúllépés hibát naplóz. Ugyanez történik, ha az 50 csomó túllépését
     62    követően a sebesség ismét 50 csomó alá csökken. Ha azonban ezután a
    6263    <a href="#takeOffPage"><i>Felszállás</i></a> oldalon bejelöljük a
    6364    <i>Megszakított felszállás</i> jelölőnégyzetet, a hiba eltűnik és
     
    102103  valamint egy
    103104  <a href="http://virtualairlines.hu/acars2/show.html">térképen</a>
    104   is megjeleníti a folyamatban lévő járatok állapotát.
     105  is megjeleníti a folyamatban lévő járatok állapotát. A térkép a programban is
     106  <a href="#acarsTab">megjelenik</a>.
    105107  </p>
    106108
     
    399401  Ez az oldal a járat néhány fontos adatát tartalmazza, mint a
    400402  használandó repülőgép típusát és lajstromjelét, az induló
    401   repülőteret és esetleg a kapu vagy állóhely számát.
     403  repülőteret és esetleg a kapu vagy állóhely számát. Kiválaszthatjuk továbbá,
     404  hogy a Microsoft Flight Simulator vagy az X-Plane valamelyik változatához
     405  kívánunk-e csatlakozni. A választást a program megjegyzi és legközelebb az az
     406  alapértelmezés. (<i>Az X-Plane támogatás jelenleg kísérleti jellegű. A szerző
     407  Linuxon használja jó eredménnyel. Vállakozó szellemű jelentkezőket várunk a
     408  Windowson való teszteléshez.</i>)
    402409  </p>
    403410
     
    438445  Ha végeztünk az oldal kitöltésével, nyomjuk meg az <b>Előre</b>
    439446  gombot. Ekkor a <a href="#helpTab"><i>Segítség</i></a> fül használhatóvá
    440   válik, ls igénybe is vehetjük, ha a szimulátorban nem sikerült
     447  válik, és igénybe is vehetjük, ha a szimulátorban nem sikerült
    441448  megfelelően beállítani a hasznos terhet. A fül részletesebb leírását
    442449  lásd az <a href="#helpTab">alábbiakban</a>.
     
    460467  Ha a szimulátorban beállítottuk a megfelelő időt, nyomjuk meg az
    461468  <b>Előre</b> gombot.
     469  </p>
     470
     471  <h4><a name="routePage">Az <i>Útvonal</i> oldal</a></h4>
     472
     473  <img src="route.png" alt="Az Útvonal oldal"/>
     474
     475  <p>
     476  Ezen az oldalon a foglalt járatból vett útvonalterv látható, amelyet
     477  szerkeszthetünk szükség esetén (pl. az útvonal repülése során olyan légtérbe
     478  lépünk, ahol módosítanunk kell az utazószintet). Meg kell adnunk
     479  továbbá az utazószintet és a kitérő repülőtér ICAO kódját is.
     480  </p>
     481
     482  <p>
     483  Ha megadtuk a kért adatokat és megtettük a szükséges módosításokat, nyomjuk
     484  meg az <b>Előre</b> gombot a továbblépéshez. Ha később visszatérünk erre az
     485  oldalra, az adatokat szerkeszthetjük.
     486  </p>
     487
     488  <h4><a name="simbriefSetupPage">A <i>SimBrief beállítások</i> oldal</a></h4>
     489
     490  <img src="simbriefSetup.png" alt="A SimBrief beállítások oldal"/>
     491
     492  <p>
     493  Ha a <a href="#prefsGeneral">Beállítások</a> ablakban engedélyeztük
     494  a <a href="http://simbrief.com">SimBrief</a> repüléstervező oldal
     495  használatát, az <a href="#routePage"><i>Útvonal</i></a> oldalt követően erre
     496  az oldalra jutunk.
     497  </p>
     498
     499  <p>
     500  Meg kell adnunk SimBrief felhasználónevünket és jelszavunkat. Előbbit
     501  mindenképpen elmenti és később felajánlja a program, utóbbit akkor, ha az
     502  alatta lévő jelölődobozt kijelöljük. A továbbiakban meg kell adnunk a
     503  tervezéshez szükséges néhány adatot értelemszerűen.
     504  </p>
     505
     506  <p>
     507  A repülési terv előállításának megkezdéséhez nyomjuk meg az <b>Előre</b>
     508  gombot. Ekkor a program felveszi a kapcsolatot a SimBrief
     509  honlappal, elküldi az adatokat, majd letölti az eredményt. Ez viszonylag
     510  hosszú ideig is eltarhat, közben jobb oldalt alul figyelemmel kísérhetjük a
     511  folyamat előrehaladását. Hiba esetén arról felugró ablakban értesülünk. Ha a
     512  bejelentkezés sikertelen, újból megadhatjuk a felhasználónevet és a jelszót,
     513  de dönthetünk úgy is, hogy elvetjük a SimBrief használatát.
     514  </p>
     515
     516  <p>
     517  Ha sikeresen előáll az eredmény, a <a href="#simbriefResultPage"><i>SimBrief
     518  repülési terv</i></a> oldalon megtekinthető. Sikertelenség esetén pedig az
     519  <a href="#fuelPage"><i>Üzemanyag</i></a> oldalon folytatódik a járat
     520  elindítása.
     521  </p>
     522
     523  <h4><a name="simbriefResultPage">A <i>SimBrief repülési terv</i> oldal</a></h4>
     524
     525  <img src="simbriefResult.png" alt="A SimBrief repülési terv oldal"/>
     526
     527  <p>
     528  Ezen a lapon az elkészült SimBrief repülési tervet tanulmányozhatjuk. Ha
     529  alaposan átolvastuk és megértettük, a továbblépéshez nyomjuk meg az alul,
     530  jobb oldalon található gombot. Természetesen később is visszalapozhatunk erre
     531  az oldalra.
    462532  </p>
    463533
     
    493563  </p>
    494564
    495   <h4><a name="routePage">Az <i>Útvonal</i> oldal</a></h4>
    496 
    497   <img src="route.png" alt="Az Útvonal oldal"/>
    498 
    499   <p>
    500   Ezen az oldalon az utazószintet és az útvonaltervet láthatjuk és
    501   szerkeszthetjük. Az utazószint kezdeti értéke FL240, de az útvonalat
    502   a foglalt járatból veszi a program. Állítsuk be a szintet a
    503   tervezettre, és szükség esetén módosítsuk az útvonalat. Ha például
    504   egyes légterekbe belépve szükség lehet az utazószint módosítására,
    505   azt adjuk meg itt.
    506   </p>
    507 
    508   <p>
    509   Ha megtettük a szükséges módosításokat, nyomjuk meg az <b>Előre</b>
    510   gombot a továbblépéshez. Ha később visszatérünk erre az oldalra, az
    511   adatokat szerkeszthetjük.
     565  <p>
     566  A pumpálás befejeztével, amennyiben a SimBrief szolgáltatást használjuk és
     567  sikeres volt a repülési terv előállítsa,
     568  a <a href="#takeoffPage"><i>Felszállás</i></a> oldalra ugrik a
     569  program. Ellenkező esetben az <a href="#briefingPage"><i>Eligazítás</i></a>
     570  oldalak következnek.
    512571  </p>
    513572
     
    518577  <p>
    519578  Ezen a két oldalon az induló illetve az érkező repülőtér NOTAM-jait
    520   és METAR-ját olvashatjuk. A METAR-t szerkeszthetjük ha a hálózatról
     579  és METAR-ját olvashatjuk, amennyiben nem a SimBrief segítségével terveztük a
     580  repülést. A METAR-t szerkeszthetjük ha a hálózatról
    521581  más időjárást kapunk, vagy nem a valós időjárási viszonyok mellett
    522582  repülünk. Az érkező repülőtér METAR-ját a program frissíti a
     
    539599
    540600  <p>
    541   Ezen az oldalon kell beírni a felszállásra használt futópálya
    542   számát, az alkalmazott szabványos műszeres indulási eljárást,
    543   valamint a felszállási sebességeket. Noha bármikor szerkeszthetjük
    544   ezeket az adatokat, javasolt azokat a felszállás előtt beírni.
    545   <p>
    546 
    547   <p>
    548   Ha valamelyik Tupoljev vagy Jak típussal repülünk, a
    549   sebességeket kilométer per órában kell megadni.
     601  Az oldalon láthatjuk az indulási repülőtér aktuális METAR-ját. Ezt szükség
     602  esetén módosíthatjuk, ha a szimulátorban az időjárás eltér. Lejjebb kell
     603  beírni a felszállásra használt futópálya számát, az alkalmazott szabványos
     604  műszeres indulási eljárást, valamint a felszállási sebességeket. Az indulási
     605  eljárás esetében egy legördülő menüből a <i>VECTORS</i> "eljárás" is
     606  kiválasztható, ha valamilyen okból nem szabványos eljárást repülünk. Noha
     607  bármikor szerkeszthetjük ezeket az adatokat, javasolt azokat a felszállás
     608  előtt beírni.
     609  <p>
     610
     611  <p>
     612  Ha valamelyik Tupoljev vagy Jak típussal repülünk, a sebességeket kilométer
     613  per órában kell megadni.
    550614  </p>
    551615
     
    572636  <h4><a name="cruisePage">Az <i>Utazó</i> oldal</a></h4>
    573637
    574   <img src="cruise.png" alt="Az Utazó oldalon"/>
    575 
    576   <p>
    577   Ezen az oldalon az <a href="#routePage">Útvonal oldal</a>on
     638  <img src="cruise.png" alt="Az Utazó oldal"/>
     639
     640  <p>
     641  Ezen az oldalon az <a href="#routePage"><i>Útvonal</i> oldal</a>on
    578642  beállított utazószint látható. Ha a légtérre vonatkozó előírások,
    579643  step climb, vagy bármely más megalapozott ok miatt módosítani kell
    580   az utazószintent, itt kell megadni az új értéket, majd annak
    581   elérésekor megnyomni a <b>Frissít</b> gombot.
     644  az utazószintet, itt kell megadni az új értéket, majd annak
     645  megnyomni a <b>Frissít</b> gombot.
    582646  </p>
    583647
     
    592656
    593657  <p>
    594   Ezen az oldalon a tervbe vett szabványos érkezési és/vagy bevezetési
    595   eljárás nevét, a megközelítés típusát
     658  Az oldal felső részén  a leszálló repülőtér METAR-ja olvasható, és szükség
     659  esetén szerkeszthető. Lejjeb a tervbe vett/alkalmazott szabványos érkezési
     660  és/vagy bevezetési eljárás nevét, a megközelítés típusát
    596661  (pl. <q>ILS</q>, <q>VOR</q>, <q>VISUAL</q>, stb.) és a
    597662  köszöbátlépési sebességet (V<sub>ref</sub>) kell megadni. Az
    598   eljárások esetén mindig a tervezettet adjuk meg, és ha például az
    599   irányítástól eltérőt, netán vektorokat kaptunk, azt a megjegyzésben
    600   tüntessük fel. Az adatokat repülés közben vagy akár leszállás után
    601   is megadhatjuk. Ha Tupoljev vagy Jak típussal repülönk, a sebességet
     663  eljárások esetén a legördülő listából kiválaszthatjuk a <i>VECTORS</i> opciót,
     664  amennyiben az irányítástól vektorokat kaptunk.
     665  Az adatokat repülés közben vagy akár leszállás után
     666  is megadhatjuk. Ha Tupoljev vagy Jak típussal repülünk, a sebességet
    602667  km/órában kell megadni.
    603668  </p>
     
    621686  <p>
    622687  Ez a járat varázsló utolsó oldala. Tartalmazza a járat
    623   összesítését: a pontszámot, a repült és blokk időt, a repült távot
    624   és az eltüzelt üzemanyag mennyiségét.
     688  összesítését: a pontszámot, az indulási, az érkezési, a repült és blokk időt,
     689  a repült távot és az eltüzelt üzemanyag mennyiségét. Ha az indulási vagy az
     690  érkezési idő túl korai vagy túl késői, a menetrendtől való eltérés mértékétől
     691  függően narancssárga vagy piros színnel jelenik meg. Piros szín esetén a
     692  <a href="#flightInfoTab"><i>Járat info</i> fül</a>ön a megjegyzésben fel kell
     693  tüntetnünk az eltérés okát, mielőtt a járatot értékelésre elküldhetnénk.
    625694  </p>
    626695
     
    676745
    677746  <p>
    678   A <i>Hibajelenségek</i> szövegmező a repülőgéppel kapcsolatban
    679   tapasztalt hibák leírását tartalmazhatja. Például, hogy leállt az
    680   egyik hajtómű, és (ha ismert) miért, hogy a fékszárnyakat nem
    681   sikerült kiengedni vagy visszahúzni, stb.
     747  A <i>Hibák, megfigyelések</i> részben a naplóba is bekerült hibákat láthatjuk
     748  mindegyik alatt egy kis mezővel. A PIREP-et nem küldhetjük el addig, amíg itt
     749  minden egyes hibára nem írunk indoklást, magyarázatot. Erre a figyelmet
     750  felhívja a terület körül látható vastag keret, amelyik csak akkor tűnik el,
     751  ha mindegyik híbára írtunk valamit. Emelett figyelmeztetést
     752  kapunk a hiányos kitöltésről a <a href="#finishPage"><i>Lezárás</i></a> oldal
     753  felső részén is.
    682754  </p>
    683755
     
    776848  </p>
    777849
     850  <h3><a name="acarsTab">Az ACARS fül</a></h3>
     851
     852  <img src="acarsTab.png" alt="Az ACARS fül"/>
     853
     854  <p>
     855  Itt a MAVA ACARS rendszerének képét láthatjuk, ami tulajdonképpen egy térkép
     856  rajta az éppen repült járatokat jelképező repülőgép-szimbólumokkal illetve az
     857  induló és érkező repülőtereket jelképező ikonokkal. Egy repülőgépre
     858  rákkattintva megjelennek a járat főbb adatai.
     859  </p>
     860
     861  <p>
     862  A térképet tulajdonképpen egy, a programba épített böngésző jeleníti meg. Így
     863  például az egér görgőjével növelhetjük ill. csökkenthetjük a térkép léptékét,
     864  illetve egyéb, a böngészőknél megszokott műveletek is elvégezhetők.
     865  </p>
     866
    778867  <h3><a name="debugLog">A Debug napló</a></h3>
    779868
     
    787876  tapasztalunk a program működésével kapcsolatban, e napló tartalmát
    788877  is mellékeljük a hibajelentéshez. Sokban segíthet a megoldás
    789   megtalálásában.
     878  megtalálásában. Ha a <a href="#bugReportWindow">Hibajelentés</a> ablakot
     879  használjuk, akkor az elküldött jelentésbe automatikusan bekerül mind a
     880  normál, mind a debug napló tartalma, így azt már nem kell bemásolnunk a
     881  szövegbe.
    790882  </p>
    791883
     
    9931085  szükséges lehet kísérletezni, de ha megnyomjuk az <b>OK</b> gombot,
    9941086  a beállítást azonnal figyelembe veszi a program.
     1087  </p>
     1088
     1089  <p>
     1090  Ha a <b>SimBrief használata</b> jelölődobozt kijelöljük, a program a járat
     1091  előkészítése során a SimBrief szolgáltatás használatával próbál repülési
     1092  tervet <a href="#simbriefSetupPage">készíteni</a>.
    9951093  </p>
    9961094
  • locale/en/mlx.po

    r634 r729  
    698698msgstr "The planned flight route in the standard format."
    699699
     700msgid "route_altn"
     701msgstr "_Alternate:"
     702
     703msgid "route_altn_tooltip"
     704msgstr "The ICAO code of the alternate airport."
     705
    700706msgid "route_down_notams"
    701707msgstr "Downloading NOTAMs..."
     
    703709msgid "route_down_metars"
    704710msgstr "Downloading METARs..."
     711
     712msgid "simbrief_setup_title"
     713msgstr "SimBrief setup"
     714
     715msgid "simbrief_setup_help"
     716msgstr "Complete the following data to start generating your SimBrief briefing."
     717
     718msgid "simbrief_setup_chelp"
     719msgstr "Your SimBrief briefing was generated with the following data."
     720
     721msgid "simbrief_username"
     722msgstr "_Username:"
     723
     724msgid "simbrief_username_tooltip"
     725msgstr "Enter your Simbrief username"
     726
     727msgid "simbrief_password"
     728msgstr "_Password:"
     729
     730msgid "simbrief_password_tooltip"
     731msgstr "Enter your Simbrief password"
     732
     733msgid "simbrief_remember_password"
     734msgstr "_Remember password"
     735
     736msgid "simbrief_remember_tooltip"
     737msgstr ""
     738"If checked, your SimBrief password will be stored, so that you "
     739"should not have to enter it every time. Note, however, that "
     740"the password is stored as text, and anybody who can access "
     741"your files will be able to read it."
     742
     743msgid "simbrief_extra_fuel"
     744msgstr "_Extra fuel:"
     745
     746msgid "simbrief_extra_fuel_tooltip"
     747msgstr "Enter the amount of extra fuel in kilograms."
     748
     749msgid "simbrief_takeoff_runway"
     750msgstr "_Takeoff runway:"
     751
     752msgid "simbrief_takeoff_runway_tooltip"
     753msgstr ""
     754"Enter the number of the planned takeoff runway.\n"
     755"If you don't want to specify it, leave it empty"
     756
     757msgid "simbrief_landing_runway"
     758msgstr "_Landing runway:"
     759
     760msgid "simbrief_landing_runway_tooltip"
     761msgstr ""
     762"Enter the number of the planned landing runway.\n"
     763"If you don't want to specify it, leave it empty"
     764
     765msgid "simbrief_climb_profile"
     766msgstr "_Climb profile:"
     767
     768msgid "simbrief_climb_profile_tooltip"
     769msgstr "Select the climb profile."
     770
     771msgid "simbrief_cruise_profile"
     772msgstr "C_ruise profile:"
     773
     774msgid "simbrief_cruise_profile_tooltip"
     775msgstr "Select the cruise profile."
     776
     777msgid "simbrief_descent_profile"
     778msgstr "_Descent profile:"
     779
     780msgid "simbrief_descent_profile_tooltip"
     781msgstr "Select the descent profile."
     782
     783msgid "simbrief_calling"
     784msgstr "Calling SimBrief..."
     785
     786msgid "simbrief_progress_searching_browser"
     787msgstr "Searching browser..."
     788
     789msgid "simbrief_progress_loading_form"
     790msgstr "Loading form..."
     791
     792msgid "simbrief_progress_filling_form"
     793msgstr "Filling form..."
     794
     795msgid "simbrief_progress_waiting_login"
     796msgstr "Waiting login..."
     797
     798msgid "simbrief_progress_logging_in"
     799msgstr "Logging in..."
     800
     801msgid "simbrief_progress_waiting_result"
     802msgstr "Waiting for the result..."
     803
     804msgid "simbrief_progress_retrieving_briefing"
     805msgstr "Retrieving briefing..."
     806
     807msgid "simbrief_progress_unknown"
     808msgstr "?????"
     809
     810msgid "simbrief_result_error_other"
     811msgstr "Some error occured, see debug logs."
     812
     813msgid "simbrief_result_error_no_form"
     814msgstr "No form could be loaded."
     815
     816msgid "simbrief_result_error_no_popup"
     817msgstr "No login window appeared."
     818
     819msgid "simbrief_result_error_login_failed"
     820msgstr "Login failed."
     821
     822msgid "simbrief_result_unknown"
     823msgstr "Unknown error occured."
     824
     825msgid "simbrief_cancelled"
     826msgstr "Reverting to the old-style briefing."
     827
     828msgid "simbrief_credentials_title"
     829msgstr "SimBrief login"
     830
     831msgid "simbrief_login_failed"
     832msgstr ""
     833"Failed to log in to SimBrief using the\n"
     834"supplied credentials. Please, enter\n"
     835"new ones, or cancel SimBrief."
     836
     837msgid "simbrief_result_title"
     838msgstr "SimBrief flight plan"
    705839
    706840msgid "briefing_title"
     
    14381572msgstr "sec."
    14391573
     1574msgid "prefs_useSimBrief"
     1575msgstr "Use Sim_Brief"
     1576
     1577msgid "prefs_useSimBrief_tooltip"
     1578msgstr ""
     1579"If enabled, the SimBrief dispatching system will be "
     1580"used to create your briefing.\n"
     1581"You will need a SimBrief user name and password."
     1582
    14401583msgid "prefs_pirepDirectory"
    14411584msgstr "_PIREP directory:"
  • locale/hu/mlx.po

    r634 r729  
    697697msgstr "Az útvonal a szokásos formátumban."
    698698
     699msgid "route_altn"
     700msgstr "Ki_térő:"
     701
     702msgid "route_altn_tooltip"
     703msgstr "A kitérő repülőtér ICAO kódja."
     704
    699705msgid "route_down_notams"
    700706msgstr "NOTAM-ok letöltése..."
     
    702708msgid "route_down_metars"
    703709msgstr "METAR-ok letöltése..."
     710
     711msgid "simbrief_setup_title"
     712msgstr "SimBrief beállítások"
     713
     714msgid "simbrief_setup_help"
     715msgstr "Töltsd ki a lenti adatokat a SimBrief eligazítás előállítása céljából."
     716
     717msgid "simbrief_setup_chelp"
     718msgstr "A SimBrief eligazítás az alábbi adatok alapján keszült."
     719
     720msgid "simbrief_username"
     721msgstr "Fel_használónév:"
     722
     723msgid "simbrief_username_tooltip"
     724msgstr "Írd be a SimBrief felhasználónevedet"
     725
     726msgid "simbrief_password"
     727msgstr "Jels_zó:"
     728
     729msgid "simbrief_password_tooltip"
     730msgstr "Írdbe a SimBrief jelszavadat"
     731
     732msgid "simbrief_remember_password"
     733msgstr "E_mlékezz a jelszóra"
     734
     735msgid "simbrief_remember_tooltip"
     736msgstr ""
     737"Ha ezt kiválasztod, a SimBrief jelszavadat eltárolja a program, így nem kell "
     738"mindig újból beírnod. Vedd azonban figyelembe, hogy a jelszót szövegként "
     739"tároljuk, ezért bárki elolvashatja, aki hozzáfér a fájljaidhoz."
     740
     741msgid "simbrief_extra_fuel"
     742msgstr "E_xtra üzemanyag:"
     743
     744msgid "simbrief_extra_fuel_tooltip"
     745msgstr "Írd be az extra üzemanyag mennyiségét kilogrammban."
     746
     747msgid "simbrief_takeoff_runway"
     748msgstr "_Felszálló futópálya:"
     749
     750msgid "simbrief_takeoff_runway_tooltip"
     751msgstr
     752"Írd be a tervezett felszálló futópálya számát.\n"
     753"Ha nem akarod megadni, hagyd üresen a mezőt."
     754
     755msgid "simbrief_landing_runway"
     756msgstr "_Leszálló futópálya:"
     757
     758msgid "simbrief_landing_runway_tooltip"
     759msgstr
     760"Írd be a tervezett leszálló futópálya számát.\n"
     761"Ha nem akarod megadni, hagyd üresen a mezőt."
     762
     763msgid "simbrief_climb_profile"
     764msgstr "Emelke_dési profil:"
     765
     766msgid "simbrief_climb_profile_tootip"
     767msgstr "Válaszd ki az emelkedési profilt"
     768
     769msgid "simbrief_cruise_profile"
     770msgstr "_Utazó profil:"
     771
     772msgid "simbrief_cruise_profile_tootip"
     773msgstr "Válaszd ki az utazó profilt"
     774
     775msgid "simbrief_descent_profile"
     776msgstr "Süll_yedési profil:"
     777
     778msgid "simbrief_descent_profile_tootip"
     779msgstr "Válaszd ki a süllyedési profilt"
     780
     781msgid "simbrief_calling"
     782msgstr "A SimBrief indítása..."
     783
     784msgid "simbrief_progress_searching_browser"
     785msgstr "Böngésző keresése..."
     786
     787msgid "simbrief_progress_loading_form"
     788msgstr "Űrlap letöltése..."
     789
     790msgid "simbrief_progress_filling_form"
     791msgstr "Űrlap kitöltése..."
     792
     793msgid "simbrief_progress_waiting_login"
     794msgstr "Várakozás a bejelentkező ablakra..."
     795
     796msgid "simbrief_progress_logging_in"
     797msgstr "Bejelentkezés..."
     798
     799msgid "simbrief_progress_waiting_result"
     800msgstr "Várakozás az eredményre..."
     801
     802msgid "simbrief_progress_retrieving_briefing"
     803msgstr "Az eligazítás letöltése..."
     804
     805msgid "simbrief_progress_unknown"
     806msgstr "?????"
     807
     808msgid "simbrief_result_error_other"
     809msgstr "Valamilyen hiba történt, lásd a hibanaplót."
     810
     811msgid "simbrief_result_error_no_form"
     812msgstr "Nem sikerült letölteni az űrlapot."
     813
     814msgid "simbrief_result_error_no_popup"
     815msgstr "Nem jelent meg a bejelentkező ablak."
     816
     817msgid "simbrief_result_error_login_failed"
     818msgstr "A bejelentkezés nem sikerült."
     819
     820msgid "simbrief_result_unknown"
     821msgstr "Ismeretlen hiba történt."
     822
     823msgid "simbrief_cancelled"
     824msgstr "Áttérünk a régi eligazításra."
     825
     826msgid "simbrief_credentials_title"
     827msgstr "SimBrief bejelentkezés"
     828
     829msgid "simbrief_login_failed"
     830msgstr ""
     831"A megadott adatokkal nem tudtam\n"
     832"bejelentkezni a SimBriefbe. Adj meg\n"
     833"új adatokat, vagy hagyjuk a SimBriefet"
     834
     835msgid "simbrief_result_title"
     836msgstr "SimBrief repülési terv"
    704837
    705838msgid "briefing_title"
     
    14791612msgstr "másodpercig."
    14801613
     1614msgid "prefs_useSimBrief"
     1615msgstr "Sim_Brief használata"
     1616
     1617msgid "prefs_useSimBrief_tooltip"
     1618msgstr ""
     1619"Ha ezt bejelölöd, az eligazítás elkészítéséhez a "
     1620"SimBrief rendszert használja a program.\n"
     1621"Szükséged lesz SimBrief felhasználónévre és jelszóra."
     1622
    14811623msgid "prefs_pirepDirectory"
    14821624msgstr "_PIREP-ek könyvtára:"
  • makeinst.bat

    r20 r682  
    11set MSVCRDIR=c:\windows\winsxs\x86_Microsoft.VC90.CRT*9.0.21022.8*
    22set GTKRTDIR=c:\Python27\Lib\site-packages\gtk-2.0\runtime
     3set CEFDIR=c:\Python27\Lib\site-packages\cefpython3
     4set CHROMEDRIVER=c:\tmp\chromedriver.exe
    35set NSISDIR=C:\Program Files\NSIS
    46
    57python setup.py py2exe
    68
     9del dist\library\selenium\webdriver\chrome\service.pyc
     10copy patches\library\selenium\webdriver\chrome\service.py dist\library\selenium\webdriver\chrome\service.py
     11python -m compileall dist\library\selenium\webdriver\chrome\service.py
     12del dist\library\selenium\webdriver\chrome\service.py
     13
    714"%NSISDIR%\makensis" mlx.nsi
  • setup.py

    r497 r720  
    1919                       [os.path.join("locale", language, "LC_MESSAGES",
    2020                                     "mlx.mo")]))
    21 data_files.append(("", ["logo.png",
    22                         "conn_grey.png", "conn_red.png", "conn_green.png"]))
     21data_files.append(("", ["logo.png", "simbrief.html",
     22                        "conn_grey.png", "conn_red.png", "conn_green.png",
     23                        "mlx_cef_caller.sh", "mlx_cef_caller_secondary.sh",
     24                        "mlx_cef_caller.bat", "mlx_cef_caller_secondary.bat"]))
     25
    2326if os.name=="nt":
    2427    import py2exe
     
    2629    data_files.append(("", ["logo.ico"]))
    2730
     31    chromedriver = os.environ.get("CHROMEDRIVER")
     32    if chromedriver:
     33        data_files.append(("", [chromedriver]))
     34
    2835    msvcrDir = os.environ["MSVCRDIR"] if "MSVCRDIR" in os.environ else None
    2936    if msvcrDir:
    30         data_files.append(("Microsoft.VC90.CRT",  glob(os.path.join(msvcrDir, "*.*"))))
     37        data_files.append(("Microsoft.VC90.CRT", glob(os.path.join(msvcrDir, "*.*"))))
     38        os.environ["PATH"] = os.environ["PATH"] + ";" + glob(os.path.join(msvcrDir))[0]
    3139
    3240    gtkRuntimeDir = os.environ["GTKRTDIR"] if "GTKRTDIR" in os.environ else None
     
    4755                           glob(os.path.join(gtkRuntimeDir, path, "*"))))
    4856
     57    cefDir = os.environ.get("CEFDIR")
     58    if cefDir:
     59        for fileName in ["icudt.dll", "subprocess.exe"]:
     60            data_files.append(("", [os.path.join(cefDir, fileName)]))
     61
     62        data_files.append(("locales",
     63                           glob(os.path.join(cefDir, "locales", "*"))))
     64
     65    print data_files
     66
    4967    with open("mlx-common.nsh", "wt") as f:
    5068            print >>f, '!define MLX_VERSION "%s"' % (mlx.const.VERSION)
    5169            f.close()
     70else:
     71    for (dirpath, dirnames, filenames) in os.walk("patches"):
     72        if filenames:
     73            filenames = [os.path.join(dirpath, filename)
     74                         for filename in filenames]
     75            data_files.append((dirpath, filenames))
     76
     77
    5278
    5379long_description="""MAVA Logger X
     
    7197                 { "script" : "mlxupdate.py",
    7298                   "uac_info" : "requireAdministrator"}],
    73       options = { "py2exe" : { "includes": "gio, pango, atk, pangocairo",
     99      options = { "py2exe" : { "includes": "gio, pango, atk, pangocairo, lxml._elementpath",
    74100                               "skip_archive": True} },
    75101      zipfile = "library/.",
     
    80106
    81107if os.name=="nt":
     108    os.rename(os.path.join(scriptdir, "dist", "library", "libcef.dll"),
     109              os.path.join(scriptdir, "dist", "libcef.dll"))
    82110    mlx.update.buildManifest(os.path.join(scriptdir, "dist"))
    83111    with open(os.path.join(scriptdir, "dist", "Uninstall.conf"), "wt") as f:
  • src/mlx/acft.py

    r644 r709  
    8585#---------------------------------------------------------------------------------------
    8686
     87class SimBriefData(object):
     88    """Data to be used when creating SimBrief briefings."""
     89    def __init__(self, climbProfiles, cruiseProfiles, descentProfiles):
     90        """Construct the SimBrief data with the given profiles."""
     91        self.climbProfiles = climbProfiles
     92        self.cruiseProfiles = cruiseProfiles
     93        self.descentProfiles = descentProfiles
     94
     95#---------------------------------------------------------------------------------------
     96
    8797class Aircraft(object):
    8898    """Base class for aircraft."""
     
    123133        self.maxTouchDownPitch = 15.0
    124134        self.brakeCoolTime = 10.0
     135
     136        self.simBriefData = None
    125137
    126138        self._checkers = []
     
    720732        self.maxTakeOffPitch = 16.2
    721733        self.maxTouchDownPitch = 14.7
     734        self.simBriefData = SimBriefData(["250/280/78"],
     735                                         ["CI", "M75", "M78", "M79", "M80", "LRC"],
     736                                         ["78/280/250"])
    722737
    723738#---------------------------------------------------------------------------------------
     
    733748        self.maxTakeOffPitch = 14.7
    734749        self.maxTouchDownPitch = 13.2
     750        self.simBriefData = SimBriefData(["250/280/78"],
     751                                         ["CI", "M75", "M78", "M79", "M80", "LRC"],
     752                                         ["78/280/250", "78/250/250"])
    735753
    736754#---------------------------------------------------------------------------------------
     
    746764        self.maxTakeOffPitch = 11
    747765        self.maxTouchDownPitch = 9.5
     766        self.simBriefData = SimBriefData(["250/280/78"],
     767                                         ["CI", "M76", "M78", "M79", "M80", "LRC"],
     768                                         ["78/280/250", "78/250/250"])
    748769
    749770#---------------------------------------------------------------------------------------
     
    754775        super(B738Charter, self).__init__(flight)
    755776        self.mtow = 77791
     777        self.simBriefData = SimBriefData(["AUTO"],
     778                                         ["280/M74"],
     779                                         ["AUTO"])
    756780
    757781#---------------------------------------------------------------------------------------
     
    826850        self.maxTakeOffPitch = 8.0
    827851        self.maxTouchDownPitch = 7.0
     852        self.simBriefData = SimBriefData(["I-900", "II-900", "III-900",
     853                                          "I-850", "II-850", "III-850"],
     854                                         ["MCR", "ISC", "LRC", "HSC"],
     855                                         ["I-850", "II-850", "III-850"])
    828856
    829857#---------------------------------------------------------------------------------------
     
    878906        self.maxTakeOffPitch = 9.6
    879907        self.maxTouchDownPitch = 8.1
     908        self.simBriefData = SimBriefData(["250/290/78"],
     909                                         ["CI", "M76", "M78", "M80", "M82", "M84", "LRC"],
     910                                         ["78/290/250"])
    880911
    881912#---------------------------------------------------------------------------------------
     
    902933        self.maxTakeOffPitch = 18.0
    903934        self.maxTouchDownPitch = 18.0
     935        self.simBriefData = SimBriefData(["250/70", "290/74"],
     936                                         ["CI", "LRC", "M70", "M72", "M74", "M77", "M80"],
     937                                         ["74/290/250", "77/320/250"])
    904938
    905939#---------------------------------------------------------------------------------------
     
    10451079        self.maxTakeOffPitch = 16.0
    10461080        self.maxTouchDownPitch = 16.0
     1081        self.simBriefData = SimBriefData(["AUTO"],
     1082                                         ["300/M80"],
     1083                                         ["AUTO"])
    10471084
    10481085    @property
  • src/mlx/common.py

    r585 r651  
    1818#-------------------------------------------------------------------------------
    1919
    20 if os.name=="nt" or "FORCE_PYGTK" in os.environ:
     20# Due to CEF, PyGTK is the default
     21if "FORCE_PYGOBJECT" not in os.environ:
    2122    print "Using PyGTK"
    2223    pygobject = False
  • src/mlx/config.py

    r503 r689  
    211211class Config(object):
    212212    """Our configuration."""
    213     DEFAULT_UPDATE_URL = "http://mlx.varadiistvan.hu/update"
     213    DEFAULT_UPDATE_URL = "http://mlx.varadiistvan.hu/update/cef"
    214214
    215215    _messageTypesSection = "messageTypes"
     
    233233        self._vsSmoothingLength = -2
    234234
     235        self._useSimBrief = False
     236        self._simBriefUserName = ""
     237        self._simBriefPassword = ""
     238        self._rememberSimBriefPassword = False
     239
    235240        self._pirepDirectory = None
    236241        self._pirepAutoSave = False
     
    442447        if vsSmoothingLength!=self._vsSmoothingLength:
    443448            self._vsSmoothingLength = vsSmoothingLength
     449            self._modified = True
     450
     451    @property
     452    def useSimBrief(self):
     453        """Check if SimBrief should be used."""
     454        return self._useSimBrief
     455
     456    @useSimBrief.setter
     457    def useSimBrief(self, useSimBrief):
     458        """Check if SimBrief should be used."""
     459        if self._useSimBrief != useSimBrief:
     460            self._useSimBrief = useSimBrief
     461            self._modified = True
     462
     463    @property
     464    def simBriefUserName(self):
     465        """Get the SimBrief user name last used"""
     466        return self._simBriefUserName
     467
     468    @simBriefUserName.setter
     469    def simBriefUserName(self, simBriefUserName):
     470        """Set the SimBrief user name to be used next."""
     471        if self._simBriefUserName != simBriefUserName:
     472            self._simBriefUserName = simBriefUserName
     473            self._modified = True
     474
     475    @property
     476    def simBriefPassword(self):
     477        """Get the SimBrief password last used"""
     478        return self._simBriefPassword
     479
     480    @simBriefPassword.setter
     481    def simBriefPassword(self, simBriefPassword):
     482        """Set the SimBrief password to be used next."""
     483        if self._simBriefPassword != simBriefPassword:
     484            self._simBriefPassword = simBriefPassword
     485            self._modified = True
     486
     487    @property
     488    def rememberSimBriefPassword(self):
     489        """Get if we should remember the SimBrief password."""
     490        return self._rememberSimBriefPassword
     491
     492    @rememberSimBriefPassword.setter
     493    def rememberSimBriefPassword(self, rememberSimBriefPassword):
     494        """Set if we should remember the SimBrief password."""
     495        if rememberSimBriefPassword!=self._rememberSimBriefPassword:
     496            self._rememberSimBriefPassword = rememberSimBriefPassword
    444497            self._modified = True
    445498
     
    678731                                                "vsSmoothingLength",
    679732                                                -2))
     733
     734        self._useSimBrief = self._getBoolean(config, "simbrief",
     735                                             "use", False)
     736        self._simBriefUserName = self._get(config, "simbrief",
     737                                           "username", "")
     738        self._simBriefPassword = self._get(config, "simbrief",
     739                                           "password", "")
     740        self._rememberSimBriefPassword = self._getBoolean(config, "simbrief",
     741                                                          "rememberPassword",
     742                                                          False)
     743
    680744        self._pirepDirectory = self._get(config, "general",
    681745                                         "pirepDirectory", None)
     
    758822                   str(self._vsSmoothingLength))
    759823
     824        config.add_section("simbrief")
     825        config.set("simbrief", "use",
     826                   "yes" if self._useSimBrief else "no")
     827        config.set("simbrief", "username", self._simBriefUserName)
     828        config.set("simbrief", "password", self._simBriefPassword)
     829        config.set("simbrief", "rememberPassword",
     830                   "yes" if self._rememberSimBriefPassword else "no")
     831
    760832        if self._pirepDirectory is not None:
    761833            config.set("general", "pirepDirectory", self._pirepDirectory)
     
    907979        print "  vsSmoothingLength:", self._vsSmoothingLength
    908980
     981        print "  useSimBrief:", self._useSimBrief
     982        print "  simBriefUserName:", self._simBriefUserName
     983        print "  rememberSimBriefPassword:", self._rememberSimBriefPassword
     984
    909985        print "  pirepDirectory:", self._pirepDirectory
    910986        print "  pirepAutoSave:", self._pirepAutoSave
  • src/mlx/const.py

    r722 r731  
    1111
    1212## The version of the program
    13 VERSION="0.36"
     13VERSION="0.37"
    1414
    1515#-------------------------------------------------------------------------------
  • src/mlx/gui/common.py

    r604 r730  
    3232    pygobject = False
    3333    import pygtk
     34    pygtk.require("2.0")
    3435    import gtk.gdk as gdk
    3536    import gtk
     
    288289PROGRAM_NAME = "MAVA Logger X"
    289290
    290 WINDOW_TITLE_BASE = PROGRAM_NAME + " " + _const.VERSION
     291WINDOW_TITLE_BASE = PROGRAM_NAME
    291292if secondaryInstallation:
    292293    WINDOW_TITLE_BASE += " (" + xstr("secondary") + ")"
  • src/mlx/gui/flight.py

    r675 r728  
    11
    22from mlx.gui.common import *
     3import mlx.gui.cef as cef
    34
    45import mlx.const as const
     
    1718import time
    1819import os
     20import tempfile
     21import threading
    1922
    2023#-----------------------------------------------------------------------------
     
    14251428#-----------------------------------------------------------------------------
    14261429
     1430class RoutePage(Page):
     1431    """The page containing the route and the flight level."""
     1432    def __init__(self, wizard):
     1433        """Construct the page."""
     1434        super(RoutePage, self).__init__(wizard, xstr("route_title"),
     1435                                        xstr("route_help"),
     1436                                        completedHelp = xstr("route_chelp"))
     1437
     1438        alignment = gtk.Alignment(xalign = 0.5, yalign = 0.5,
     1439                                  xscale = 0.0, yscale = 0.0)
     1440
     1441        mainBox = gtk.VBox()
     1442        alignment.add(mainBox)
     1443        self.setMainWidget(alignment)
     1444
     1445        levelBox = gtk.HBox()
     1446
     1447        label = gtk.Label(xstr("route_level"))
     1448        label.set_use_underline(True)
     1449        levelBox.pack_start(label, True, True, 0)
     1450
     1451        self._cruiseLevel = gtk.SpinButton()
     1452        self._cruiseLevel.set_increments(step = 10, page = 100)
     1453        self._cruiseLevel.set_range(min = 0, max = 500)
     1454        self._cruiseLevel.set_tooltip_text(xstr("route_level_tooltip"))
     1455        self._cruiseLevel.set_numeric(True)
     1456        self._cruiseLevel.connect("changed", self._cruiseLevelChanged)
     1457        self._cruiseLevel.connect("value-changed", self._cruiseLevelChanged)
     1458        label.set_mnemonic_widget(self._cruiseLevel)
     1459
     1460        levelBox.pack_start(self._cruiseLevel, False, False, 8)
     1461
     1462        alignment = gtk.Alignment(xalign = 0.0, yalign = 0.5,
     1463                                  xscale = 0.0, yscale = 0.0)
     1464        alignment.add(levelBox)
     1465
     1466        mainBox.pack_start(alignment, False, False, 0)
     1467
     1468
     1469        routeBox = gtk.VBox()
     1470
     1471        alignment = gtk.Alignment(xalign = 0.0, yalign = 0.5,
     1472                                  xscale = 0.0, yscale = 0.0)
     1473        label = gtk.Label(xstr("route_route"))
     1474        label.set_use_underline(True)
     1475        alignment.add(label)
     1476        routeBox.pack_start(alignment, True, True, 0)
     1477
     1478        routeWindow = gtk.ScrolledWindow()
     1479        routeWindow.set_size_request(400, 80)
     1480        routeWindow.set_shadow_type(gtk.ShadowType.IN if pygobject
     1481                                    else gtk.SHADOW_IN)
     1482        routeWindow.set_policy(gtk.PolicyType.AUTOMATIC if pygobject
     1483                               else gtk.POLICY_AUTOMATIC,
     1484                               gtk.PolicyType.AUTOMATIC if pygobject
     1485                               else gtk.POLICY_AUTOMATIC)
     1486
     1487        self._uppercasingRoute = False
     1488
     1489        self._route = gtk.TextView()
     1490        self._route.set_tooltip_text(xstr("route_route_tooltip"))
     1491        self._route.set_wrap_mode(WRAP_WORD)
     1492        self._route.get_buffer().connect("changed", self._routeChanged)
     1493        self._route.get_buffer().connect_after("insert-text", self._routeInserted)
     1494        routeWindow.add(self._route)
     1495
     1496        label.set_mnemonic_widget(self._route)
     1497        routeBox.pack_start(routeWindow, True, True, 0)
     1498
     1499        mainBox.pack_start(routeBox, True, True, 8)
     1500
     1501        alternateBox = gtk.HBox()
     1502
     1503        label = gtk.Label(xstr("route_altn"))
     1504        label.set_use_underline(True)
     1505        alternateBox.pack_start(label, True, True, 0)
     1506
     1507        self._alternate = gtk.Entry()
     1508        self._alternate.set_width_chars(6)
     1509        self._alternate.connect("changed", self._alternateChanged)
     1510        self._alternate.set_tooltip_text(xstr("route_altn_tooltip"))
     1511        label.set_mnemonic_widget(self._alternate)
     1512
     1513        alternateBox.pack_start(self._alternate, False, False, 8)
     1514
     1515        alignment = gtk.Alignment(xalign = 0.0, yalign = 0.5,
     1516                                  xscale = 0.0, yscale = 0.0)
     1517        alignment.add(alternateBox)
     1518
     1519        mainBox.pack_start(alignment, False, False, 0)
     1520
     1521        self.addCancelFlightButton()
     1522
     1523        self._backButton = self.addPreviousButton(clicked = self._backClicked)
     1524        self._button = self.addNextButton(clicked = self._forwardClicked)
     1525
     1526    @property
     1527    def filedCruiseLevel(self):
     1528        """Get the filed cruise level."""
     1529        return self._cruiseLevel.get_value_as_int()
     1530
     1531    @property
     1532    def route(self):
     1533        """Get the route."""
     1534        return self._getRoute()
     1535
     1536    @property
     1537    def alternate(self):
     1538        """Get the ICAO code of the alternate airport."""
     1539        return self._alternate.get_text()
     1540
     1541    def activate(self):
     1542        """Setup the route from the booked flight."""
     1543        self._cruiseLevel.set_value(0)
     1544        self._cruiseLevel.set_text("")
     1545        self._route.get_buffer().set_text(self._wizard._bookedFlight.route)
     1546        self._alternate.set_text("")
     1547        self._updateForwardButton()
     1548
     1549    def _getRoute(self):
     1550        """Get the text of the route."""
     1551        buffer = self._route.get_buffer()
     1552        return buffer.get_text(buffer.get_start_iter(),
     1553                               buffer.get_end_iter(), True)
     1554
     1555    def _updateForwardButton(self):
     1556        """Update the sensitivity of the forward button."""
     1557        cruiseLevelText = self._cruiseLevel.get_text()
     1558        cruiseLevel = int(cruiseLevelText) if cruiseLevelText else 0
     1559        alternate = self._alternate.get_text()
     1560        self._button.set_sensitive(cruiseLevel>=50 and self._getRoute()!="" and
     1561                                   len(alternate)==4)
     1562
     1563    def _cruiseLevelChanged(self, *arg):
     1564        """Called when the cruise level has changed."""
     1565        self._updateForwardButton()
     1566
     1567    def _routeChanged(self, textBuffer):
     1568        """Called when the route has changed."""
     1569        if not self._uppercasingRoute:
     1570            self._updateForwardButton()
     1571
     1572    def _routeInserted(self, textBuffer, iter, text, length):
     1573        """Called when new characters are inserted into the route.
     1574
     1575        It uppercases all characters."""
     1576        if not self._uppercasingRoute:
     1577            self._uppercasingRoute = True
     1578
     1579            iter1 = iter.copy()
     1580            iter1.backward_chars(length)
     1581            textBuffer.delete(iter, iter1)
     1582
     1583            textBuffer.insert(iter, text.upper())
     1584
     1585            self._uppercasingRoute = False
     1586
     1587    def _alternateChanged(self, entry):
     1588        """Called when the alternate airport has changed."""
     1589        entry.set_text(entry.get_text().upper())
     1590        self._updateForwardButton()
     1591
     1592    def _backClicked(self, button):
     1593        """Called when the Back button is pressed."""
     1594        self.goBack()
     1595
     1596    def _forwardClicked(self, button):
     1597        """Called when the Forward button is clicked."""
     1598        if self._wizard.gui.flight.aircraft.simBriefData is None:
     1599            self._wizard.usingSimBrief = False
     1600        if self._wizard.gui.config.useSimBrief and \
     1601           self._wizard.usingSimBrief is not False:
     1602            self._wizard.nextPage()
     1603        else:
     1604            self._wizard.usingSimBrief = False
     1605            self._wizard.jumpPage(3)
     1606
     1607#-----------------------------------------------------------------------------
     1608
     1609class SimBriefCredentialsDialog(gtk.Dialog):
     1610    """A dialog window to ask for SimBrief credentials."""
     1611    def __init__(self, gui, userName, password, rememberPassword):
     1612        """Construct the dialog."""
     1613        super(SimBriefCredentialsDialog, self).__init__(WINDOW_TITLE_BASE + " - " +
     1614                                                        xstr("simbrief_credentials_title"),
     1615                                                        gui.mainWindow,
     1616                                                        DIALOG_MODAL)
     1617        self.add_button(xstr("button_cancel"), RESPONSETYPE_CANCEL)
     1618        self.add_button(xstr("button_ok"), RESPONSETYPE_OK)
     1619
     1620        contentArea = self.get_content_area()
     1621
     1622        contentAlignment = gtk.Alignment(xalign = 0.5, yalign = 0.5,
     1623                                         xscale = 0.0, yscale = 0.0)
     1624        contentAlignment.set_padding(padding_top = 4, padding_bottom = 16,
     1625                                     padding_left = 8, padding_right = 8)
     1626
     1627        contentArea.pack_start(contentAlignment, False, False, 0)
     1628
     1629        contentVBox = gtk.VBox()
     1630        contentAlignment.add(contentVBox)
     1631
     1632        label = gtk.Label(xstr("simbrief_login_failed"))
     1633        label.set_alignment(0.0, 0.0)
     1634
     1635        contentVBox.pack_start(label, False, False, 0)
     1636
     1637        tableAlignment = gtk.Alignment(xalign = 0.5, yalign = 0.5,
     1638                                       xscale = 0.0, yscale = 0.0)
     1639        tableAlignment.set_padding(padding_top = 24, padding_bottom = 0,
     1640                                   padding_left = 0, padding_right = 0)
     1641
     1642        table = gtk.Table(3, 2)
     1643        table.set_row_spacings(4)
     1644        table.set_col_spacings(16)
     1645        table.set_homogeneous(False)
     1646
     1647        tableAlignment.add(table)
     1648        contentVBox.pack_start(tableAlignment, True, True, 0)
     1649
     1650        label = gtk.Label(xstr("simbrief_username"))
     1651        label.set_use_underline(True)
     1652        label.set_alignment(0.0, 0.5)
     1653        table.attach(label, 0, 1, 0, 1)
     1654
     1655        self._userName = gtk.Entry()
     1656        self._userName.set_width_chars(16)
     1657        #self._userName.connect("changed",
     1658        #                       lambda button: self._updateForwardButton())
     1659        self._userName.set_tooltip_text(xstr("simbrief_username_tooltip"))
     1660        self._userName.set_text(userName)
     1661        table.attach(self._userName, 1, 2, 0, 1)
     1662        label.set_mnemonic_widget(self._userName)
     1663
     1664        label = gtk.Label(xstr("simbrief_password"))
     1665        label.set_use_underline(True)
     1666        label.set_alignment(0.0, 0.5)
     1667        table.attach(label, 0, 1, 1, 2)
     1668
     1669        self._password = gtk.Entry()
     1670        self._password.set_visibility(False)
     1671        #self._password.connect("changed",
     1672        #                       lambda button: self._updateForwardButton())
     1673        self._password.set_tooltip_text(xstr("simbrief_password_tooltip"))
     1674        self._password.set_text(password)
     1675        table.attach(self._password, 1, 2, 1, 2)
     1676        label.set_mnemonic_widget(self._password)
     1677
     1678        self._rememberButton = gtk.CheckButton(xstr("simbrief_remember_password"))
     1679        self._rememberButton.set_use_underline(True)
     1680        self._rememberButton.set_tooltip_text(xstr("simbrief_remember_tooltip"))
     1681        self._rememberButton.set_active(rememberPassword)
     1682        table.attach(self._rememberButton, 1, 2, 2, 3, ypadding = 8)
     1683
     1684    @property
     1685    def userName(self):
     1686        """Get the user name entered."""
     1687        return self._userName.get_text()
     1688
     1689    @property
     1690    def password(self):
     1691        """Get the password entered."""
     1692        return self._password.get_text()
     1693
     1694    @property
     1695    def rememberPassword(self):
     1696        """Get whether the password is to be remembered."""
     1697        return self._rememberButton.get_active()
     1698
     1699    def run(self):
     1700        """Run the dialog."""
     1701        self.show_all()
     1702
     1703        response = super(SimBriefCredentialsDialog, self).run()
     1704
     1705        self.hide()
     1706
     1707        return response
     1708
     1709#-----------------------------------------------------------------------------
     1710
     1711class SimBriefSetupPage(Page):
     1712    """Page for setting up some parameters for SimBrief."""
     1713    monthNum2Name = [
     1714        "JAN",
     1715        "FEB",
     1716        "MAR",
     1717        "APR",
     1718        "MAY",
     1719        "JUN",
     1720        "JUL",
     1721        "AUG",
     1722        "SEP",
     1723        "OCT",
     1724        "NOV",
     1725        "DEC"
     1726        ]
     1727
     1728    progress2Message = {
     1729        cef.SIMBRIEF_PROGRESS_SEARCHING_BROWSER: "simbrief_progress_searching_browser",
     1730        cef.SIMBRIEF_PROGRESS_LOADING_FORM: "simbrief_progress_loading_form",
     1731        cef.SIMBRIEF_PROGRESS_FILLING_FORM: "simbrief_progress_filling_form",
     1732        cef.SIMBRIEF_PROGRESS_WAITING_LOGIN: "simbrief_progress_waiting_login",
     1733        cef.SIMBRIEF_PROGRESS_LOGGING_IN: "simbrief_progress_logging_in",
     1734        cef.SIMBRIEF_PROGRESS_WAITING_RESULT: "simbrief_progress_waiting_result",
     1735        cef.SIMBRIEF_PROGRESS_RETRIEVING_BRIEFING: "simbrief_progress_retrieving_briefing"
     1736        }
     1737
     1738    result2Message = {
     1739        cef.SIMBRIEF_RESULT_ERROR_OTHER: "simbrief_result_error_other",
     1740        cef.SIMBRIEF_RESULT_ERROR_NO_FORM: "simbrief_result_error_no_form",
     1741        cef.SIMBRIEF_RESULT_ERROR_NO_POPUP: "simbrief_result_error_no_popup",
     1742        cef.SIMBRIEF_RESULT_ERROR_LOGIN_FAILED: "simbrief_result_error_login_failed"
     1743        }
     1744
     1745    @staticmethod
     1746    def getHTMLFilePath():
     1747        """Get the path of the HTML file to contain the generated flight
     1748        plan."""
     1749        if os.name=="nt":
     1750            return os.path.join(tempfile.gettempdir(),
     1751                                "mlx_simbrief" +
     1752                                (".secondary" if secondaryInstallation else "") +
     1753                                ".html")
     1754        else:
     1755            import pwd
     1756            return os.path.join(tempfile.gettempdir(),
     1757                                "mlx_simbrief." + pwd.getpwuid(os.getuid())[0] + "" +
     1758                                (".secondary" if secondaryInstallation else "") +
     1759                                ".html")
     1760
     1761    def __init__(self, wizard):
     1762        """Construct the setup page."""
     1763
     1764        super(SimBriefSetupPage, self).__init__(wizard,
     1765                                                xstr("simbrief_setup_title"),
     1766                                                xstr("simbrief_setup_help"),
     1767                                                xstr("simbrief_setup_chelp"))
     1768
     1769        alignment = gtk.Alignment(xalign = 0.5, yalign = 0.5,
     1770                                  xscale = 0.0, yscale = 0.0)
     1771
     1772        table = gtk.Table(9, 3)
     1773        table.set_row_spacings(4)
     1774        table.set_col_spacings(16)
     1775        table.set_homogeneous(False)
     1776        alignment.add(table)
     1777        self.setMainWidget(alignment)
     1778
     1779        label = gtk.Label(xstr("simbrief_username"))
     1780        label.set_use_underline(True)
     1781        label.set_alignment(0.0, 0.5)
     1782        table.attach(label, 0, 1, 0, 1)
     1783
     1784        self._userName = gtk.Entry()
     1785        self._userName.set_width_chars(16)
     1786        self._userName.connect("changed",
     1787                               lambda button: self._updateForwardButton())
     1788        self._userName.set_tooltip_text(xstr("simbrief_username_tooltip"))
     1789        table.attach(self._userName, 1, 2, 0, 1)
     1790        label.set_mnemonic_widget(self._userName)
     1791
     1792        label = gtk.Label(xstr("simbrief_password"))
     1793        label.set_use_underline(True)
     1794        label.set_alignment(0.0, 0.5)
     1795        table.attach(label, 0, 1, 1, 2)
     1796
     1797        self._password = gtk.Entry()
     1798        self._password.set_visibility(False)
     1799        self._password.connect("changed",
     1800                               lambda button: self._updateForwardButton())
     1801        self._password.set_tooltip_text(xstr("simbrief_password_tooltip"))
     1802        table.attach(self._password, 1, 2, 1, 2)
     1803        label.set_mnemonic_widget(self._password)
     1804
     1805        self._rememberButton = gtk.CheckButton(xstr("simbrief_remember_password"))
     1806        self._rememberButton.set_use_underline(True)
     1807        self._rememberButton.set_tooltip_text(xstr("simbrief_remember_tooltip"))
     1808        table.attach(self._rememberButton, 1, 2, 2, 3, ypadding = 8)
     1809
     1810        self._credentialsCondition = threading.Condition()
     1811        self._credentialsAvailable = False
     1812        self._credentialsUserName = None
     1813        self._credentialsPassword = None
     1814
     1815        label = gtk.Label(xstr("simbrief_extra_fuel"))
     1816        label.set_use_underline(True)
     1817        label.set_alignment(0.0, 0.5)
     1818        table.attach(label, 0, 1, 3, 4)
     1819
     1820        self._extraFuel = IntegerEntry(defaultValue = 0)
     1821        self._extraFuel.set_width_chars(6)
     1822        self._extraFuel.set_tooltip_text(xstr("simbrief_extra_fuel_tooltip"))
     1823        table.attach(self._extraFuel, 1, 2, 3, 4)
     1824        label.set_mnemonic_widget(self._extraFuel)
     1825
     1826        table.attach(gtk.Label("kg"), 2, 3, 3, 4)
     1827
     1828        label = gtk.Label(xstr("simbrief_takeoff_runway"))
     1829        label.set_use_underline(True)
     1830        label.set_alignment(0.0, 0.5)
     1831        table.attach(label, 0, 1, 4, 5)
     1832
     1833        self._takeoffRunway = gtk.Entry()
     1834        self._takeoffRunway.set_width_chars(10)
     1835        self._takeoffRunway.set_tooltip_text(xstr("simbrief_takeoff_runway_tooltip"))
     1836        self._takeoffRunway.connect("changed", self._upperChanged)
     1837        table.attach(self._takeoffRunway, 1, 2, 4, 5)
     1838        label.set_mnemonic_widget(self._takeoffRunway)
     1839
     1840        label = gtk.Label(xstr("simbrief_landing_runway"))
     1841        label.set_use_underline(True)
     1842        label.set_alignment(0.0, 0.5)
     1843        table.attach(label, 0, 1, 5, 6)
     1844
     1845        self._landingRunway = gtk.Entry()
     1846        self._landingRunway.set_width_chars(10)
     1847        self._landingRunway.set_tooltip_text(xstr("simbrief_takeoff_runway_tooltip"))
     1848        self._landingRunway.connect("changed", self._upperChanged)
     1849        table.attach(self._landingRunway, 1, 2, 5, 6)
     1850        label.set_mnemonic_widget(self._landingRunway)
     1851
     1852        label = gtk.Label(xstr("simbrief_climb_profile"))
     1853        label.set_use_underline(True)
     1854        label.set_alignment(0.0, 0.5)
     1855        table.attach(label, 0, 1, 6, 7)
     1856
     1857        self._climbProfile = gtk.ComboBox()
     1858        renderer = gtk.CellRendererText()
     1859        self._climbProfile.pack_start(renderer, True)
     1860        self._climbProfile.add_attribute(renderer, "text", 0)
     1861        self._climbProfile.set_tooltip_text(xstr("simbrief_climb_profile_tooltip"))
     1862        table.attach(self._climbProfile, 1, 2, 6, 7)
     1863        label.set_mnemonic_widget(self._climbProfile)
     1864
     1865        label = gtk.Label(xstr("simbrief_cruise_profile"))
     1866        label.set_use_underline(True)
     1867        label.set_alignment(0.0, 0.5)
     1868        table.attach(label, 0, 1, 7, 8)
     1869
     1870        self._cruiseProfile = gtk.ComboBox()
     1871        renderer = gtk.CellRendererText()
     1872        self._cruiseProfile.pack_start(renderer, True)
     1873        self._cruiseProfile.add_attribute(renderer, "text", 0)
     1874        self._cruiseProfile.set_tooltip_text(xstr("simbrief_cruise_profile_tooltip"))
     1875        table.attach(self._cruiseProfile, 1, 2, 7, 8)
     1876        label.set_mnemonic_widget(self._cruiseProfile)
     1877
     1878        label = gtk.Label(xstr("simbrief_descent_profile"))
     1879        label.set_use_underline(True)
     1880        label.set_alignment(0.0, 0.5)
     1881        table.attach(label, 0, 1, 8, 9)
     1882
     1883        self._descentProfile = gtk.ComboBox()
     1884        renderer = gtk.CellRendererText()
     1885        self._descentProfile.pack_start(renderer, True)
     1886        self._descentProfile.add_attribute(renderer, "text", 0)
     1887        self._descentProfile.set_tooltip_text(xstr("simbrief_descent_profile_tooltip"))
     1888        table.attach(self._descentProfile, 1, 2, 8, 9)
     1889        label.set_mnemonic_widget(self._descentProfile)
     1890
     1891        self.addCancelFlightButton()
     1892
     1893        self._backButton = self.addPreviousButton(clicked = self._backClicked)
     1894        self._button = self.addNextButton(clicked = self._forwardClicked)
     1895
     1896    def activate(self):
     1897        """Activate the SimBrief setup page"""
     1898        config = self._wizard.gui.config
     1899
     1900        self._userName.set_text(config.simBriefUserName)
     1901        self._userName.set_sensitive(True)
     1902
     1903        self._password.set_text(config.simBriefPassword)
     1904        self._password.set_sensitive(True)
     1905
     1906        self._rememberButton.set_active(config.rememberSimBriefPassword)
     1907        self._rememberButton.set_sensitive(True)
     1908
     1909        self._extraFuel.set_int(0)
     1910        self._extraFuel.set_sensitive(True)
     1911
     1912        self._takeoffRunway.set_text("")
     1913        self._takeoffRunway.set_sensitive(True)
     1914
     1915        self._landingRunway.set_text("")
     1916        self._landingRunway.set_sensitive(True)
     1917
     1918        simBriefData = self._wizard.gui.flight.aircraft.simBriefData
     1919        for (control, profiles) in [(self._climbProfile,
     1920                                     simBriefData.climbProfiles),
     1921                                    (self._cruiseProfile,
     1922                                     simBriefData.cruiseProfiles),
     1923                                    (self._descentProfile,
     1924                                     simBriefData.descentProfiles)]:
     1925            model = gtk.ListStore(str)
     1926            for profile in profiles:
     1927                model.append([profile])
     1928            control.set_model(model)
     1929            control.set_sensitive(True)
     1930
     1931        self._climbProfile.set_active(0)
     1932        self._cruiseProfile.set_active(0)
     1933        self._descentProfile.set_active(0)
     1934
     1935        self._updateForwardButton()
     1936
     1937    def _updateForwardButton(self):
     1938        """Update the sensitivity of the forward button."""
     1939        self._button.set_sensitive(len(self._userName.get_text())>0 and
     1940                                   len(self._password.get_text())>0)
     1941
     1942    def _backClicked(self, button):
     1943        """Called when the Back button is pressed."""
     1944        self.goBack()
     1945
     1946    def _forwardClicked(self, button):
     1947        if self._completed:
     1948            self._wizard.nextPage()
     1949        else:
     1950            config = self._wizard.gui.config
     1951
     1952            config.simBriefUserName = self._userName.get_text()
     1953
     1954            rememberPassword = self._rememberButton.get_active()
     1955            config.simBriefPassword = \
     1956              self._password.get_text() if rememberPassword else ""
     1957            config.rememberSimBriefPassword = rememberPassword
     1958
     1959            config.save()
     1960
     1961            plan = self._getPlan()
     1962            print "plan:", plan
     1963
     1964            takeoffRunway = self._takeoffRunway.get_text()
     1965            if takeoffRunway:
     1966                self._wizard.takeoffRunway = takeoffRunway
     1967
     1968            landingRunway = self._landingRunway.get_text()
     1969            if landingRunway:
     1970                self._wizard.landingRunway = landingRunway
     1971
     1972            self._userName.set_sensitive(False)
     1973            self._password.set_sensitive(False)
     1974            self._rememberButton.set_sensitive(False)
     1975            self._extraFuel.set_sensitive(False)
     1976            self._takeoffRunway.set_sensitive(False)
     1977            self._landingRunway.set_sensitive(False)
     1978
     1979            self._climbProfile.set_sensitive(False)
     1980            self._cruiseProfile.set_sensitive(False)
     1981            self._descentProfile.set_sensitive(False)
     1982
     1983            self._wizard.gui.beginBusy(xstr("simbrief_calling"))
     1984
     1985            cef.startFastTimeout()
     1986            cef.callSimBrief(plan,
     1987                             self._getCredentialsCallback,
     1988                             self._simBriefProgressCallback,
     1989                             SimBriefSetupPage.getHTMLFilePath())
     1990
     1991            startSound(const.SOUND_NOTAM)
     1992
     1993    def _getCredentialsCallback(self, count):
     1994        """Called when the SimBrief home page requests the credentials."""
     1995        with self._credentialsCondition:
     1996            self._credentialsAvailable = False
     1997
     1998            gobject.idle_add(self._getCredentials, count)
     1999
     2000            while not self._credentialsAvailable:
     2001                self._credentialsCondition.wait()
     2002
     2003            return (self._credentialsUserName, self._credentialsPassword)
     2004
     2005    def _getCredentials(self, count):
     2006        """Get the credentials.
     2007
     2008        If count is 0, the user name and password entered into the setup page
     2009        are returned. Otherwise a dialog box is displayed informing the user of
     2010        invalid credentials and requesting another set of them."""
     2011        with self._credentialsCondition:
     2012            if count==0:
     2013                self._credentialsUserName = self._userName.get_text()
     2014                self._credentialsPassword = self._password.get_text()
     2015            else:
     2016                gui = self._wizard.gui
     2017                config = gui.config
     2018
     2019                dialog = SimBriefCredentialsDialog(gui,
     2020                                                   config.simBriefUserName,
     2021                                                   config.simBriefPassword,
     2022                                                   config.rememberSimBriefPassword)
     2023                response = dialog.run()
     2024
     2025                if response==RESPONSETYPE_OK:
     2026                    self._credentialsUserName = dialog.userName
     2027                    self._userName.set_text(self._credentialsUserName)
     2028                    self._credentialsPassword = dialog.password
     2029                    self._password.set_text(self._credentialsPassword)
     2030                    rememberPassword = dialog.rememberPassword
     2031
     2032                    config.simBriefUserName = self._credentialsUserName
     2033
     2034                    config.simBriefPassword = \
     2035                        self._credentialsPassword if rememberPassword else ""
     2036                    config.rememberSimBriefPassword = rememberPassword
     2037
     2038                    config.save()
     2039                else:
     2040                    self._credentialsUserName = None
     2041                    self._credentialsPassword = None
     2042
     2043            self._credentialsAvailable = True
     2044            self._credentialsCondition.notify()
     2045
     2046    def _simBriefProgressCallback(self, progress, result, flightInfo):
     2047        """Called by the SimBrief handling thread."""
     2048        gobject.idle_add(self._simBriefProgress, progress, result, flightInfo)
     2049
     2050    def _simBriefProgress(self, progress, result, flightInfo):
     2051        """The real SimBrief progress handler."""
     2052        print "_simBriefProgress", progress, result, flightInfo
     2053        if result==cef.SIMBRIEF_RESULT_NONE:
     2054            message = SimBriefSetupPage.progress2Message.get(progress,
     2055                                                             "simbrief_progress_unknown")
     2056            self._wizard.gui.updateBusyState(xstr(message))
     2057        else:
     2058            cef.stopFastTimeout()
     2059            self._wizard.gui.endBusy()
     2060
     2061            if result==cef.SIMBRIEF_RESULT_OK:
     2062                self._wizard.departureMETARChanged(flightInfo["orig_metar"],
     2063                                                   self)
     2064                self._wizard.arrivalMETARChanged(flightInfo["dest_metar"], self)
     2065                self._wizard.nextPage()
     2066            else:
     2067                message = SimBriefSetupPage.result2Message.get(result,
     2068                                                               "simbrief_result_unknown")
     2069                dialog = gtk.MessageDialog(parent = self._wizard.gui.mainWindow,
     2070                                           type = MESSAGETYPE_ERROR,
     2071                                           message_format =
     2072                                           xstr(message) + "\n"+
     2073                                           xstr("simbrief_cancelled"))
     2074
     2075                dialog.add_button(xstr("button_ok"), RESPONSETYPE_OK)
     2076                dialog.set_title(WINDOW_TITLE_BASE)
     2077                secondary = xstr("flightsel_save_failed_sec")
     2078                dialog.format_secondary_markup(secondary)
     2079                dialog.run()
     2080                dialog.hide()
     2081
     2082                self._wizard.usingSimBrief = False
     2083                self._wizard.jumpPage(2, fromPageShift = 1)
     2084
     2085    def _getPlan(self):
     2086        """Get the flight plan data for SimBrief."""
     2087        plan = {
     2088            "airline": "MAH",
     2089            "selcal": "XXXX",
     2090            "fuelfactor": "P000",
     2091            "contpct": "0.05",
     2092            "resvrule": "45",
     2093            "taxiout": "10",
     2094            "taxiin": "10",
     2095            "civalue": "AUTO"
     2096            }
     2097
     2098        wizard = self._wizard
     2099        gui = wizard.gui
     2100
     2101        loginResult = wizard.loginResult
     2102        plan["cpt"] = loginResult.pilotName
     2103        plan["pid"] = loginResult.pilotID
     2104
     2105        bookedFlight = wizard.bookedFlight
     2106        plan["fltnum"] = wizard.bookedFlight.callsign[2:]
     2107        plan["type"] = const.icaoCodes[bookedFlight.aircraftType]
     2108        plan["orig"] = bookedFlight.departureICAO
     2109        plan["dest"] = bookedFlight.arrivalICAO
     2110        plan["reg"] = bookedFlight.tailNumber
     2111        plan["fin"] = bookedFlight.tailNumber[3:]
     2112        plan["pax"] = str(bookedFlight.numPassengers)
     2113
     2114        departureTime = bookedFlight.departureTime
     2115        plan["date"] = "%d%s%d" % (departureTime.day,
     2116                                   SimBriefSetupPage.monthNum2Name[departureTime.month-1],
     2117                                   departureTime.year%100)
     2118        plan["deph"] = str(departureTime.hour)
     2119        plan["depm"] = str(departureTime.minute)
     2120
     2121        arrivalTime = bookedFlight.arrivalTime
     2122        plan["steh"] = str(arrivalTime.hour)
     2123        plan["stem"] = str(arrivalTime.minute)
     2124
     2125        plan["manualzfw"] = str(wizard.zfw / 1000.0)
     2126        plan["cargo"] = str((wizard.bagWeight + wizard.cargoWeight + wizard.mailWeight)/1000.0)
     2127
     2128        plan["route"] = wizard.route
     2129        plan["fl"] = str(wizard.filedCruiseAltitude)
     2130        plan["altn"] = wizard.alternate
     2131
     2132        plan["addedfuel"] = str(self._extraFuel.get_int() / 1000.0)
     2133        plan["origrwy"] = self._takeoffRunway.get_text()
     2134        plan["destrwy"] = self._landingRunway.get_text()
     2135
     2136        for (key, control) in [("climb", self._climbProfile),
     2137                               ("cruise", self._cruiseProfile),
     2138                               ("descent", self._descentProfile)]:
     2139            model = control.get_model()
     2140            active = control.get_active_iter()
     2141            value = model.get_value(active, 0)
     2142            plan[key] = value
     2143
     2144        return plan
     2145
     2146    def _upperChanged(self, entry, arg = None):
     2147        """Called when the value of some entry widget has changed and the value
     2148        should be converted to uppercase."""
     2149        entry.set_text(entry.get_text().upper())
     2150
     2151#-----------------------------------------------------------------------------
     2152
     2153class SimBriefingPage(Page):
     2154    """Page to display the SimBrief HTML briefing."""
     2155    class BrowserLifeSpanHandler(object):
     2156        """The life-span handler of a browser."""
     2157        def __init__(self, simBriefingPage):
     2158            """Construct the life-span handler for the given page."""
     2159            self._simBriefingPage = simBriefingPage
     2160
     2161        def OnBeforeClose(self, browser):
     2162            """Called before closing the browser."""
     2163            self._simBriefingPage._invalidateBrowser()
     2164
     2165    def __init__(self, wizard):
     2166        """Construct the setup page."""
     2167
     2168        super(SimBriefingPage, self).__init__(wizard,
     2169                                              xstr("simbrief_result_title"), "")
     2170
     2171        self._alignment = gtk.Alignment(xalign = 0.5, yalign = 0.5,
     2172                                       xscale = 1.0, yscale = 1.0)
     2173
     2174        self._container = cef.getContainer()
     2175        self._alignment.add(self._container)
     2176
     2177        self.setMainWidget(self._alignment)
     2178
     2179        self._browser = None
     2180
     2181        self.addCancelFlightButton()
     2182
     2183        self.addPreviousButton(clicked = self._backClicked)
     2184
     2185        self._button = self.addNextButton(clicked = self._forwardClicked)
     2186        self._button.set_label(xstr("briefing_button"))
     2187        self._button.set_has_tooltip(False)
     2188        self._button.set_use_stock(False)
     2189
     2190    def activate(self):
     2191        """Activate the SimBrief flight plan page"""
     2192        if self._browser is None:
     2193            self._startBrowser()
     2194        else:
     2195            self._browser.Reload()
     2196
     2197    def grabDefault(self):
     2198        """If the page has a default button, make it the default one."""
     2199        super(SimBriefingPage, self).grabDefault()
     2200
     2201        if self._browser is None:
     2202            self._startBrowser()
     2203
     2204    def _backClicked(self, button):
     2205        """Called when the Back button has been pressed."""
     2206        self.goBack()
     2207
     2208    def _forwardClicked(self, button):
     2209        """Called when the Forward button has been pressed."""
     2210        if not self._completed:
     2211            self._button.set_label(xstr("button_next"))
     2212            self._button.set_tooltip_text(xstr("button_next_tooltip"))
     2213            self._wizard.usingSimBrief = True
     2214            self.complete()
     2215
     2216        self._wizard.nextPage()
     2217
     2218    def _startBrowser(self):
     2219        """Start the browser.
     2220
     2221        If a container is needed, create one."""
     2222        if self._container is None:
     2223            self._container = cef.getContainer()
     2224            self._alignment.add(self._container)
     2225
     2226        url = "file://" + SimBriefSetupPage.getHTMLFilePath()
     2227        self._browser = cef.startInContainer(self._container, url)
     2228
     2229        lifeSpanHandler = SimBriefingPage.BrowserLifeSpanHandler(self)
     2230        self._browser.SetClientHandler(lifeSpanHandler)
     2231
     2232    def _invalidateBrowser(self):
     2233        """Invalidate the browser (and associated stuff)."""
     2234        self._alignment.remove(self._container)
     2235        self._container = None
     2236        self._browser = None
     2237
     2238#-----------------------------------------------------------------------------
     2239
    14272240class FuelTank(gtk.VBox):
    14282241    """Widget for the fuel tank."""
     
    16602473            self._wizard.gui.beginBusy(xstr("fuel_pump_busy"))
    16612474            self._pump()
     2475        elif self._wizard.usingSimBrief:
     2476            self._wizard.jumpPage(3)
    16622477        else:
    16632478            self._wizard.nextPage()
     
    17052520        if fuelTank is None:
    17062521            self._wizard.gui.endBusy()
    1707             self._wizard.nextPage()
     2522            if self._wizard.usingSimBrief:
     2523                self._wizard.gui.startMonitoring()
     2524                self._wizard.jumpPage(3)
     2525            else:
     2526                bookedFlight = self._wizard._bookedFlight
     2527                self._wizard.gui.beginBusy(xstr("route_down_notams"))
     2528                self._wizard.gui.webHandler.getNOTAMs(self._notamsCallback,
     2529                                                      bookedFlight.departureICAO,
     2530                                                      bookedFlight.arrivalICAO)
     2531                startSound(const.SOUND_NOTAM)
    17082532        else:
    17092533            currentLevel = fuelTank.currentWeight / fuelTank.capacity
     
    17192543                                                      currentLevel)])
    17202544            gobject.timeout_add(50, self._pump)
    1721 
    1722 #-----------------------------------------------------------------------------
    1723 
    1724 class RoutePage(Page):
    1725     """The page containing the route and the flight level."""
    1726     def __init__(self, wizard):
    1727         """Construct the page."""
    1728         super(RoutePage, self).__init__(wizard, xstr("route_title"),
    1729                                         xstr("route_help"),
    1730                                         completedHelp = xstr("route_chelp"))
    1731 
    1732         alignment = gtk.Alignment(xalign = 0.5, yalign = 0.5,
    1733                                   xscale = 0.0, yscale = 0.0)
    1734 
    1735         mainBox = gtk.VBox()
    1736         alignment.add(mainBox)
    1737         self.setMainWidget(alignment)
    1738 
    1739         levelBox = gtk.HBox()
    1740 
    1741         label = gtk.Label(xstr("route_level"))
    1742         label.set_use_underline(True)
    1743         levelBox.pack_start(label, True, True, 0)
    1744 
    1745         self._cruiseLevel = gtk.SpinButton()
    1746         self._cruiseLevel.set_increments(step = 10, page = 100)
    1747         self._cruiseLevel.set_range(min = 0, max = 500)
    1748         self._cruiseLevel.set_tooltip_text(xstr("route_level_tooltip"))
    1749         self._cruiseLevel.set_numeric(True)
    1750         self._cruiseLevel.connect("changed", self._cruiseLevelChanged)
    1751         self._cruiseLevel.connect("value-changed", self._cruiseLevelChanged)
    1752         label.set_mnemonic_widget(self._cruiseLevel)
    1753 
    1754         levelBox.pack_start(self._cruiseLevel, False, False, 8)
    1755 
    1756         alignment = gtk.Alignment(xalign = 0.0, yalign = 0.5,
    1757                                   xscale = 0.0, yscale = 0.0)
    1758         alignment.add(levelBox)
    1759 
    1760         mainBox.pack_start(alignment, False, False, 0)
    1761 
    1762 
    1763         routeBox = gtk.VBox()
    1764 
    1765         alignment = gtk.Alignment(xalign = 0.0, yalign = 0.5,
    1766                                   xscale = 0.0, yscale = 0.0)
    1767         label = gtk.Label(xstr("route_route"))
    1768         label.set_use_underline(True)
    1769         alignment.add(label)
    1770         routeBox.pack_start(alignment, True, True, 0)
    1771 
    1772         routeWindow = gtk.ScrolledWindow()
    1773         routeWindow.set_size_request(400, 80)
    1774         routeWindow.set_shadow_type(gtk.ShadowType.IN if pygobject
    1775                                     else gtk.SHADOW_IN)
    1776         routeWindow.set_policy(gtk.PolicyType.AUTOMATIC if pygobject
    1777                                else gtk.POLICY_AUTOMATIC,
    1778                                gtk.PolicyType.AUTOMATIC if pygobject
    1779                                else gtk.POLICY_AUTOMATIC)
    1780 
    1781         self._uppercasingRoute = False
    1782 
    1783         self._route = gtk.TextView()
    1784         self._route.set_tooltip_text(xstr("route_route_tooltip"))
    1785         self._route.set_wrap_mode(WRAP_WORD)
    1786         self._route.get_buffer().connect("changed", self._routeChanged)
    1787         self._route.get_buffer().connect_after("insert-text", self._routeInserted)
    1788         routeWindow.add(self._route)
    1789 
    1790         label.set_mnemonic_widget(self._route)
    1791         routeBox.pack_start(routeWindow, True, True, 0)
    1792 
    1793         mainBox.pack_start(routeBox, True, True, 8)
    1794 
    1795         self.addCancelFlightButton()
    1796 
    1797         self._backButton = self.addPreviousButton(clicked = self._backClicked)
    1798         self._button = self.addNextButton(clicked = self._forwardClicked)
    1799 
    1800     @property
    1801     def filedCruiseLevel(self):
    1802         """Get the filed cruise level."""
    1803         return self._cruiseLevel.get_value_as_int()
    1804 
    1805     @property
    1806     def route(self):
    1807         """Get the route."""
    1808         return self._getRoute()
    1809 
    1810     def activate(self):
    1811         """Setup the route from the booked flight."""
    1812         self._cruiseLevel.set_value(0)
    1813         self._cruiseLevel.set_text("")
    1814         self._route.get_buffer().set_text(self._wizard._bookedFlight.route)
    1815         self._updateForwardButton()
    1816 
    1817     def _getRoute(self):
    1818         """Get the text of the route."""
    1819         buffer = self._route.get_buffer()
    1820         return buffer.get_text(buffer.get_start_iter(),
    1821                                buffer.get_end_iter(), True)
    1822 
    1823     def _updateForwardButton(self):
    1824         """Update the sensitivity of the forward button."""
    1825         cruiseLevelText = self._cruiseLevel.get_text()
    1826         cruiseLevel = int(cruiseLevelText) if cruiseLevelText else 0
    1827         self._button.set_sensitive(cruiseLevel>=50 and self._getRoute()!="")
    1828 
    1829     def _cruiseLevelChanged(self, *arg):
    1830         """Called when the cruise level has changed."""
    1831         self._updateForwardButton()
    1832 
    1833     def _routeChanged(self, textBuffer):
    1834         """Called when the route has changed."""
    1835         if not self._uppercasingRoute:
    1836             self._updateForwardButton()
    1837 
    1838     def _routeInserted(self, textBuffer, iter, text, length):
    1839         """Called when new characters are inserted into the route.
    1840 
    1841         It uppercases all characters."""
    1842         if not self._uppercasingRoute:
    1843             self._uppercasingRoute = True
    1844 
    1845             iter1 = iter.copy()
    1846             iter1.backward_chars(length)
    1847             textBuffer.delete(iter, iter1)
    1848 
    1849             textBuffer.insert(iter, text.upper())
    1850 
    1851             self._uppercasingRoute = False
    1852 
    1853     def _backClicked(self, button):
    1854         """Called when the Back button is pressed."""
    1855         self.goBack()
    1856 
    1857     def _forwardClicked(self, button):
    1858         """Called when the Forward button is clicked."""
    1859         if self._completed:
    1860             self._wizard.nextPage()
    1861         else:
    1862             bookedFlight = self._wizard._bookedFlight
    1863             self._wizard.gui.beginBusy(xstr("route_down_notams"))
    1864             self._wizard.gui.webHandler.getNOTAMs(self._notamsCallback,
    1865                                                   bookedFlight.departureICAO,
    1866                                                   bookedFlight.arrivalICAO)
    1867             startSound(const.SOUND_NOTAM)
    18682545
    18692546    def _notamsCallback(self, returned, result):
     
    23383015        self._updatingMETAR = False
    23393016
    2340         self._runway.set_text("")
     3017        if self._wizard.takeoffRunway is None:
     3018            self._runway.set_text("")
     3019        else:
     3020            self._runway.set_text(self._wizard.takeoffRunway)
    23413021        self._runway.set_sensitive(True)
    23423022        self._sid.set_active(0)
     
    27253405        label.set_use_underline(True)
    27263406        label.set_alignment(0.0, 0.5)
    2727         table.attach(label, 0, 1, row, row+1)
     3407        table.attach(label, 1, 2, row, row+1)
    27283408
    27293409        self._metar = gtk.Entry()
     
    27323412        self._metar.connect("changed", self._metarChanged)
    27333413        self._metar.get_buffer().connect_after("inserted-text", self._metarInserted)
    2734         table.attach(self._metar, 1, 24, row, row+1)
     3414        table.attach(self._metar, 2, 24, row, row+1)
    27353415        label.set_mnemonic_widget(self._metar)
    27363416
     
    28973577        self._transition.set_sensitive(True)
    28983578
    2899         self._runway.set_text("")
     3579        if self._wizard.landingRunway is None:
     3580            self._runway.set_text("")
     3581        else:
     3582            self._runway.set_text(self._wizard.landingRunway)
    29003583        self._runway.set_sensitive(True)
    29013584
     
    35784261        self._payloadIndex = len(self._pages)
    35794262        self._pages.append(TimePage(self))
    3580         self._pages.append(FuelPage(self))
    35814263        self._routePage = RoutePage(self)
    35824264        self._pages.append(self._routePage)
     4265        self._simBriefSetupPage = SimBriefSetupPage(self)
     4266        self._pages.append(self._simBriefSetupPage)
     4267        self._simBriefingPage = SimBriefingPage(self)
     4268        self._pages.append(self._simBriefingPage)
     4269        self._pages.append(FuelPage(self))
    35834270        self._departureBriefingPage = BriefingPage(self, True)
    35844271        self._pages.append(self._departureBriefingPage)
     
    36534340        return self._loginResult
    36544341
    3655     def setCurrentPage(self, index, finalize = False):
    3656         """Set the current page to the one with the given index."""
     4342    def setCurrentPage(self, index, finalize = False, fromPageShift = None):
     4343        """Set the current page to the one with the given index.
     4344
     4345        @param fromPageShift if given, the relative index of one of the
     4346        previous pages that should be used as the from-page of the next
     4347        page. E.g. if fromPageShift is 1, the previous page will be the
     4348        from-page."""
    36574349        assert index < len(self._pages)
    36584350
     
    36634355                page.complete()
    36644356            self.remove(page)
     4357            if fromPageShift is not None:
     4358                fromPage -= fromPageShift
    36654359
    36664360        self._currentPage = index
     
    37414435
    37424436    @property
     4437    def alternate(self):
     4438        """Get the ICAO code of the alternate airport."""
     4439        return self._routePage.alternate
     4440
     4441    @property
    37434442    def departureMETAR(self):
    37444443        """Get the METAR of the departure airport."""
     
    38404539        return self._finishPage.online
    38414540
     4541    @property
     4542    def usingSimBrief(self):
     4543        """Indicate if we are using a SimBrief briefing or not."""
     4544        return self._usingSimBrief
     4545
     4546    @usingSimBrief.setter
     4547    def usingSimBrief(self, x):
     4548        """Set whether we are using a SimBrief briefing or not."""
     4549        self._usingSimBrief = x
     4550
    38424551    def nextPage(self, finalize = True):
    38434552        """Go to the next page."""
    38444553        self.jumpPage(1, finalize)
    38454554
    3846     def jumpPage(self, count, finalize = True):
     4555    def jumpPage(self, count, finalize = True, fromPageShift = None):
    38474556        """Go to the page which is 'count' pages after the current one."""
    3848         self.setCurrentPage(self._currentPage + count, finalize = finalize)
     4557        self.setCurrentPage(self._currentPage + count,
     4558                            finalize = finalize, fromPageShift = fromPageShift)
    38494559
    38504560    def grabDefault(self):
     
    38954605        self._arrivalNOTAMs = None
    38964606        self._arrivalMETAR = None
     4607        self._usingSimBrief = None
     4608        self.takeoffRunway = None
     4609        self.landingRunway = None
    38974610
    38984611        firstPage = 0 if self._loginResult is None else 1
     
    39384651        metar = metar.upper()
    39394652        if originator in [self._departureBriefingPage, self._takeoffPage]:
    3940             self._departureMETARChanged(metar, originator)
     4653            self.departureMETARChanged(metar, originator)
    39414654        else:
    3942             self._arrivalMETARChanged(metar, originator)
    3943 
    3944     def _departureMETARChanged(self, metar, originator):
     4655            self.arrivalMETARChanged(metar, originator)
     4656
     4657    def departureMETARChanged(self, metar, originator):
    39454658        """Called when the departure METAR has been edited on one of the
    39464659        pages.
     
    39524665                page.changeMETAR(metar)
    39534666
    3954     def _arrivalMETARChanged(self, metar, originator):
     4667    def arrivalMETARChanged(self, metar, originator):
    39554668        """Called when the arrival METAR has been edited on one of the
    39564669        pages.
  • src/mlx/gui/gui.py

    r620 r687  
    1515from mlx.gui.pirep import PIREPViewer
    1616from mlx.gui.bugreport import BugReportDialog
     17from mlx.gui.acars import ACARS
     18import cef
    1719
    1820import mlx.const as const
     
    102104        window.connect("delete-event", self.deleteMainWindow)
    103105        window.connect("window-state-event", self._handleMainWindowState)
     106        if os.name=="nt":
     107            window.connect("leave-notify-event", self._handleLeaveNotify)
    104108        accelGroup = gtk.AccelGroup()
    105109        window.add_accel_group(accelGroup)
     110        window.realize()
    106111
    107112        mainVBox = gtk.VBox()
     
    151156        self._notebook.append_page(self._fleetGateStatus, label)
    152157
     158        self._acars = ACARS(self)
     159        label = gtk.Label("ACARS")
     160        label.set_use_underline(True)
     161        self._notebook.append_page(self._acars, label)
     162
    153163        (self._debugLogWidget, self._debugLogView) = self._buildLogWidget()
    154164        self._debugLogWidget.show_all()
     
    170180
    171181        window.show_all()
     182        if os.name=="nt":
     183            window.get_window().focus()
    172184
    173185        self._wizard.grabDefault()
     
    427439            self._updater = Updater(self,
    428440                                    self._programDirectory,
    429                                     self.config.updateURL,
     441                                    self.config.DEFAULT_UPDATE_URL,
    430442                                    self._mainWindow)
    431443            self._updater.start()
     444
     445        cef.initialize(self._programDirectory, self._cefInitialized)
    432446
    433447        singleton.raiseCallback = self.raiseCallback
    434448        gtk.main()
    435449        singleton.raiseCallback = None
     450
     451        cef.finalize()
    436452
    437453        self._disconnect()
     
    688704            self._mainWindow.present()
    689705
     706    def _handleLeaveNotify(self, widget, event):
     707        """Handle the leave-notify event.
     708
     709        Here we reset the focus to the main window as CEF might have acquired
     710        it earlier."""
     711        self._mainWindow.get_window().focus()
     712
    690713    def raiseCallback(self):
    691714        """Callback for the singleton handling code."""
     
    788811        self._weightHelp.set_sensitive(False)
    789812        self._mainWindow.get_window().set_cursor(self._busyCursor)
     813        self._statusbar.updateBusyState(message)
     814
     815    def updateBusyState(self, message):
     816        """Update the busy state."""
    790817        self._statusbar.updateBusyState(message)
    791818
     
    14641491                                      summary, description, email)
    14651492
     1493    def _cefInitialized(self):
     1494        """Called when CEF has been initialized."""
     1495        self._acars.start()
     1496        cef.initializeSimBrief()
     1497
    14661498    def _bugReportSentCallback(self, returned, result):
    14671499        """Callback function for the bug report sending result."""
  • src/mlx/gui/prefs.py

    r392 r684  
    243243        self._setSmoothing(self._vsSmoothingEnabled, self._vsSmoothingLength,
    244244                           config.vsSmoothingLength)
     245
     246        self._useSimBrief.set_active(config.useSimBrief)
    245247
    246248        pirepDirectory = config.pirepDirectory
     
    291293        config.vsSmoothingLength = self._getSmoothing(self._vsSmoothingEnabled,
    292294                                                       self._vsSmoothingLength)
     295        config.useSimBrief = self._useSimBrief.get_active()
    293296        config.pirepDirectory = text2unicode(self._pirepDirectory.get_text())
    294297        config.pirepAutoSave = self._pirepAutoSave.get_active()
     
    406409                                    xstr("prefs_vsSmoothingEnabledTooltip"))
    407410        simulatorBox.pack_start(vsSmoothingBox, False, False, 4)
     411
     412        self._useSimBrief = gtk.CheckButton(xstr("prefs_useSimBrief"))
     413        self._useSimBrief.set_use_underline(True)
     414        self._useSimBrief.set_tooltip_text(xstr("prefs_useSimBrief_tooltip"))
     415        mainBox.pack_start(self._useSimBrief, False, False, 0)
    408416
    409417        pirepBox = gtk.HBox()
  • src/mlx/update.py

    r672 r681  
    525525        return
    526526
    527     print "update: result:", result
    528 
    529527    (manifest, updateManifest, modifiedAndNew, removed) = result       
    530528    localRemoved = getToremoveFiles(directory)
Note: See TracChangeset for help on using the changeset viewer.