Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
1230 lines (1133 sloc) 74 KB
-*- mode: text; coding: utf-8; fill-column: 78; -*-
Prior changes belong to the FGo! program by Robert 'erobo' Leda and are listed
in the file 'ChangeLog.FGo'. For more details about any change listed below,
you may want to consult the Git repository log.
[FEATURE] Import the code from FGo! 1.5.5 onwards (Python 2 at that time)
into a Git repository. (Florent Rougon)
[FEATURE] Port the code to Python 3. (Robert)
[FEATURE] Add the file docs/INSTALL/INSTALL_en to guide users through the
process of installing the dependencies. (Florent Rougon)
[BUGFIX] Fix typo in "help_it" file. (Philip Lacroix)
[FEATURE] Add conditional config based on CondConfigParser. This is
documented for FGo! users in docs/README.conditional-config/.
(Florent Rougon)
[BUGFIX] Fix logic behind the Reset button. (Robert)
[FEATURE] Add keyboard shortcuts for "Run FG" (Ctrl-f), "Reset" (Ctrl-r) and
"Save & Quit" (Ctrl-q). (Florent Rougon)
[FEATURE] Move the "FG is running..." message from the separate "info" window
to the main window. (Florent Rougon)
* The separate window was annoying, because when switching from a
workspace with FlightGear on top and FGo! below, to another workspace and
back to the initial workspace, the "FG is running..." little window
appeared on top of FlightGear, which prevented the user from controlling
it until he explicitely switched to FlightGear's window.
* The "FG is running..." message is now displayed in red in FGo!'s main
window (in a Label widget) instead of the separate InfoWindow. When
FlightGear is not running, this message is replaced by a "Ready"
indication in green.
* This new behaviour allows to interact with FGo! while FlightGear is
running, except for the things that rely on stuff started in
App.startLoops(). Among others, it makes it possible to modify the
configuration before the fgfs process is completely terminated. It would
be possible to keep the loops running even after FlightGear has been
started, but that would sacrifice a small amount of performance, for IMHO
very little benefit. I prefer freeing the CPU as much as possible for
* As a bonus, the new Label widget indicates the exit status of the last
FlightGear run, or the signal number in case the fgfs process was
terminated by a signal.
* While FlightGear is running, the "Run FG" button is now greyed out.
[FEATURE] Add preview of FlightGear command. (Robert & Florent Rougon)
[FEATURE] Add FlightGear output window and log saving.
(Robert & Florent Rougon)
[USABILITY] Remove everything related to running a standalone TerraSync
program in the background. As TerraSync has been integrated into
FlightGear several years ago, this feature was probably more
confusing than useful to users nowadays. (Robert & Florent Rougon)
[FEATURE] Allow the command preview and FG output windows to be detached,
reattached and hidden. Store their geometry when reattaching,
closing them or choosing "Save & Quit" to be able to restore it when
they are later shown again. (Florent Rougon)
[FEATURE] Improve initialization of locales and translations at application
startup. (Florent Rougon)
[FEATURE] Change USER_DATA_DIR to ~/.ffgo on Unix, %APPDATA%/FFGo on Windows.
(Florent Rougon)
[FEATURE] New dialogs at application startup to offer to copy FGo!'s config
file to USER_DATA_DIR when this is safe, start with "factory
defaults", or abort. (Florent Rougon)
[FEATURE] Rename the 'fgo' script to 'ffgo' in order to avoid confusing users
concerning the FGo! program distributed by Robert Leda.
(Florent Rougon)
[USABILITY] Allow closing the Preferences window with the Escape key.
(Florent Rougon)
[USABILITY] Rename the 'Reset' button to 'Reload config', which is more
self-explanatory in my opinion. Add a tooltip to this button that
indicates the config file path. (Florent Rougon)
[USABILITY] Add menu entries in the File menu to reload the config file and to
run FlightGear. These entries show the new keyboard shortcuts.
[FEATURE] Help files: update installation instructions, add description of new
features and add a tip about config file reloading.
(Robert & Florent Rougon)
[FEATURE] Add top-level README.rst and move first sections of
data/help/help_en to it. (Florent Rougon)
[FEATURE] Update data/config/config_en: slightly reorder, improve wording
(IMHO), remove reference to now-invalid URL (list of callsigns in
use), introduce new options, give hint about
'fgfs --help --verbose'. (Florent Rougon)
[FEATURE] New ffgo.svg icon and new thumbnail.jpg (with xcf source).
(Florent Rougon)
[FEATURE] Add Makefiles to automate generation of many files
(messages.pot, *.po and *.mo files, ffgo.png in all sizes from
ffgo.svg, HTML rendering of docs/README.conditional-config.source,
release tarball...). (Florent Rougon)
[FEATURE] Rename messages.{pot,po,mo} to FFGo.{pot,po,mo}. This will make it
much easier for downstream distributors to create FHS-compliant
packages with .mo files in /usr/share/locale/<locale>/LC_MESSAGES/
(which is shared by all programs on a given system, therefore using
such a generic name as 'messages' is unacceptable there).
(Florent Rougon)
[FEATURE] Improve the thumbnail situation. cf. the Git log for
6bf65f453ba28920397371d932b3b2ef491827bc for details (information
maybe relevant to packagers but not users; in short,
data/pics/thumbnail.ppm is replaced by
data/pics/thumbnail-no-Pillow.gif and data/pics/thumbnail.jpg by
data/pics/thumbnail-not-avail.png, and the two new files are both
automatically generated from their respective sources).
ImageMagick's convert program is now required by the Makefiles when
installing from the Git repository. (Florent Rougon)
[BUGFIX] Fix a bug introduced in 1.0.0b2 that would prevent FFGo from working
properly when Pillow is not installed. (Florent Rougon)
[BUGFIX] Include FFGo.pot in release tarballs. It is not needed by FFGo, but
may be useful for people wanting to add new translations.
(Florent Rougon)
[FEATURE] Add Setuptools packaging. This will make it easier (once you have
learnt how to use pip) to install, upgrade, remove, or check when
FFGo or one of its dependencies has a newer upstream version. Please
read docs/INSTALL/INSTALL_en for user-level details and the Git log
for developer-level details. This change impacts a lot of files.
The top-level 'src' directory is renamed to 'ffgo' (necessary to be
able to install FFGo with 'pip install --editable'). The 'data'
top-level directory is not top-level anymore: moved under the
top-level 'ffgo' directory. This should improve FFGo's portability
to non-Linux platforms with a minimum of platform-specific code.
(Florent Rougon)
[BUGFIX] Fix missing import for a Windows-specific code path (this prevented
FFGo from starting under Windows; I hope that is the last remaining
problem of this kind on Windows. I definitely need testers for this
platform. Please report on your experiences!). (Florent Rougon)
[USABILITY] Improve tooltips of the Preferences dialog. (Florent Rougon)
[USABILITY] Use CRLF line endings for the top-level README.rst file as well as
for docs/INSTALL/INSTALL_* because the Windows Notepad program
used not to be able to read LF line endings (ahem). Is it still
the case in 2015? These files should be enough to get users
started. (Florent Rougon)
[USABILITY] Show the FlightGear arguments and output in the default
configuration (i.e., the Command Window and the Output Window). This
will hopefully improve the first-time user experience.
(Florent Rougon)
[FEATURE] Slightly better algorithm for preparing the fgfs command line.
Mostly: order of the UI-exposed options such as airport, aircraft,
parking, etc. as well as avoid passing empty '--fg-root=' or
'--fg-scenery=' options unless they are written as is in the Command
Line Options Window. In other words: an empty field in the
Preferences dialog for FG_ROOT or FG_SCENERY will not by itself
cause an empty '--fg-root=' or '--fg-scenery=' option to be passed
to 'fgfs'. (Florent Rougon)
[USABILITY] Document the following new parameters in the 'presets' file:
parameters were already present in FFGo 1.0.0 but not in FGo! 1.5.5.
(Florent Rougon)
[“BUGFIX”] Distribute images derived from the CC0 helicopter image under the
CC0 license too. The original intent was to distribute the images
under the same license as the rest of FFGo for unity, i.e. WTFPL
version 2. I think it was, and is still legal to do under most
juridictions. However, legal matters being what they are, the safest
course of action IMHO is to publish the derived images under the
same license as the original image, i.e. CC0 1.0 Universal.
(Florent Rougon)
[BUGFIX] Improve restoring of geometry upon reset (“reload config”). Before
this change, and contrary to the Command Window and Output Window,
the dimensions of the main window were not restored when using the
“Reload config” button; they were only restored at program startup.
Of course, something can only be restored if it has been previously
saved! (Florent Rougon)
[FEATURE] New option to save the main window position. For user convenience,
as well as consistency with the Command Window and Output Window,
add a new check box in the Miscellaneous tab of the Preferences
dialog to tell FFGo to “Remember the main window position” whenever
saving to a configuration file or using “Save & Quit”. This option
is enabled by default in FFGo. This means that the whole geometry of
the main window 'widthxheight+x+y' is saved as WINDOW_GEOMETRY into
the configuration file, instead of its size only ('widthxheight').
To revert to the previous behavior, simply uncheck “Remember the
main window position” in the Preferences dialog. This option
corresponds to SAVE_WINDOW_POSITION in the configuration file.
(Florent Rougon)
[USABILITY] Mention the FG_BIN name in the tooltip for the fgfs executable
path. This is likely to be helpful to new users, because FG_BIN is
used in the hint displayed when fgfs can't be executed, but new
users might not know what this refers to. (Florent Rougon)
[USABILITY] Improve installation instructions. Most notably, make the suitable
changes now that Debian packages are available for FFGo and
CondConfigParser. (Florent Rougon)
[FEATURE] New logging system. Automatically write a log file containing the
start and end date, OS, FFGo and Python versions, and all other
usual messages (including exceptions and FlightGear messages). The
log file is ~/.ffgo/Logs/FFGo.log (%APPDATA%/FFGo/Logs/FFGo.log on
Windows). It is automatically rotated at application startup,
keeping at most ten log files (FFGo.log, FFGo_1.log,
FFGo_2.log, ..., FFGo_9.log). (Florent Rougon)
[FEATURE] Support command line options --help and --verbose. (Florent Rougon)
[FEATURE] New command line option --log-level to choose the log level for
terminal output (defaults to 'notice', which makes the terminal less
verbose than the log file by default). Run 'ffgo --help' to see the
available log levels. (Florent Rougon)
[FEATURE] Add logging calls in a few key places to help debug problems. FFGo
logs things such as XML parking/groundnet files about to be parsed
(among others) with level 'info' or above to make it easy to spot
the culprit in case there is a problem. Thus, in such a case, you
can either look into the log file or rerun FFGo in a terminal, like
this: 'ffgo --log-level=info' or 'ffgo --log-level=debug' (also
possible with, of course). (Florent Rougon)
[BUGFIX] Exceptions raised from a Tkinter callback cause an error window to
appear, not only a traceback on the terminal. (Florent Rougon)
[FEATURE] New command line option --test-mode for developers, useful for
running test code from the FFGo GUI. (Florent Rougon)
[BUGFIX] Improve parsing of XML files (parking/groundnet and scenario files).
This should work better in a few cases and make it clear there is an
error when one of these files is really invalid. (Florent Rougon)
[BUGFIX] Small fixes with respect to file operations (be explicit about the
encoding... this notably affects USER_DATA_DIR/apt, which can have a
few non-ASCII airport names such as EDRZ = Zweibrücken; properly
use writelines() in Config.makeInstalledAptList() too...).
(Florent Rougon)
[BUGFIX] Improve parsing of directory names under <scenery_dir>/Terrain for
those using the 'Show installed airports only' option. Some custom
scenery directories may have subdirs such as
'Scenery/Terrain/e020n50/e020n52.old'. Ignore them instead of
raising an exception because "52.old" is not an integer.
(Florent Rougon)
[USABILITY] Display an explanation when building airport lists. The operation
may be a bit long and freezes the interface. Display a window so
that the user knows what is happening and patiently waits.
(Florent Rougon)
[FEATURE] Update the French translation of the interface. (Florent Rougon)
[BUGFIX] Fix crash at initialization when Pillow is not installed (bug
introduced in 1.2.0). (Florent Rougon)
[FEATURE] Improve gathering and handling of parking data. All of the parking
metadata is available internally through a Parking class. Errors in
groundnet files generate warnings on the terminal and a popup window
if particularly serious. Refactoring of this part of FFGo.
(Florent Rougon)
[FEATURE] Better sorting of parking positions in the parking popup menu (by
flight type first, then by name using a better algorithm than before,
so that A9 comes before A10, which itself comes before A10a, A10b,
A11, etc.). Here, "flight type" corresponds to the 'type' attribute
value of Parking elements in groundnet files: ga, cargo, gate,
mil-fighter, mil-cargo, vtol. (Florent Rougon)
[BUGFIX] Change the default for “Airport data source” to “Scenery”.
This reflects FlightGear's current behavior when processing
--parkpos and should provide much better parking data for people
using TerraSync. The old default didn't make use of the TerraSync
data, which was a pity.
As indicated in ffgo/data/help/help_en, it is necessary to have
downloaded data for the desired airport in one of the FG_SCENERY
components before parking positions can be shown for this airport
with the new default setting.
Actually, “Airport data source” is a misnomer. What it really means
is “Parking data source”. But since it corresponds to the
APT_DATA_SOURCE parameter in the config file, and has been so for
years (in FGo!), I'll leave it as is for now and just try to
describe the effects as clearly as possible in the associated
tooltip. (Florent Rougon)
[BUGFIX] When “Airport data source” is set to “Scenery”, stop at the first
groundnet file found in FG_SCENERY for the selected airport, even if
it doesn't declare any parking position. This is what FlightGear
(3.7) does, therefore doing otherwise and offer, in case of
redundant FG_SCENERY components, parking positions that FlightGear
won't find is not a good idea IMHO. (Florent Rougon)
[BUGFIX] For the same reason, don't attempt to read parking data from
FG_SCENERY/Airports/I/C/A/ICAO.parking.xml. This was used when
"Airport data source" was set to Scenery, but FlightGear doesn't
read these files. (Florent Rougon)
[USABILITY] Change the default for “Airport database update” to “Automatic”. I
think this is more likely to improve user experience than to degrade
it. (Florent Rougon)
[FEATURE] Interactive dialogs proposing to change the “Airport data source”
and “Airport database update” settings to their new defaults. Each
question is asked only once (if applicable). Give an empty value to
ALREADY_PROPOSED_CHANGES in the config file if you want to see the
questions again. (Florent Rougon)
[BUGFIX] Don't special-case FILTER_APT_LIST in Config.update(). It seems
counter-intuitive to me that the “Reload config” button reloads
everything from the config file, except the FILTER_APT_LIST setting
(which corresponds to the “Show installed airports only” entry of
the Settings menu). Remove this special case. (Florent Rougon)
[USABILITY] Enabled/disabled state for the “Update list of installed airports”
menu entry. Since this menu entry is only applicable when “Show
installed airports only” is selected, enable or disable it as
appropriate. (Florent Rougon)
[BUGFIX] Fix button size (“Reload config” & Co). In non-English translations,
some buttons were too narrow for the text to fit. This should be
better now. (Florent Rougon)
[FEATURE] Print the Python and CondConfigParser versions in the About dialog
box. This should make it easier to help users or even to help them
help themselves. :-) (Florent Rougon)
[FEATURE] Update the French translation of the interface. (Florent Rougon)
[BUGFIX] 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.
(Florent Rougon)
[BUGFIX] 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. (Florent Rougon)
[FEATURE] 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.
(Florent Rougon)
[BUGFIX] Hide tooltips when the mouse pointer is moved. (Florent Rougon)
[FEATURE] 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. (Florent Rougon)
[FEATURE] 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
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. (Florent Rougon)
[BUGFIX] 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).
(Florent Rougon)
[FEATURE] Add support for context-sensitive translations. (Florent Rougon)
[MAINT] Clean up handling of airport, parking, runway and carrier settings.
(Florent Rougon)
[MAINT] 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.
(Florent Rougon)
[MAINT] 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.
(Florent Rougon)
[USABILITY] 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. (Florent Rougon)
[FEATURE] 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. (Florent Rougon)
[USABILITY] Use a lighter background color for the FlightGear Command Window.
[MAINT] Overhaul of the tooltip infrastructure. New tooltip class:
MenuToolTip. (Florent Rougon)
[BUGFIX] 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. (Florent Rougon)
[FEATURE] 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. (Florent Rougon)
[MAINT] 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.
(Florent Rougon)
[BUGFIX] 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.
(Florent Rougon)
[FEATURE] New parser for apt.dat/apt.dat.gz. Should be compliant with the
v1000 spec. Currently, it is only used to lookup fallback parking
positions for a given airport as described below. (Florent Rougon)
[FEATURE] Read parking positions from apt.dat.gz as a fallback. If the
standard lookup from the groundnet files gives no result, look up
the parking data in apt.dat.gz. This is slow, but the last 50
results are cached in memory to mitigate the inconvenience.
With the apt.dat.gz file distributed with current FlightGear 3.7
(which is identical to the latest file distributed on
<> [and very outdated with
respect to contributions by FlightGear users]), the number of
airports having at least one startup location declared in apt.dat.gz
is 3437. This means that FFGo can offer parking positions/startup
locations for at least this number of airports (the parking data
from FlightGear groundnet files is used preferentially to this data
from apt.dat.gz, but it is maybe possible that some airports have
parking positions declared in a groundnet file but not in
apt.dat.gz). (Florent Rougon; thanks to pommesschranke/d-laser for
the suggestion)
[USABILITY] Small color changes. (Florent Rougon)
[MAINT] Cleanup of code related to the METAR widget (most notably, threading
code). Apart from possible more or less random crashes which should
not happen anymore, the most user-visible result of these changes is
that the widget contents is automatically updated whenever the state
of the “Decoded” checkbox is changed (and every such update is the
result of a new HTTP request). (Florent Rougon)
[MAINT] Various InfoWindow improvements. (Florent Rougon)
[FEATURE] Update the German translation. (chris_blues)
[BUGFIX] Apparently, the HOME environment variable is not always defined on
Windows. This prevents FFGo from starting in such a case
Remove FG_HOME and DEFAULT_TERRASYNC_DIR from ffgo/ as
well as the default setting to DEFAULT_TERRASYNC_DIR for
Config.FG_scenery. The default value for Config.FG_scenery is now
empty, as it used to be some time ago... (Florent Rougon)
[MAINT] Small changes to the AptDat and ToolTip classes. (Florent Rougon)
[FEATURE] Update the German translation. (chris_blues)
[FEATURE] New apt.dat parser; new apt digest file format with an index for
very fast access to all the data present in apt.dat.gz.
* Replace the old apt.dat parser with a new parser. This new parser
should be compliant with the APT1000 specification[1], provide
better error reporting and fix a few small bugs (see below). It
also extracts more information about airports and runways, unifies
recently added extraction of parking metadata from apt.dat.gz with
this airport metadata, and generates an “apt digest file”[2] in a
new format bringing the following improvements:
- more robust (proper header including magic number, encoding
declaration and format version; fields separated by the NUL
char ('\0') instead of '=');
- contains only the information FFGo must read on startup in
order to make this startup as fast as possible; in
particular, runway names for *all* airports are not read
anymore on startup and held into memory, they are loaded on
demand when needed for the selected airport;
- since runway and parking metadata are loaded on demand from
apt.dat (after trying the groundnet file in the case of
parkings), the new format includes an index for each airport
allowing to quickly find its data in apt.dat.gz. Of course,
this requires keeping the apt digest file in sync with
apt.dat.gz, which should not be much of a problem since the
default for “Airport database update” is “Automatic” since
version 1.3.0.
[1] See <>.
[2] Also known as “airport database”: ~/.ffgo/apt everywhere
except on Windows, where it is %APPDATA%/FFGo/apt.
* The creation of the apt digest file is a bit slower than before
(about 25 seconds on my system, as opposed to 10 or 11 before),
but this should only be necessary when apt.dat.gz changes---which
does not happen very often, the current version in FG 3.7 dating
from 2013---or if I have to again change the format of the apt
digest file.
Note: the slowdown is essentially caused by gzip.GzipFile.tell()
being slow, however this is necessary to create an efficient
index. So, it's a bit slower once in a while when rebuilding
the airport database, but pays off the rest of the time when
using FFGo and looking at the airport, runway or parking
tooltips, or simply choosing among the newly-available
startup locations read (since version 1.6.0) from
* Startup and config reloading should now be significantly faster
when the airport list is “filtered” (the configuration option that
causes FFGo to only show the airports you already have scenery for).
(Florent Rougon)
[USABILITY] Add a colored, disabled (i.e., not clickable) and empty header to
the runway popup menu. This makes it more visible, visually similar
to the parking popup, and avoids it disappearing in a flash with the
first entry being accidentally selected if the user just clicked
without holding the button down. (Florent Rougon)
[FEATURE] Add tooltips to the airport list giving basic information about the
airport under the mouse pointer (type of airport [land airport,
seaplane base or heliport], latitude, longitude, elevation and, if
applicable, the lists of land runways, water runways and helipads).
The magnetic variation (also called magnetic declination) at the
airport is also displayed in the airport tooltip if GeographicLib's
MagneticField program is available. If this program is not in your
PATH, you can indicate its location using the Preferences dialog.
Note: MagneticField requires a particular dataset to be installed in
order to work properly. In Debian, it is part of the
geographiclib-tools package, which also provides a script
called 'geographiclib-get-magnetic'. Running a command such as
'/usr/sbin/geographiclib-get-magnetic minimal' with root
privileges will automatically download and install a minimal
dataset under /usr/share/GeographicLib/magnetic, where it can
be found by MagneticField (not registering the added files
with dpkg, which is a bit ugly, cf.
(Florent Rougon)
[BUGFIX] Fix slightly incorrect calculations of v810 airport coordinates (two
opposite runway ends counted as one). This bugfix comes with the new
apt.dat parser. (Florent Rougon)
[BUGFIX] Fix computation of runway names from v810 data (“6” instead of “06”
for the “other runway” opposed to “24”). This also comes with the
new apt.dat parser.
Note: these fixes are untested, as there is no single runway in v810
format in my apt.dat 2013.10, build 20131335. (Florent Rougon)
[FEATURE] Display magnetic heading in parking tooltips when 'MagneticField' is
available (see above for details concerning 'MagneticField').
(Florent Rougon)
[FEATURE] Tooltip for each runway in the runway popup menu, giving: latitude,
longitude (of the runway end), heading (true and magnetic if
'MagneticField' is available, otherwise only the true heading),
length, width, surface type, shoulder surface type, type of
markings, smoothness.
Helipads also have a line specifying whether they have edge
lighting. Water runways have less fields because things such as
shoulder surface type and smoothness are obviously not applicable.
They have all the data that is present for them in apt.dat.gz,
except for the “perimeter buoys” flag. The code to handle this flag
is ready, but the way it is used in apt.dat.gz is completely bogus
and in contradiction with the APT1000 spec. I'll activate the code
when this is fixed.
Since they are not directly available in apt.dat.gz, the length and
heading of runways are computed from the latitude and longitude of
opposite runway ends. FFGo ships with an implementation of
Vincenty's formula to do this with better than 1 mm precision
(assuming the coordinates of the runway ends are that accurate in
apt.dat.gz!), as well as a few more things to deal with the cases
that Vincenty's formula doesn't handle well.
If GeographicLib's Python implementation is installed, it will be
used in preference to these methods, because it is even more
accurate (about 5 nanometers according to its website), was written
by an expert in geodetic calculations (Charles F. F. Karney), and
apparently handles all cases of the geodetic inverse problem,
contrary to Vincenty's formula. (Florent Rougon)
[BUGFIX] Correct calculation to find the nearest METAR station. The previous
code didn't behave properly for points located on either side of the
±180° meridian, or close to one of the poles. Use a fast method
(GeodCalc.modifiedFccDistance()) that gives reasonably correct
results to find the best 15 candidates for the title of “closest
station”, then find the closest among these using GeodCalc.inverse()
(which is an FFGo abstraction layer for the algorithms mentioned
above: Karney's algorithm from GeographicLib if available, otherwise
Vincenty's formula plus a few others for the cases that Vincenty's
formula doesn't handle well). (Florent Rougon)
[BUGFIX] Always write the timestamp file after rebuilding the apt digest file
(i.e., after “rebuilding the airport database”). With the previous
code, if the airport database was manually rebuilt and afterwards
the “Airport database update” setting was changed from Manual to
Automatic, then the database would be unnecessarily rebuilt. This
should be fixed now. (Florent Rougon)
[USABILITY] Improve some tooltips of the Preferences dialog. (Florent Rougon)
[FEATURE] Update the German translation. (chris_blues)
[FEATURE] New “Airport Finder” dialog. This dialog, accessible under the Tools
menu, allows one to easily find airports using various criteria:
distance to a chosen, “reference airport”; number of land runways,
water runways, or helipads; length of the longest or shortest runway
in the airport, etc. Results are listed in a table giving these
criteria for each airport as well as the initial and final bearings
for the shortest path from or to the reference airport. The table of
results can be sorted according to airport ICAO code, name or any of
the aforementioned criteria (click on a column header to sort
according to the corresponding field; click a second time on the
same column header to reverse the sort order).
The Airport Finder dialog uses a new widget set for airport
selection, that is mainly based on Ttk's Treeview widget. See
and the following message for more details. (Florent Rougon)
[FEATURE] Add the number of land runways, water runways, helipads, plus the
minimum and maximum runway lengths for each airport to the apt
digest file (aka “airport database”). This allows to perform quick
searches over all airports known from apt.dat using these criteria
(used in the Airport Finder dialog). The format version of the apt
digest file changed from 1 to 2 to reflect this change. Migration
for users should be completely automatic. (Florent Rougon)
[USABILITY] Previously, when in carrier mode, clicking on a different airport
in the airport list didn't really select it, as it didn't leave
carrier mode. This is not the case anymore. (Florent Rougon)
[USABILITY] Allow resizing the main parts of FFGo's main window by dragging
with the mouse (this uses a Ttk PanedWindow). (Florent Rougon)
[BUGFIX] More tolerant parsing of apt.dat, in order to make it possible to
use current apt.dat files distributed at
<>. (Florent Rougon)
[MAINT] Tolerate invalid smoothness values in apt.dat. This is not really
needed, since invalid values only cause an error when looking up
buggy runway metadata, but this will allow users to access the rest
of these particular runway metadata... Change mainly motivated by
<>. (Florent Rougon)
[BUGFIX] Fix calculation of airport centroid coordinates. Use n-vectors to
compute the latitude and longitude of the centroid of each airport.
The previous method, a simple arithmetic mean, could give incorrect
results with airports having runway ends located on either side of
the 180° meridian or very close to the North or South pole (not that
I encountered any such problem, but I prefer a correct method, all
the more since the performance impact is negligible).
(Florent Rougon)
[BUGFIX] Fix wrong unit for runway width in apt.dat v850 and later data. In
v850 format, runway widths and helipad lengths and widths are given
in meters, whereas in v810 format, they were given in feet. This led
to confusion and before this version, runway widths were wrongly
converted as if they had been given in feet (for > v810 data). This
is now fixed.
In runway tooltips, print the length and width first in meters, then
in feet, instead of the other way around (since this is how they are
specified in the primary source...). (Florent Rougon)
[MAINT] Behind-the-scenes tooltip improvements. Most notably, the new
TreeviewToolTip class allows to have dynamic tooltips in the
Treeview widgets used in the new Airport Finder dialog.
(Florent Rougon)
[FEATURE] Update the German translation. (chris_blues)
[BUGFIX] Support MagneticField from GeographicLib versions < 1.39. In these
versions, the MagneticField program doesn't support the special
string "now" for the time field. Use the current date in order to
support these versions (i.e., released before 2014-11-11).
(Florent Rougon)
[BUGFIX] Layout improvements: make sure that the most important widgets in
FFGo's main window are the last to be shrunk when the window is too
small to display all of its widgets at their natural size. Most
notably, the frame containing the "Run FG" button could be
completely invisible in version 1.8.0 if started with a main window
that is not very tall. With this change, the text and list widgets,
as well as the aircraft thumbnail, are all shrunk before starting to
“touch” to any of the buttons or labels. (Florent Rougon)
[BUGFIX] Fix wrong line numbers in error reports for index-based apt.dat
requests. AptDat.readAirportDataUsingIndex() used to seek into the
apt.dat.gz file using the specified index, but it did not modify
AptDat.lineNb accordingly. As a consequence, the line numbers for
error reports concerning apt.dat parsing raised by this method were
usually wrong. In order to properly fix this, it has been necessary
to modify be the apt digest file format a little bit (storing a line
number along with each index value), and therefore to change its
format version from 2 to 3. Migration for users should be completely
automatic. (Florent Rougon)
[DOC] Add notes concerning the 'pkg_resources' Python 3 module to
docs/INSTALL/INSTALL_en. Users might need to install this module in
somewhat unusual situations. (Florent Rougon)
[FEATURE] Use the new airport chooser (widgets.AirportChooser) for the airport
list in the main window. The airport list in the main window used to
be a simple list; replace it with a real multicolumn widget (Ttk
Treeview), reusing the logic already implemented in
widgets.AirportChooser. This fixes small alignment problems in the
previous implementation (due to the ICAO codes not having the same
display width), allows one to sort the airport list by ICAO code or
airport name, in ascending or descending order, with a simple click
on the relevant column header, and brings the nice logic from
widgets.AirportChooser to the main window airport list (such as
preferring an exact match on ICAO code when there are also substring
matches on airport names for a given search string).
The airport chooser has also been modified to better handle
navigation keys (Up and Down arrows, Page Up and Page Down, Home and
End). Most notably, holding down one of the first four mentioned
here should work as expected (this might need some tuning, because
the thing is to delay the time-consuming task of updating everything
that depends on the selected airport enough so that Tk has
sufficient time between two consecutive “arrow-pressed” keyboard
events to refresh the GUI---please report if that doesn't work for
you in an airport list [the aircraft list still has this little
problem when an arrow key is held down, I know]). (Florent Rougon)
[FEATURE] New GPS Tool dialog allowing one to find the distance, initial and
final bearings for the shortest path between two given airports.
This dialog should be more convenient than the Airport Finder dialog
for the cases where you already know the start and destination
airports you are interested in, and you just want to get the results
for these airports. Or you want to check several pairs of airports,
and you know precisely *which* ones you want the calculations to be
done for.
The dialog also computes the flight duration for a given ground
speed, and vice versa. It reuses the AirportChooser widget already
used in FFGo's main window and in the Airport Finder dialog.
(Florent Rougon)
[FEATURE] New setting: "Automatically scroll the Output Window". Add a
checkbox to the Miscellaneous tab of the Preferences dialog to
control whether FFGo should automatically scroll the FlightGear
Output Window to the end whenever new text is received from
FlightGear's stdout or stderr stream. This corresponds to the config
file parameter AUTOSCROLL_FG_OUTPUT. (Florent Rougon, feature
request by pommesschranke/d-laser)
[FEATURE] Add option to translate --parkpos into --lat, --lon and --heading.
This option can be enabled using the “Fake the --parkpos option”
checkbox found in the Miscellaneous tab of the Preferences dialog.
It is useful when --parkpos is broken in FlightGear (which is
currently the case in the 'next' branch of FlightGear's Git
repository). (Florent Rougon)
[BUGFIX] Fix bug preventing FFGo from starting when there was no translation
file for the current locale (thanks to legoboyvdlp for the report).
(Florent Rougon)
[BUGFIX] Add missing 'tkinter.messagebox' import for 'showerror' in
ffgo/fgdata/ The problematic code could only be reached
when FFGo opens an erroneous groundnet file. Problem was: the error
reporting could not be done properly. (Florent Rougon)
[BUGFIX] Fix two options from the Preferences dialog whose lastest-updated
values were used by FFGo even if the dialog was closed with Cancel.
These are the 'Remember the main window position' and 'Automatically
scroll the Output Window' options. (Florent Rougon)
[BUGFIX] Airport Finder: display an explanatory error message when the user
chooses an airport that is not present in FFGo's main window due to
the fact that the “Show installed airports only” option (from the
Settings menu) has been enabled. (Florent Rougon)
[BUGFIX] Hide item-specific tooltips when the underlying List or Treeview is
scrolled. Once a list or Treeview is scrolled, item-specific
tooltips are likely not to match the item under the mouse pointer
anymore. For this reason, hide the item-specific tooltip whenever
each of the following Lists or Treeviews is scrolled: aircraft and
airport lists in FFGo's main window; “reference airport” chooser and
results table in the Airport Finder dialog (the GPS Tool dialog has
never had this little problem AFAICT). (Florent Rougon)
[USABILITY] Main window: set the initial focus in the airport search entry. I
think this is the most useful thing to do in general.
(Florent Rougon)
[USABILITY] Add a colored, disabled (i.e., not clickable) and empty header to
the carrier popup menu. This makes it more visible, visually similar
to the runway and parking popup menus, and avoids it disappearing in
a flash with the first entry being accidentally selected (i.e.,
'carrier = None', return to airport mode) if the user just clicked
without holding the left mouse button down. (Florent Rougon)
[FEATURE] Update the German translation. (chris_blues)
[FEATURE] Installing on Windows should create an ffgo-noconsole.exe executable
(typically in C:\PythonXY\Scripts) that doesn't open any terminal
window (“console”) when run. (Florent Rougon)
[BUGFIX] Fix a bug in the Airport Finder: if the airport search text in
FFGo's main window was non-empty, the “Choose selected airport”
button of the Airport Finder dialog could fail to find the chosen
airport. (Florent Rougon)
[BUGFIX] Fix the “Open Log Directory” feature to hopefully work on Windows
and MacOS X (in addition to Unix-like systems, of course).
(Florent Rougon)
[FEATURE] Update the German translation. (chris_blues)
[MAINT] Rebase widgets.AirportChooser on a generic, abstract class:
widgets.IncrementalChooser. (Florent Rougon)
[FEATURE] Reimplement the aircraft chooser using widgets.IncrementalChooser.
This improves its behavior in several respects:
- smarter automatic selection of an aircraft when the search query
is changed, based on the new search query and the previous
- better handling of navigation keys (up and down arrows, Page Up
and Page Down, Home and End; most notably, holding down one of
the first four of these, and pressing one of the last two should
have the expected effect);
- ability to display several proper columns of data and sort by
clicking on a column header;
- short delay before starting to search after the search query is
modified, in order to allow smooth typing in the search field.
(Florent Rougon)
[FEATURE] Aircraft chooser: approximate matching of aircraft names
* With this commit, you don't have to remember that the 'f-14b'
aircraft has a hyphen, the 'EC-137D' also, but not the 'ec130b4'
nor the 'ec135p2'. Characters in the following string are simply
ignored during the first phase (filtering) of an aircraft search:
' -_.,;:!?' (the list starts with a space). This means that an
aircraft search query can find an aircraft even if it has hyphens,
underscores, etc. missing or in excess compared to the actual
aircraft name.
* Note that this only concerns the aircraft list *filtering*. Given
a set of aircrafts that match the search query, one of them may be
automatically selected after the aircraft list is filtered if:
- it is either an exact (case-insensitive) match of the search
query (and for this purpose, characters such as hyphens and
underscores are *not* ignored: autoselection requires an exact
- or it is the previously-selected aircraft (option only taken
if the first one couldn't be satisfied, and of course if the
previously-selected aircraft is in the just-updated, filtered
* As said, both types of matching are case-insensitive:
1) the approximate matching process used to determine which
aircrafts will be displayed in the aircraft list after a
change to the search field;
2) the exact matching process used to autoselect the “best”
among the matches found in 1), falling back to the first one
if none of these fulfills any of the two conditions given in
the previous paragraph.
(Florent Rougon)
[FEATURE] Airport and aircraft statistics (“use counts” / “visit counts” for
customizable periods)
* New classes AirportStatsManager and AircraftStatsManager that are
used to maintain lists of dates when each airport was visited
(resp. each aircraft used).
Old data is automatically expired (new config file parameters
Counts of how many days in a chosen period (new parameters
airport has been visited or each aircraft used are stored in
memory and maintained by the AirportStatsManager and
AircraftStatsManager classes. These counts are obtained from the
dates of visit/use of each airport/aircraft by counting the dates
* All this data is loaded from $USER_DATA_DIR/Stats/airports.json.gz
and $USER_DATA_DIR/Stats/aircrafts.json.gz when FFGo is started,
and saved to the same files when it is quit. It is also saved just
before the airports/aircrafts set is possibly changed and reloaded
afterwards in order to avoid losing data stored in the .json.gz
files if it can't be applied to the current airports/aircrafts
* Add a new column to the aircraft list showing how many days each
aircraft has been used at least once (“use count”) during the
period defined by AIRCRAFT_STATS_SHOW_PERIOD (which is interpreted
as a number of days). Similarly, add a column to the airport list
showing how many days each airport has been visited at least once
during the period defined by AIRPORT_STATS_SHOW_PERIOD (again,
number of days). The use (resp. visit) count for an aircraft
(resp. airport) is incremented whenever FlightGear is started from
FFGo with this aircraft (resp. at that airport). This is only done
in memory until $USER_DATA_DIR/Stats/airports.json.gz and
$USER_DATA_DIR/Stats/aircrafts.json.gz are saved, as mentioned
* By default, these two .json.gz files are stored in the most
possible compact format (no space or newline to separate
syntactical elements in the uncompressed data stream). For users
who would like to examine or even modify these files (for
instance, in order to keep aircrafts use counts despite having
changed one's aircraft paths), FFGo supports a new command-line
option: '--save-stats-in-pretty-form' (pretty long, but I surmise
it should not be needed often). Start FFGo with this option, then
either do a reset (“Reload config file”) or quit FFGo; at this
point, both .json.gz files should be in human-readable form.
default to 3652 days (ten years). AIRPORT_STATS_SHOW_PERIOD and
AIRCRAFT_STATS_SHOW_PERIOD default to 365 days (one year).
* The Preferences dialog has a new “Statistics” tab allowing to
configure these four parameters.
* This feature was presented in this message on the FlightGear
forum (maybe it has better/different explanations...):
(Florent Rougon)
[FEATURE] Change the initial sorting of the aircraft and airport lists. These
two lists in FFGo's main window are now initially sorted:
- primarily, by decreasing use/visit count;
- secondarily, by aircraft or airport name for aircrafts/airports
having the same use/visit count.
Note that this only concerns the initial sorting at FFGo startup; it
is always possible to click on a column header to change the sort
(Florent Rougon)
[BUGFIX] Fix loading of aircraft thumbnails:
- fix a long-standing little bug (present in FGo!): aircraft
thumbnails that don't have 171×128 dimensions are now displayed
correctly (appropriately scaled to fit in the 171×128 space
reserved for that). For maximum performance, this is bypassed
for aircraft thumbnails that already have the desired
dimensions. An aircraft for which the difference is very visible
is the 707.
- replace the catch-all “except:” clause with a more specific
“except OSError:” one. If another type of error is raised in
that place, it should be fixed where the actual problem belongs,
instead of sweeping the whole thing under the rug.
(Florent Rougon)
[BUGFIX] Fix detection of the FlightGear version: debug builds of FlightGear
have a different 'fgfs --version' output than normal builds, and
that extended output wasn't properly recognized by FFGo.
(Florent Rougon)
[BUGFIX] Pass --fg-root when running 'fgfs --version' to avoid the new popup.
FlightGear 2016.1.0 (from February 2016) can spawn an annoying popup
dialog when 'fgfs --version' is run, which is very confusing for
FFGo users and broke FFGo's detection of the FlightGear version
(this popup is apparently meant to let the user graphically choose
the FG_ROOT path to use in the built-in Qt launcher). Pass the
--fg-root option as well (assuming Config.FG_root is non-empty,
otherwise FlightGear version detection is not attempted) to work
around this new behavior of 'fgfs --version'. (Florent Rougon)
[BUGFIX] Run 'fgfs --fg-root=... --version' in the directory defined by
FG_WORKING_DIR (which can be configured from the Settings dialog).
This is a good idea, as FlightGear has a nasty tendency to leave
core files around, even when just trying to print the version...
(Florent Rougon)
[MAINT] Preferences dialog: use a Ttk Notebook widget instead of the
home-made one. This will be better for maintainability, and
hopefully is also an improvement regarding ergonomy and appearance
on various OSes. (Florent Rougon)
[MAINT] Preferences dialog: reimplement the whole dialog layout using the
grid() layout manager instead of pack(). This allows to have proper
horizontal and vertical alignments in the new “Statistics” tab. This
should also make it easier to add things or make changes to the
dialog in the future. Also replace Tk widgets with Ttk ones whenever
there is a Ttk equivalent, and get rid of the
'from tkinter import *' wildcard import. (Florent Rougon)
[USABILITY] Enable automatic line wrapping in the About box. Otherwise, the
box can get very large depending on the text we display inside...
(Florent Rougon)
[USABILITY] Update the translated template config files
* Remove the --multiplay option from all templates: nowadays, most
people should connect using the in-sim menu when they are ready
(not on a runway, not on someone else's aircraft, and ready to
answer to an eventual ATC operator, for a start). Other people can
find the option on the FlightGear wiki or forum, as well as in the
output of 'fgfs --help --verbose' anyway.
* Update the French and German templates; both should now be
(Florent Rougon & chris_blues)
[USABILITY] Small update to the template config files
ffgo/data/config/config_* (only the English, French and German files
have an active maintainer; we can only do “blind corrections” for
other languages). (Florent Rougon & chris_blues)
[FEATURE] Update the German translation. (chris_blues)
[BUGFIX] Fix image scaling to work with Pillow versions older than 2.9.0 (the
'width' and 'height' attributes of PIL.Image instances were only
added to Pillow in version 2.9.0, released on 2015-07-01 according
to Pillow's ChangeLog). (Florent Rougon)
[FEATURE] New Pressure Converter dialog. This dialog, accessible from the
Tools menu, allows one to quickly convert a pressure value from
inches of mercury (inHg) to hectoPascals (hPa) and vice versa. This
is useful when the QNH value obtained from METAR or ATIS (the
“altimeter setting”) is not in a unit that is directly usable with
your aircraft's instruments. (Florent Rougon)
[FEATURE] Help menu: add an entry (“Show available fgfs options”) to show the
output of 'fgfs --help --verbose'. This allows one to easily see (a
subset of) what can be put in the Options Window (command-line
options such as --enable-fullscreen or --disable-hud-3d).
(Florent Rougon)
[BUGFIX] Fix state management for the runway and parking buttons. With the
default, empty config (FG_ROOT config parameter not filled, etc.),
clicking on either the runway or the parking button was possible,
but triggered an error (a harmless one, though). FFGo now ensures
that said buttons are disabled when appropriate. (Florent Rougon)
[USABILITY] Use a color suitable for prolonged reading when displaying
potentially long texts (e.g., the FFGo help file accessible from the
Help menu, or when doing Help → Show available fgfs options).
(Florent Rougon)
[USABILITY] Improve the documentation concerning FFGo installation
(docs/INSTALL/INSTALL_en and <>).
Among other changes, there is now a precise description of how to
install MagneticField on Windows. Thanks to jaxsin on the FlightGear
forum for testing things on Windows and reporting. (Florent Rougon)
[USABILITY] Don't attempt to run FlightGear if Config.FG_bin is empty or
whitespace-only. Rather, display a helpful message. (Florent Rougon)
[USABILITY] Improve the error reporting dialog boxes displayed when FlightGear
can't be run or when trying to start FlightGear while it is already
running. (Florent Rougon)
[USABILITY] Add commented-out property settings for anti-aliasing to the
default FlightGear options. The commented-out lines are:
as mentioned on the Anti-aliasing page of the FlightGear wiki
Thanks to jaxsin on the FlightGear forum for the suggestion.
(Florent Rougon)
[USABILITY] Update other comments in the default FlightGear options:
- the comment about --terrasync-dir, which benefits from a fix
in FlightGear 2016.2.0 (FlightGear commit
41b78ce1505aced494f588d6f3591c8af68a8bbe of Sunday, Feb 21);
- the comment about running 'fgfs --help --verbose',
which can now be easily done from FFGo's Help menu.
(Florent Rougon)
[USABILITY] Improve or polish several tooltip texts and labels.
(Florent Rougon)
[FEATURE] Update the German translation. (chris_blues)
[BUGFIX] Prevent unwanted selection changes in the airport and aircraft
choosers. The airport and aircraft choosers suffered from the
following problem: if the associated search field was not empty,
some operations such as running FlightGear or changing the sort
order in the airport or aircraft list, could cause the selected item
to be changed based on the contents of the search field. Such
unwanted changes could only happen after FlightGear was started,
which somehow mitigated the impact of the bug, but still, this was
clearly undesirable and could be confusing. (Florent Rougon)
[MAINT] Declare Python 3.5 support in the metadata.
(Florent Rougon)
[BUGFIX] Fix FG_SCENERY tooltip concerning the default TerraSync directory.
The previously-indicated default ($FG_HOME/TerraSync) was correct
for non-Windows systems, but for Windows it wasn't. This is because
Windows uses a different code path in FlightGear to determine
FlightGear's download directory, and the FlightGear wiki page for
TerraSync (<>) was incorrect.
Both FFGo's tooltip and the TerraSync wiki page are now fixed.
(Florent Rougon)
[BUGFIX] There was a similar problem in config_en, config_de and config_fr
(default config options). Don't mention $FG_HOME/TerraSync anymore,
point to <> instead.
(Florent Rougon)
[BUGFIX] Make the file and directory selectors more robust in case the HOME
environment variable points to a non-existent file or directory.
(Florent Rougon)
[USABILITY] Add more commented out options to the default configuration.
* Example for --metar (to choose specific weather conditions).
* How to enable the Phi web interface to FlightGear, using
--httpd= or --httpd=8080.
* Example of --multiplay options to establish direct multiplayer
connection between two FlightGear instances running on the same
computer, without going through an fgms server (FlightGear
multiplayer server).
(Florent Rougon)
[USABILITY] Remove useless --enable-real-weather-fetch option from
unmaintained config_ll files (Italian, Japanese and Polish outdated
translations of ffgo/data/config/config_en). This option is already
enabled by default in contemporary FlightGear. We already have to
choose between useful options, so let's not waste config space/add
complexity with useless ones... (Florent Rougon)
[USABILITY] Improve the installation instructions. Actually, most of the
recent improvements in this area went to
<>, but some of these have been
“backported” to docs/INSTALL/INSTALL_en in this release. Moreover,
this file now clearly suggests users to start with the installation
instructions from the FFGo wiki page first, then to consult
docs/INSTALL/INSTALL_en in case they need more information on
certain subjects. (Florent Rougon)
[MAINT] Aircraft is an invariable noun. Argh. Fix spelling in all places
where this is safe for a “stable update”.
(Florent Rougon)
[FEATURE] Update the German translation. (chris_blues)
[FEATURE] Update the Spanish translation of ffgo/data/config/config_en.
[FEATURE] Support reading and merging of in-scenery-paths apt.dat files.
* Adapt to the new feature introduced in FlightGear commit 516a5cf0
that allows FlightGear to read and merge an arbitrary number of
uncompressed or gzip-compressed apt.dat files located in the
NavData/apt subdirectory of each scenery path (plus, at least for
now, the usual $FG_ROOT/Airports/apt.dat.gz considered with lowest
* Users of FlightGear 2016.4.0 must have their FlightGear more
recent than November 9, 2016 (FlightGear commit fb10f76e). For
FlightGear < 2016.4.0, only $FG_ROOT/Airports/apt.dat.gz is read
(old behavior).
(Florent Rougon)
[FEATURE] Introduce a new “download directory” setting, tunable from the
Preferences dialog.
This is necessary, because the directory specified with the
--download-dir fgfs option contributes a scenery path when TerraSync
is enabled ($download_dir/TerraSync except when --terrasync-dir is
used, but this last option is not very useful, only kept as legacy
since --download-dir was added to FlightGear).
Using --download-dir or --terrasync-dir inside the Options Window
is not supported anymore, as doing this correctly would
potentially require to rebuild the apt digest file every time a
character is added to, or removed from the corresponding line in
the Options Window. To compensate for this, users can set the
download directory in the Preferences dialog.
Print an explanatory message when trying to use --download-dir or
--terrasync-dir in the Options Window.
(Florent Rougon)
[USABILITY] Add a progress bar to the window displayed when rebuilding the apt
digest file/airport database. (Florent Rougon)
[FEATURE] Add config parameters and drop-down lists for the season
(summer or winter textures) and time of day. (Florent Rougon)
[FEATURE] Add “Enable automatic scenery download” (i.e., TerraSync), “Start
FlightGear in full screen”, “Start FlightGear paused”, “Enable
multi-sample anti-aliasing” and “Enable deferred rendering
(Rembrandt)” config parameters and check buttons. (Florent Rougon)
[MAINT] Try to simplify and make more understandable the logic deciding when
to rebuild the apt digest file (especially in automatic mode).
(Florent Rougon)
[BUGFIX] Small fix in Config._findInstalledApt() (used for the “Show
installed airports only” feature, when choosing “Update list of
installed airports” in the Settings menu).
In the corner case where TerraSync is enabled and the TerraSync
directory isn't listed in Config.FG_scenery, then FlightGear *is*
going to use it as a scenery path, so visiting Config.FG_scenery
only is not quite right. This is fixed for FlightGear versions that
have --json-report (option which appeared in FlightGear 2016.4.0,
commit fb10f76e from November 9, 2016).
Anyway, I recommend to *always* explicitly list the TerraSync
directory in Config.FG_scenery: this is IMHO more logical, and the
resulting behavior is more predictable. Otherwise, the list of
scenery paths used by FlightGear can change whenever you enable or
disable TerraSync---eeek!
(Florent Rougon)
[USABILITY] Disable the error popup dialog when parsing broken groundnet files.
This dialog box was quite ugly and annoying, and didn't have the
effect I hoped (i.e., people fixing the groundnet files---at least,
not in many airports distributed via TerraSync).
The errors are still logged to the terminal and to FFGo's log file
for those who care about providing sane groundnet files.
(Florent Rougon)
[USABILITY] Print a helpful message when the fallback localization file
ffgo/data/locale/en/LC_MESSAGES/ can't be found. This happens
every time someone tries to run FFGo from the Git repository without
preparing it as per the instructions in docs/INSTALL/INSTALL_en. And
then people think it's a bug! This message should help prevent such
confusion. (Florent Rougon)
[MAINT/FEATURE] Update the “FFGo conditional config documentation” (aka
* Don't use options such as --timeofday, --season,
--enable-fullscreen, --enable-terrasync and --terrasync-dir in the
examples, since these are now specifically managed by FFGo, thus
using them in the Options Window is redundant and confusing (e.g.,
if a checkbox is unchecked but the corresponding option is added
from the Options Window).
* Give a hint about how to automatically load specific joystick
binding files depending on the aircraft (this is in an example
regarding helicopters, using the 'heli_class' CondConfigParser
(Florent Rougon)
[FEATURE] Update the German translation. (chris_blues)
[BUGFIX] Update changed URL to retrieve METAR reports. The old URL
<> doesn't work anymore, use
<> instead. I thought FFGo wasn't
affected, and since nobody reported the problem... (Florent Rougon)
[BUGFIX] Layout improvements in the main window. The goal is to increase the
likelihood of the main window fitting on screens that are not very
wide (1280 pixels wide with font size 11 should now be OK in English
as well as in French—this of course depends on the particular fonts
used). (Florent Rougon)
[FEATURE] Use a Ttk PanedWindow for the top part of the main window, thus
allowing users to choose how to distribute horizontal space in the
top “row” containing the aircraft list, the two middle panes and the
airport list (at run time, using the mouse). (Florent Rougon)
[BUGFIX] Stricter check for FlightGear versions having the --json-report
option. Now that FlightGear 2016.4.1 is out, check for this version
rather than 2016.4.0, because 2016.4.1 guarantees the availability
of --json-report while 2016.4.0 does not (only the very last FG
commits labelled 2016.4.0 have this option). (Florent Rougon)
[FEATURE] Small addition to README.conditional-config (ATCChatter example).
(Florent Rougon)
[BUGFIX] Pass --disable-terrasync when automatic scenery download is
disabled. Omitting --enable-terrasync is not enough, FlightGear
remembers the setting! (Florent Rougon)
[FEATURE] Add a configuration parameter and check box in the main window to
enable or disable automatic download of weather data (also known as
“real weather fetch”). This is convenient when one repeatedly runs
FlightGear to debug something and wants it to start as quickly as
possible. (Florent Rougon)
[USABILITY] Small layout adjustments in FFGo's main window. (Florent Rougon)
[USABILITY] Rewording of the MSAA tooltip: it doesn't seem to impact frame
rate that badly. (Florent Rougon)
[USABILITY] Minor update to the default config regarding real weather fetching
(only the comment is changed). (Florent Rougon)
[USABILITY] Update the German translation. (chris_blues)
[USABILITY] Fix a mistake in the German translation. (chris_blues)
You can’t perform that action at this time.