Ffgo

Latest version: v1.12.8

Safety actively analyzes 681866 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 5

1.10.1

[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)

1.10.0

[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
selection;
- 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
match);
- 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
list).

* 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
AIRPORT_STATS_EXPIRY_PERIOD and AIRCRAFT_STATS_EXPIRY_PERIOD).
Counts of how many days in a chosen period (new parameters
AIRPORT_STATS_SHOW_PERIOD and AIRCRAFT_STATS_SHOW_PERIOD) each
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
selected with AIRPORT_STATS_SHOW_PERIOD and
AIRCRAFT_STATS_SHOW_PERIOD.

* 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
set.

* 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
above.

* 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.

* AIRPORT_STATS_EXPIRY_PERIOD and AIRCRAFT_STATS_EXPIRY_PERIOD
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...):

http://forum.flightgear.org/viewtopic.php?f=18&t=27054&p=275923#p275774
(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
order.
(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
ffgo/data/config/config_<language-code>.

* 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
up-to-date.

(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)

1.9.1

[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)

1.9.0

[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/parking.py. 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)

1.8.1

[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)

1.8.0

[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
<http://forum.flightgear.org/viewtopic.php?f=18&t=27054&p=269261#p268159>
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
<http://gateway.x-plane.com/NOTAMs>. (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
<http://gatewaybugs.x-plane.com/browse/XSG-1218>. (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)

Page 3 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.