## Announcing FFGo: a new FlightGear launcher

FlightGear is opensource, so you can be the developer. In the need for help on anything? We are here to help you.
Forum rules
Core development is discussed on the official FlightGear-Devel development mailing list.

Bugs can be reported in the bug tracker.

### Re: Announcing FFGo: a new FlightGear launcher

I am pleased to announce the release of FFGo 1.4.0. The main changes are a bug fix for Windows paths separators (unreported to me) and a solution to the problem of identically-named aircrafts already discussed here. It is now possible, thanks to tooltips in the aircraft list and to the use of fgfs' --aircraft-dir option, to choose exactly the one you want FlightGear to load, as shown in the following screenshots:
(look at the tooltip and the --aircraft-dir option in the FlightGear Command window) and

Here follows a more detailed list of the changes in this version:
• Don't hardcode ':' as path list separator for FG_AIRCRAFT and FG_SCENERY. Use os.pathsep instead, which should work better on Windows a least (normally uses ';' since ':' appears in things suchs as 'C:\path\to\foobar'). Having received no single report from users using FFGo to run FlightGear under a non-Linux OS, the only way I can find such portability issues is via code analysis.
• Support use of the FG_AIRCRAFT environment variable. Mix its contents with that of the 'Additional aircraft path(s)' setting from the Preferences dialog, which is mapped to --fg-aircraft. This better reflects what FlightGear does. Detect, log and display in Help -> About the FlightGear version that FFGo is going to run based on the FG_bin setting from the Preferences dialog. Nicer display of the Python version too.
• Hide tooltips when the mouse pointer is moved.
• Tooltip refactoring. New ListBoxToolTip allowing to have a tooltip that depends on the ListBox item under the mouse pointer, using a function of the item index.
• Distinguish between identically-named aircrafts; aircraft tooltips. FFGo stops using only the aircraft name to identify an aircraft. From now on, it uses the aircraft name in combination with the directory containing its -set.xml file. This directory is stored in a new config file parameter (AIRCRAFT_DIR) to allow reliably using the same aircraft between sessions even if there are other aircrafts with the same name in the aircraft paths. The aircraft list now has tooltips showing the aircraft directory, i.e. the directory containing the -set.xml file for the aircraft under the mouse pointer.

Pass the --aircraft-dir option to fgfs (FlightGear) according to the selected aircraft. If the FlightGear version is lower than 3.8, use os.path.realpath() on its value (workaround for the FlightGear bug fixed in commit 7198dec355144fbb0eaccb39f0c241dd07ebaee0, dated October 6, 2015).
• New 'aircraftDir' external variable that can be used in the configuration processed by CondConfigParser. This variable contains the selected aircraft's directory.
• Slightly more efficient aircraft search.
• Make sure there is always a selected item in the aircraft list except when it is empty, in particular after doing a search (an aircraft could previously be selected for FFGo but not highlighted in the aircraft list).
As usual, Debian packages are available, as indicated on FFGo's home page.
rominet

Posts: 557
Joined: Sat Nov 01, 2014 1:33 pm
Callsign: F-KATS
Version: Git next
OS: Debian GNU/Linux

### Re: Announcing FFGo: a new FlightGear launcher

Hello,

I have released FFGo 1.5.0. The main changes in this version are:
• Add support for context-sensitive translations.
• Clean up handling of airport, parking, runway and carrier settings.
• Cleaner handling of runway and parking changes. Most notably, replace old code checking for runway and parking changes every 250 ms by event handlers (observers in Tkinter-speak). This increases the interface responsiveness and reduces FFGo's CPU usage.
• Simplify and accelerate the airport list build process. Rewrite the airport and aircraft search code using Tkinter observers to make the interface more reactive and reduce CPU usage at the same time.
• When clicking on the Clear button for the aircraft or airport search, set focus to the corresponding entry widget to allow immediate typing of the search text.
• New function, under the Tools menu, to copy a POSIX shell command equivalent to the current FG command to the clipboard. Due to limitations in Tk/Tkinter as it seems, this new function can only copy FG commands that can be encoded to ISO 8859-1 (which should be sufficient in most cases). An error dialog is displayed if this is not possible. On X11, the Tkinter clipboard functions used here seem to use the PRIMARY selection.
• Use a lighter background color for the FlightGear Command Window.
• Overhaul of the tooltip infrastructure. New tooltip class: MenuToolTip.
• Tooltips could be displayed outside their master widget due to the fact that (at least with Tk 8.6 and Python 3.4.3) Tkinter sometimes sends Motion events even though the mouse pointer is largely out of the master widget. Work around this problem.
• Add airport parking tooltips in the parking popup. The newly-added tooltips contain most of the metadata available for parking positions (i.e., everything pilots are likely to be concerned about, but not FlightGear implementation details such as the parking 'index' or its 'pushBackRoute'). The parking name/number and its associated flight type are not repeated in the tooltip since they are already displayed in the parking popup.
• Remove polling for:
• comments highlighting in the Option Window;
• the code that updates various elements when a different aircraft is selected in the aircraft list;
• the code that updates various elements when a different airport is selected in the airport list.
Again, replace this mechanism by Tkinter observers that are called immediately after the relevant change without causing unjustified overhead. Together with the previous optimizations, this causes the FFGo CPU load when idle to drop from about 2-3 % in version 1.4.0 to 0.0 % in this version on my computer.

Note: in previous versions, the FFGo CPU load was already very low while FlightGear was running because certain functions were disabled in this case to save CPU time for FlightGear.
• Thanks to the previously-mentioned changes, changing the aircraft or airport in FFGo, or comment out/decommenting text in the Options Window while FlightGear is running should work perfectly now, without leaving related fields unchanged (such as the aircraft thumbnail when selecting a different aircraft). All this should now work exactly the same as when FlightGear is not running.
Here is a screenshot showing the new parking tooltips:

Happy flying!
rominet

Posts: 557
Joined: Sat Nov 01, 2014 1:33 pm
Callsign: F-KATS
Version: Git next
OS: Debian GNU/Linux

### Re: Announcing FFGo: a new FlightGear launcher

Hi there!

First, thanks for upgrading FGo! !

It took me a while to install it though. I'm running a Debian Jessie here and accidently installed python 2 packages. Then as I realized it I removed them and installed python 3.4. Now I have installed python3-pil, but also python3-pil.imagetk was also needed! Maybe you should mention that on the homepage!?

Otherwise I like it a lot!

Cheers
chris
Don't hesitate to let me know if I'm incorrect or just annoying! As long as you do it gently! :)
Debian testing 64bit - Athlon II 2x2.6GHz - 8GB RAM - GeForce GTS 450
Citation II

chris_blues

Posts: 1570
Joined: Mon May 03, 2010 1:30 pm
Location: claws of real life
Callsign: chris_blues
Version: GIT
OS: Debian 8 64

### Re: Announcing FFGo: a new FlightGear launcher

Hi Chris,

Thanks for your nice comment! Concerning the installation difficulties you mentioned:
• Normally, FFGo should work fine without python3-pil.imagetk, albeit without aircraft thumbnails. Was it the case, or did you encounter a real error?
• The home page has instructions for installing Debian packages (for stable and unstable). These packages recommend python3-pil.imagetk, as per Debian policy. Did you miss that, or did you just want not to use these packages?
• I am reluctant to add more distribution-specific info to the Requirements section, which should give a concise overview of the dependencies. Distribution-specific package names, for what I know (i.e., Debian), are indicated in the docs/INSTALL/INSTALL_en file (among more general, very detailed instructions). Did you read that file?
The next version will be able to fall back to reading parking positions/startup locations from apt.dat.gz when there is no groundnet file for the selected airport (request from pommeschranke). This will considerably increase the number of airports with parking positions/startup locations. There are also improvements to the METAR widget (reliability wrt threads programming and automatic update of the data when the "Decoded" checkbox is toggled). + support of the v1000 format of apt.dat (new parser, currently only used for the new parking positions/startup locations from apt.dat.gz, will replace the old parser a bit later).

Regards
rominet

Posts: 557
Joined: Sat Nov 01, 2014 1:33 pm
Callsign: F-KATS
Version: Git next
OS: Debian GNU/Linux

### Re: Announcing FFGo: a new FlightGear launcher

1)
Yes FFGo ran fine, but no thumbnails. But it's just not the same without em.

2)
Yes I saw them, but I wanted to install the python packages anway, just to see if I can manage.

3)
Well, I read the INSTALL.txt in the root folder, and the install instructions on the homepage. It took me a while of searching the package system, of getting behind the missing package. Then I remembered that imagetk was needed for Fgo as well, so I tried it.
I do understand your concerns about the naming policies of the different distributions. It's quite a PITA to stay on top of things. But I guess it's unavoidable. I'm sure, in time, there will be other come forth, who ask you the same question, and so in time you'll know, how the package is named in each case... But that's just my humble opinion...

So, I'm looking forward to get to know FFGo. If there's anything you need translated into german, let me know (done it before )
Don't hesitate to let me know if I'm incorrect or just annoying! As long as you do it gently! :)
Debian testing 64bit - Athlon II 2x2.6GHz - 8GB RAM - GeForce GTS 450
Citation II

chris_blues

Posts: 1570
Joined: Mon May 03, 2010 1:30 pm
Location: claws of real life
Callsign: chris_blues
Version: GIT
OS: Debian 8 64

### Re: Announcing FFGo: a new FlightGear launcher

1. Right, but that is how it is supposed to work, and there isn't really any reasonable way around it IMHO. If people want images, they have to install the package able to read them...
2. If you are not familiar with Python packaging and have installed without reading docs/INSTALL/INSTALL_en, I don't doubt that must have been challenging... I still encourage you to read it because you may have missed interesting ways to do it. And it also explains how to install from the Git repo.
3. If you really have an INSTALL.txt file in the root folder, then I'm afraid you must have a fake version. Rather, I assume you meant the top-level README.rst, from which the home page is mechanically derived. This file is essentially the same as the home page, and does not contain real installation instructions besides a pointer to the docs/INSTALL folder.

I'll include a short reference to python3-pil.imagetk in the Requirements section of README.rst if that can help. As for distribution-specific package names, I would be happy to include them in specific sections of docs/INSTALL/INSTALL_en. I just need people to tell me these names for non-Debian systems, or even better: send patches or pull requests for this file.
4. There is plenty of work to do for the German translation, as for the other ones (except for French where I normally keep the interface translation up-to-date). I would be happy to include an update. The process is almost the same as for FGo! and all explained in docs/INFORMATION_FOR_TRANSLATORS. If you have any question, don't hesitate to ask.
rominet

Posts: 557
Joined: Sat Nov 01, 2014 1:33 pm
Callsign: F-KATS
Version: Git next
OS: Debian GNU/Linux

### Re: Announcing FFGo: a new FlightGear launcher

2. will do!
3. Sorry, I just looked again into the folders and there isn't one in FFGo's root folder. I seem to have been using the INSTALL.txt inside CondConfigParser's root folder. Anyway, the instructions for a git install were sufficient to me, just took me a little to get it all straightened out.
4. I'll look into it right away! I'll send you the modifiedFFGo.po.

Cheers
chris
Don't hesitate to let me know if I'm incorrect or just annoying! As long as you do it gently! :)
Debian testing 64bit - Athlon II 2x2.6GHz - 8GB RAM - GeForce GTS 450
Citation II

chris_blues

Posts: 1570
Joined: Mon May 03, 2010 1:30 pm
Location: claws of real life
Callsign: chris_blues
Version: GIT
OS: Debian 8 64

### Re: Announcing FFGo: a new FlightGear launcher

Great, thank you! I have pushed the latest state of the parking work (reading from apt.dat.gz if no parking was found in the groundnet file). This will add a few translations. If you have modified FFGo.po inside your repo, copy it out of the repo to avoid losing your work. Then you can do:
Code: Select all
git reset --hard

to put back your repo into the state of the latest commit you downloaded. Then, update with:
Code: Select all
git pull

Then, copy your saved FFGo.po into ffgo/data/locale/de/LC_MESSAGES/FFGo.po inside the repo and run:
Code: Select all
make

from the top-level directory to update this FFGo.po with the new templates from ffgo/data/locale/FFGo.pot. Then you can use poedit/Emacs/etc. to update your translation as usual.

The specific incantation to update all .po files with the new templates from FFGo.pot is:
Code: Select all
make update-po

but 'make' as given above should do it automatically unless bad Gremlins such as timestamps get in the way. This command should not remove any existing translation, it should be safe.

EDIT: if that sounds too complicated, just send me your FFGo.po based on the “old” templates. I can then incorporate the new templates from the latest FFGo.pot into it and send this to you (or commit). Then you'll only have to add/change the very recent new translations.

Concerning the parking positions read from apt.dat.gz as a fallback, don't be impatient after clicking on the parking button, the popup will appear. It is just a bit slow the first time for a given airport, especially when the ICAO is far in the alphabet, but the last 50 results are cached in memory to mitigate the inconvenience. Future commits will add visual feedback.

You can test it on airports such as LFBD or KHPY which have no groundnet in FlightGear.

Regards
rominet

Posts: 557
Joined: Sat Nov 01, 2014 1:33 pm
Callsign: F-KATS
Version: Git next
OS: Debian GNU/Linux

### Re: Announcing FFGo: a new FlightGear launcher

Ok, I'm done so far, though there weren't any additional lines in the .po... But git pull did show some changes in .pot and .po files...

make threw an error:
Code: Select all
ffgo$makemake -C share/iconsmake[1]: Entering directory '/media/FG/ffgo/share/icons'mkdir -p '16x16' && rsvg-convert --width='16' --keep-aspect-ratio --format=png --output='16x16/ffgo.png' 'scalable/ffgo.svg'/bin/sh: 1: rsvg-convert: not foundMakefile:23: recipe for target '16x16/ffgo.png' failedmake[1]: *** [16x16/ffgo.png] Error 127make[1]: Leaving directory '/media/FG/ffgo/share/icons'Makefile:12: recipe for target 'icons' failedmake: *** [icons] Error 2<==================>ffgo$ make update-pomake -C ffgo/data/locale update-pomake[1]: Entering directory '/media/FG/ffgo/ffgo/data/locale'make[1]: Nothing to be done for 'update-po'.make[1]: Leaving directory '/media/FG/ffgo/ffgo/data/locale'

Edit:
It turned out libsrvg-bin was missing. libsrvg2-2 was already installed but obviously not enough...

Now make ran through fine, but still no new lines in [locale].po.

Edit2:

Finally got it right! Needed to issue a "make update-pot" and then "make update-po". Going back to translation! You'll hear from me!
Don't hesitate to let me know if I'm incorrect or just annoying! As long as you do it gently! :)
Debian testing 64bit - Athlon II 2x2.6GHz - 8GB RAM - GeForce GTS 450
Citation II

chris_blues

Posts: 1570
Joined: Mon May 03, 2010 1:30 pm
Location: claws of real life
Callsign: chris_blues
Version: GIT
OS: Debian 8 64

### Re: Announcing FFGo: a new FlightGear launcher

Nearly finished!

Onyl thing I don't understand is Tie-down [flight-type]. What is this???
Don't hesitate to let me know if I'm incorrect or just annoying! As long as you do it gently! :)
Debian testing 64bit - Athlon II 2x2.6GHz - 8GB RAM - GeForce GTS 450
Citation II

chris_blues

Posts: 1570
Joined: Mon May 03, 2010 1:30 pm
Location: claws of real life
Callsign: chris_blues
Version: GIT
OS: Debian 8 64

### Re: Announcing FFGo: a new FlightGear launcher

Thanks, I'll incorporate your translation soon!

Tie-down [flight-type] : this is X-Plane terminology used for parking positions in apt.dat (cf. http://data.x-plane.com/file_specs/XP%20APT1000%20Spec.pdf). The more or less equivalent FG metadata is called flightType in the FG source IIRC (it is the 'type' attribute in groundnet files), so I mapped X-Plane's thing to "flight type", although it is not an exact match. Better than nothing. As for what "Tie-down" means... I have used Google, and it seems to be a place where you can attach a small plane (c172 or similar) with a rope, like a boat. I think I'll translate this into « point d'attache » in French, unless some more knowledgeable person tells me otherwise.

Your FFGo.pot will conflict with the one from the repo when you want to update, but I assume that was necessary because of timestamps. When I have incorporated your .po file, you'll have to 'git reset --hard' again because of your updated local files (alternatively, you can reset them one by one with 'git checkout the_file').

Thank you!
rominet

Posts: 557
Joined: Sat Nov 01, 2014 1:33 pm
Callsign: F-KATS
Version: Git next
OS: Debian GNU/Linux

### Re: Announcing FFGo: a new FlightGear launcher

Ok, you'll get another updated copy of the .po file soon!
Don't hesitate to let me know if I'm incorrect or just annoying! As long as you do it gently! :)
Debian testing 64bit - Athlon II 2x2.6GHz - 8GB RAM - GeForce GTS 450
Citation II

chris_blues

Posts: 1570
Joined: Mon May 03, 2010 1:30 pm
Location: claws of real life
Callsign: chris_blues
Version: GIT
OS: Debian 8 64

### Re: Announcing FFGo: a new FlightGear launcher

Good! The first file you sent looks fine, so go ahead.

To fool the timestamp thing when your .po file is more recent than FFGo.pot, and force update of FFGo.po from FFGo.pot without modifying the latter (which is part of the Git repo), you can do:
Code: Select all
touch -t 10240100 -m ffgo/data/locale/de/LC_MESSAGES/FFGo.pomake update-po

The format for the timestamp (after 'touch -t') is [[CC]YY]MMDDhhmm[.ss]
Just use some date earlier than the mtime of the .pot file and you should be fine.

The "tie-down" translation should appear in the parking popup for the KHPY airport.
rominet

Posts: 557
Joined: Sat Nov 01, 2014 1:33 pm
Callsign: F-KATS
Version: Git next
OS: Debian GNU/Linux

### Re: Announcing FFGo: a new FlightGear launcher

There is now an up-to-date German translation of FFGo, with help file, in the Git repository. Thanks, Chris!
rominet

Posts: 557
Joined: Sat Nov 01, 2014 1:33 pm
Callsign: F-KATS
Version: Git next
OS: Debian GNU/Linux

### Re: Announcing FFGo: a new FlightGear launcher

And thank you for FFGo !!!

Glad to have a chance to contribute.

Edit:
BTW, do you think you would some day merge back into FGo!, or would you rather let it stand on it's own?
Don't hesitate to let me know if I'm incorrect or just annoying! As long as you do it gently! :)
Debian testing 64bit - Athlon II 2x2.6GHz - 8GB RAM - GeForce GTS 450
Citation II

chris_blues

Posts: 1570
Joined: Mon May 03, 2010 1:30 pm
Location: claws of real life
Callsign: chris_blues
Version: GIT
OS: Debian 8 64

PreviousNext