1
0
Fork 0
Commit graph

10078 commits

Author SHA1 Message Date
Henning Stahlke
2538ab717a YASim: more output for CLI tool, e.g. wingspan, area, levers, load factor... 2017-12-23 01:06:38 +01:00
Florent Rougon
c325a8d2cd Fix typos in src/Input/FGLinuxEventInput.cxx 2017-12-23 00:04:21 +01:00
James Turner
216d2328a3 Linux fixes 2017-12-22 14:44:29 -08:00
James Turner
fed8ce623b Fix Windows compilation. 2017-12-22 15:48:52 +00:00
Henning Stahlke
7e5a1bb6b9 try to fix windows build error 2017-12-21 18:56:29 +01:00
James Turner
34630f935d Fix GCC indentation warning 2017-12-20 04:04:17 -08:00
James Turner
407a6d4b3e Linux fixes for HID-input 2017-12-20 04:04:17 -08:00
James Turner
edc1d63b26 Merge /u/jsb1685/flightgear/ branch yasim2 into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/110/
2017-12-19 23:06:03 +00:00
Henning Stahlke
9289c79e05 YASIM reduce precision of lift/drag output from CLI tool to .4 2017-12-19 08:44:41 +01:00
Henning Stahlke
87149931dd YASim refactoring parser 2017-12-19 08:44:41 +01:00
Henning Stahlke
7c55aa2c4a YASim variable and method name clarification in class Surface 2017-12-19 08:44:41 +01:00
Henning Stahlke
f7c5d2b1f9 YASIM refactoring class Surface
and export more properties to proptree
2017-12-19 08:44:41 +01:00
Henning Stahlke
408e645bb2 YASIM add wing section support
refactoring of FGFDM parser
replace old helpers with lib functions from <cstring>
remove typecast that kills 'const'
add some comments and clarify variable names
2017-12-19 08:44:41 +01:00
James Turner
e630bc4be7 Make HID-Input test also conditional
Forgot to wrap this in the relevant CMake test, causing non-HID-input
builds to erroneously fail.
2017-12-18 18:22:44 +00:00
James Turner
e920dc7509 Event input layer based on HID-Api
Thus runs in parallel to the existing implementation on Linux and Mac,
but can (soon) replace the Mac code and will run on Windows eventually.
2017-12-18 17:15:55 +00:00
James Turner
d98cd3a717 Launcher: move QML files to a sub-directory 2017-12-15 14:38:23 +00:00
James Turner
f964728422 Launcher aircraft list: show counts 2017-12-15 14:38:23 +00:00
James Turner
595b0d16da Launcher aircraft: fix a layout bug 2017-12-15 14:38:23 +00:00
Henning Stahlke
e913e44aa0 YASIM type name clarification 2017-12-15 15:20:29 +01:00
Henning Stahlke
13e00b275b YASim: export more forces to prop tree for in flight debugging 2017-12-15 15:20:29 +01:00
Henning Stahlke
a199ca817c YASim: user Math functions in RigidBody 2017-12-15 15:20:29 +01:00
Henning Stahlke
abb451256d YASim CLI tool: add more CG outputs
remove non-significant digits from inertia printf()
2017-12-15 15:20:29 +01:00
Henning Stahlke
78f7950fa6 YASim: move common helper functions to new yasim-common.cpp 2017-12-15 15:20:28 +01:00
Henning Stahlke
c63ded1c44 YASIM add initialization
use Math::clamp in ControlMap
2017-12-15 15:20:28 +01:00
Henning Stahlke
b2000e1cca YASIM add a local var 2017-12-15 15:20:28 +01:00
Henning Stahlke
5aead123fc YASIM refactoring of ControlMap 2017-12-15 15:20:28 +01:00
Henning Stahlke
09c60ee40e YASIM add variable initialization 2017-12-15 15:20:28 +01:00
Henning Stahlke
3809137f7d YASIM add method multiplyLiftRatio to class Wing 2017-12-15 15:20:28 +01:00
Henning Stahlke
6feca92060 YASIM add struct StallParams to Wing 2017-12-15 15:20:27 +01:00
Henning Stahlke
b288ca3d9d YASIM: add struct Chord to Wing.hpp ; add static method calculateMAC to Wing 2017-12-15 15:20:27 +01:00
Henning Stahlke
6b473fde68 YASIM: move updating of model from Airplane to Wing 2017-12-15 15:20:27 +01:00
Henning Stahlke
fb6f965db7 YASIM: method name clarification (and indention) 2017-12-15 15:20:27 +01:00
Henning Stahlke
0e6552cddf YASIM: move property export code into classes (Wing) 2017-12-15 15:20:27 +01:00
Henning Stahlke
43af435085 YASIM: rename method getMAC to getMACLength 2017-12-15 15:20:27 +01:00
Henning Stahlke
c3bfeb4ba0 YASIM only reformat for better readability 2017-12-15 15:20:27 +01:00
Henning Stahlke
030403db5f YASIM member initialization in class Vector 2017-12-15 15:20:26 +01:00
Henning Stahlke
1194b09525 YASIM rename methods in class Surface 2017-12-15 15:20:26 +01:00
Henning Stahlke
1f721fb6d8 YASIM add new version tag for 2018.1 2017-12-15 15:20:26 +01:00
Henning Stahlke
77a9cca6d5 YASIM refactoring Wing class (flaps) 2017-12-15 15:20:26 +01:00
Henning Stahlke
95ee37c9b9 YASIM refactoring of Wing class 2017-12-15 15:20:26 +01:00
Henning Stahlke
3ac90ee866 YASIM: minor corrections and safeguards. 2017-12-15 15:20:26 +01:00
Henning Stahlke
ea8bfba98a YASim: add method to Wing and clarify member name. 2017-12-15 15:20:25 +01:00
Florent Rougon
c28f63132f Re-add airport(), navaid() and runway() methods of flightplan-leg ghosts
These methods were removed by mistake in commit 0dbb0dff9, which broke
code that relies on them (e.g., FMSDelegate.currentWaypointChanged() in
$FG_ROOT/Nasal/route_manager.nas).

Also remove 'waypointPrototype' from NasalPositioned.cxx, since it is
not used anymore.

Note: the methods can't be easily re-enabled by means of
      'waypointPrototype', because for FPLeg ghosts, 'waypointPrototype'
      was emulated as a parent class before this commit, and thus when
      querying an FPLeg ghost for its 'airport', 'runway' or 'navaid'
      member, the corresponding data member returned by
      waypointCommonGetMember() would be found by legGhostGetMember()
      *before* parent classes are searched. This commit prevents this
      from happening by returning 'airport', 'runway' and 'navaid' as
      member functions *directly* in legGhostGetMember(), before
      waypointCommonGetMember() is queried as a fallback.

Thanks to Eric van den Berg for the bug report.
2017-12-13 11:39:05 +01:00
Florent Rougon
b769ee6fdc AddonManager::registerAddonMetadata(): improve error messages 2017-12-10 22:41:03 +01:00
Florent Rougon
45867058f0 addon-metadata.xml: add meta section (non-leaf node) and file-type node
Move the format-version node inside /meta. It's not compatible of
course, but since the stuff this is breaking is only 2 or 3 days old,
let's go for it for nicer code and file format.

Sorry if you had already written an addon-metadata.xml file of your
own. In this case, just replace:

  <format-version type="int">1</format-version>

with:

  <meta>
    <file-type type="string">FlightGear add-on metadata</file-type>
    <format-version type="int">1</format-version>
  </meta>
2017-12-10 22:41:03 +01:00
James Turner
88940eb6bc Launcher: fix some warnings from QML 2017-12-09 09:46:14 +00:00
James Turner
58fa9fcaa7 Launcher: fix for unreliable aircraft-dir scanning 2017-12-09 09:32:25 +00:00
James Turner
d127a6ff9a Launcher: fix on-disk variant enumeration 2017-12-08 23:18:42 +00:00
Florent Rougon
3985bf4b19 Fix compilation error in src/Add-ons/AddonVersion.cxx
This should fix the following compilation error and other similar ones:

  converting to ‘std::tuple<flightgear::AddonVersionSuffixPrereleaseType,
  int, bool, int>’ from initializer list would use explicit constructor
  ‘constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&&
  ...)

According to <https://stackoverflow.com/a/32084829/4756009>, the change
wouldn't be needed in C++14 (and it built fine with my g++) but we use
C++11.
2017-12-08 18:39:27 +01:00
James Turner
e6e055dbb0 Launcher: preview image loading feedback
Expose the loading state as a property so the UI can show some feedback
when the image is still loading.
2017-12-08 16:14:47 +00:00
James Turner
033d5f65d5 Usability tweaks for editing ratings
Adjust ratings text now has mouse hover, and sliders can be clicked
on the track to adjust the value directly
2017-12-08 16:14:47 +00:00
Florent Rougon
48f52f14c4 Improved infrastructure for add-ons: C++ classes, metadata file, Nasal interface
This commit adds C++ classes for add-on management, most notably
AddonManager, Addon and AddonVersion. The AddonManager is used to
register add-ons. It relies on an std::map<std::string, AddonRef> to
hold the metadata of each registered add-on (keys of the std::map are
add-on identifiers, and AddonRef is currently SGSharedPtr<Addon>).
Accessor methods are available for:

  - retrieving the list of registered or loaded add-ons (terminology
    explained in $FG_ROOT/Docs/README.add-ons);

  - checking if a particular add-on has already been registered or
    loaded;

  - for each add-on, obtaining an Addon instance which can be queried
    for its name, id, version, base path, the minimum and maximum
    FlightGear versions it requires, its base node in the Property Tree,
    its order in the load sequence, short and long description strings,
    home page, etc.

The most important metadata is made accessible in the Property Tree
under /addons/by-id/<addon-id> and the property
/addons/by-id/<addon-id>/loaded can be checked or listened to, in
order to determine when a particular add-on is loaded. There is also a
Nasal interface to access add-on metadata in a convenient way.

In order to provide this metadata, each add-on must from now on have in
its base directory a file called 'addon-metadata.xml'.

All this is documented in much more detail in
$FG_ROOT/Docs/README.add-ons.

Mailing-list discussion:

  https://sourceforge.net/p/flightgear/mailman/message/36146017/
2017-12-08 00:36:41 +01:00
James Turner
ac50a3c7ed Restore OSG 3.2 compilation support 2017-12-05 21:39:30 +00:00
James Turner
3ffed7d867 Style singleton for the QML UI 2017-12-05 21:30:09 +00:00
James Turner
31c781257b Remove obsolete UI files 2017-12-04 22:34:39 +00:00
James Turner
d34edaa569 Pure QtQuick aircraft-UI
Moves previews, searching, rating handling and extended aircraft
information entirely into QQ. Many cosmetic tweaks and improvements
still to come.
2017-12-04 22:34:39 +00:00
James Turner
041b9527d3 Seperate aircraft cache from the model.
Allows exposing aircraft data to QML (via a helper object) outside the
context of the model.
2017-12-04 21:48:20 +00:00
James Turner
78950fea57 Fix crash on reset if terrasync is disabled
Also use C++11 iteration for group names in reset start code.
2017-12-04 21:41:05 +00:00
James Turner
5dcfdf593a Merge /u/sanhozay/flightgear/ branch sanhozay into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/101/
2017-11-27 17:09:04 +00:00
ThorstenB
147ff104cd Adds support for NMEA messages for traffic reporting (flarm). Also extends the NMEA base class to handle bidirectional communication. Allows FlightGear to feed position and traffic data (for multi-player and AI aircraft) to NAV/moving-map clients, like xcsoar, skydemon, skymap etc. Some basic flarm configuration commands are also emulated, to properly persuade the clients. By default, all moving aircraft are reported (traffic information). Actual threat-alerts are also supported, but require the installation of the "TCAS instrument". 2017-11-24 22:54:32 +01:00
Gijs de Rooy
8ca9dd89c9 QtLauncher: fix aircraft ratings
Index of rating indicators starts at 0 while ratings that correspond to a point/star/dot start at 1
2017-11-22 16:35:21 +01:00
ThorstenB
ad866afd81 Revised nmea and Garmin protocol classes.
The Garmin protocol implementation really is an NMEA protocol with a few
extra messages. Instead of duplicating the code, introduce the NMEA protocol
as a base class, which is reused for the Garmin class. The input/output
has not changed at all (and it maintains the FG-specific quirks, like our
NMEA class using LF-only linefeeds, while the Garmin protocol uses
CR-LF linefeeds.
2017-11-19 17:33:27 +01:00
ThorstenB
6ff4805361 TCAS: add default value when checking valid flag 2017-11-19 17:32:49 +01:00
ThorstenB
19b19f05bd Correct range checks for network protocol parameters.
Several checks were off by one, resulting in a segfault when only one
parameter was missing.
Also improve error messages, giving details about what is expected.
2017-11-19 17:30:12 +01:00
ThorstenB
27e2776890 Minor cleanup in parse_port_config. 2017-11-19 17:30:05 +01:00
Florent Rougon
94a8ba8f9b Add missing space in a log message 2017-11-19 11:14:51 +01:00
Florent Rougon
83fef08a04 Use common definition of simgear::enumValue() from <simgear/sg_inlines.h>
This avoids code duplication.
2017-11-19 08:23:14 +01:00
Florent Rougon
0537d569d5 Remove method FGAirport::isAirportType()
FGAirport::isAirportType() was redundant with
FGPositioned::isAirportType(). Remove the former and change existing
calls to use the latter.
2017-11-16 20:28:00 +01:00
Florent Rougon
a2254d891a Add missing include <algorithm> for std::max() and std::min()
<algorithm> was missing in src/AIModel/AIFlightPlanCreate.cxx and
src/Navaids/routePath.cxx. Thanks again to Alan Teeder for the reports!
2017-11-16 12:54:49 +01:00
Florent Rougon
0dbb0dff9e Three Nasal properties of waypoint objects now accessible: airport, runway, navaid
Waypoint objects used in Nasal code can now return their airport,
runway or navaid object (Nasal ghost). More precisely:
  - if waypoint 'wpt' was made from an airport object[1], then
    'wpt.airport' is this airport object;
  - if waypoint 'wpt' was made from a runway object[2], then
    'wpt.runway' is this runway object, and 'wpt.airport' is the
    airport containing that runway;
  - if waypoint 'wpt' was made from a navaid object[3], then
    'wpt.navaid' is this navaid object.

When one of the three properties 'airport', 'runway', and 'navaid' is
not applicable to a given waypoint due to the type of the underlying
FGPositioned, its value is nil.

The code for these properties was already mostly there, but
unreachable from Nasal.

[1] For instance, with createWPFrom(airportinfo("LOWI"))

[2] For instance, with createWPFrom(airportinfo("LOWI").runway("26"))

[3] For instance, with:

      var apt = airportinfo("LOWI");
      var navaid = findNavaidByFrequencyMHz(apt, 109.7);
      var navaidWpt = createWPFrom(navaid);
2017-11-16 11:22:39 +01:00
Florent Rougon
91470cbc54 Add FGPositioned static methods: isAirportType(), isRunwayType(), isNavaidType()
For consistency, define these three static methods in FGPositioned.
FGPositioned::isAirportType() is the same as FGAirport::isAirportType()
(piece of code moved from airport.cxx to positioned.cxx, and
FGAirport::isAirportType() now calls FGPositioned::isAirportType()).

- FGPositioned::isAirportType() returns true for AIRPORT, HELIPORT,
  SEAPORT;
- FGPositioned::isRunwayType() returns true for RUNWAY;
- FGPositioned::isNavaidType() returns true for NDB, VOR, ILS, LOC, GS,
  DME, TACAN.
2017-11-16 11:22:39 +01:00
Florent Rougon
9d4cbb005f Update header comment of src/Airports/airport.cxx 2017-11-16 11:22:39 +01:00
Florent Rougon
e68e73d252 Add missing include <algorithm> for std::max()
<algorithm> was missing in src/Instrumentation/airspeed_indicator.cxx
and src/Instrumentation/tacan.cxx. Thanks to Alan Teeder for the
reports.
2017-11-16 11:20:24 +01:00
James Turner
8fc04fdfb3 Fix Windows build for launcher changes 2017-11-15 22:04:03 +00:00
James Turner
2d663f2509 Fix crash with adding catalogs in the launcher
Change how we get notified about catalog changes, so we can remove
our hook and hence not leave a dangling pointer.

Fixes https://sourceforge.net/p/flightgear/codetickets/1994/
2017-11-15 21:46:57 +00:00
James Turner
7305b20483 Hopefully pacify GCC 4.8.x 2017-11-15 21:18:24 +00:00
James Turner
72ca36535a Fix the PUI map ruler feature, use right-click
The OSG Ctrl to right-click mapping was breaking this on Mac, but
changing that will break other things, so move the ruler feature from
‘ctrl left click’ to a simple ‘right click’ which ends up being the
same on Mac anyway.
2017-11-15 17:02:25 +00:00
James Turner
723e631f87 Restore PUI scrolling event behaviour
Fixes zooming in the map, for example.
2017-11-15 16:35:07 +00:00
James Turner
15fbf1f9cd Merge /u/thbr/flightgear/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/106/
2017-11-15 08:01:07 +00:00
ThorstenB
cae4523d97 Completely removed obsolete debug code
as suggested by James.
2017-11-14 20:39:27 +01:00
ThorstenB
5f994c94b9 TCAS: do not process invalid AI models 2017-11-14 20:39:13 +01:00
James Turner
78bacefb60 Advanced weather support in the launcher 2017-11-14 17:54:22 +00:00
James Turner
daedf1e546 PUI dialog correct positioning on HiDPI displays
Apply the device-pixel-ratio when calculating the initial position of
PUI dialogs, so they appear correctly (eg, centered) when running with
device-pixel-ratio != 1.0
2017-11-14 17:30:31 +00:00
James Turner
b870b3f022 Fix wrong launcher aircraft name on startup
The mapping from aircraft URI to name was wrong for local (non-package)
aircraft, as spotted by Thorsten Renk. Note other data (thumbnail) is
still incorrect, but another change I have pending will replace this 
code anyway so only doing the simple fix for now.
2017-11-14 17:30:31 +00:00
ThorstenB
6077ef8cdd Remove unused copy&pasted nmea code from other protocol's source. 2017-11-13 20:40:41 +01:00
ThorstenB
f6ce434241 Disabled forgotten debug output. 2017-11-13 20:40:36 +01:00
ThorstenB
dd7d54cfcc Do not crash when specifying an unsupported transport medium for an I/O protocol. 2017-11-13 20:40:23 +01:00
Florent Rougon
2bf5a96aec Add two missing includes for <algorithm> 2017-11-13 15:58:08 +01:00
James Turner
20311c1956 Sorting parking candidates by size.
Ensures we only assign the smallest candidate parking, so tiny jets
don’t steal stands from A380s.
2017-11-02 17:21:27 +00:00
Erik Hofman
f13edf01fa Merge branch 'next' of ssh://git.code.sf.net/p/flightgear/flightgear into next 2017-10-31 10:54:21 +01:00
Erik Hofman
5f828894df Update to AeonWave version 3.0+ 2017-10-31 10:53:34 +01:00
James Turner
682c229313 Preserve loaded flight plan departure/arrival
When loading or cloning, don’t flag the departure and arrival as
changing, since this forces it to be discarded and rebuilt.
2017-10-29 14:00:59 +00:00
James Turner
ea31cb30e3 Change Nasal navaid searching API to handle units
Add explicit findNDBByFrequencyKHz, and rename the generic one to
explicitly use MHz, but exclude searching for NDBs.
2017-10-29 12:24:05 +00:00
Florent Rougon
86aaaf6de9 Process the --addon option in the standard way
Doing the option processing in Options::parseOption() has drawbacks:
  - doesn't work well upon reset;
  - doesn't work in the built-in launcher Additional Settings box.

Options::processOptions() is invoked both upon reset after the property
tree has been reset, and by the built-in launcher to process options
given in the Additional Settings box. This is not the case of
Options::parseOption() which is better for... parsing. :-)

Also use SGPath::fromLocal8Bit() to decode the path argument of --addon.
2017-10-23 09:18:51 +02:00
James Turner
e090427591 Better fix for CanvasWidget transparency
Use osg GLExtensions to retrieve glBlendFuncSeperate on Win32
2017-10-22 19:25:46 +01:00
Alessandro Menti
89ca665bfb
PUICamera Linux compilation fixes
* Correct the filename case in the #include directive in PUICamera.cxx,
  so that compilation succeeds on case-sensitive filesystems.
* Add the PU_SCROLL_UP_BUTTON and PU_SCROLL_DOWN_BUTTON #defines, as
  they are missing from some systems which ship old versions of the PUI
  library.
2017-10-21 11:20:07 +02:00
James Turner
c1df6e9d15 Hack to fix Windows build.
glBlendFuncSeperate will need some ugly trick to use in CanvasWidget, I better find another way.
2017-10-20 17:25:06 +01:00
James Turner
804dc4e74a Steps to make PUI optional, HiDPI tolerant.
Move all PUI event and rendering into a custom camera, which can be
rendered via an FBO to account for display-resolution scaling (HiDPI).

Start wrapping PUI calls in #ifdefs so PUI can be disabled at compile
time; a run-time switch is trivial now but not implemented yet.
2017-10-20 12:10:51 +01:00
Richard Harrison
9d590feaf3 Add support for fonts from the property tree for PUI dialog.
This permits, for example the following

		<font>
            <property>sim/gui/selected-style/fonts/nasal-editor</property>
		</font>
2017-10-15 21:50:41 +02:00
Richard Harrison
5af55a1409 Copy currently selected gui style tree to sim/gui/selected-style
This makes it considerably easier to reference an item from the currently selected style without having to lookup the selected style index and then use that to select the appropriate element from the styles/ tree
2017-10-15 21:49:40 +02:00
Stuart Buchanan
02ceb8832a Correct spacing of settings migration dialog 2017-10-13 17:36:20 +01:00
James Turner
2d5f56a05d Fix build with Qt < 5.6 2017-10-09 12:15:40 +01:00
James Turner
2e37fabd80 Fix crash with Qt < 5.9 in thumbnail items.
Qt 5.4, etc will work now
2017-10-09 10:37:50 +01:00
James Turner
907420d3f4 Windows / non-Qt build fixes 2017-10-05 15:02:30 +01:00
James Turner
e022e4fed5 Command / property bridges for QML / QtQuick 2017-10-05 12:38:27 +01:00
James Turner
2eab935dff Canvas proxy for QtQuick rendering
Has zero testing so far, still a work in progress.
2017-10-05 12:37:43 +01:00
James Turner
45cb6849b2 QtQuick drawable for OpenSceneGraph
Still work in progress, especially different threading modes are not
supported yet, and may crash doing QSG synchronisation.
2017-10-05 12:36:19 +01:00
James Turner
343fce4470 Improve mouse-warping with GraphicsWindowQt5 2017-10-03 08:21:15 +01:00
James Turner
b7a2e993b6 Fix crash in traffic code
Hit an exception where no runway node was found creating the landing taxi.
Probably should not happen but anyway let's not crash
2017-09-29 12:49:22 +01:00
James Turner
a4f1f8aca1 Fix error in setSpeed / setAltitude from Nasal
https://sourceforge.net/p/flightgear/codetickets/1992/
2017-09-29 12:39:30 +01:00
James Turner
386c13a84d Fix Windows compilation 2017-09-29 09:51:20 +01:00
James Turner
78d735a97b Fix Linux compilation 2017-09-28 15:49:42 +01:00
James Turner
4c4cfb3b44 Clean up CocoaMenuBar code
- remove use of Boost
- remove work-around for macOS < 10.7
2017-09-28 14:02:53 +01:00
James Turner
a89d747348 Unused include 2017-09-26 16:52:48 +01:00
James Turner
3b1b43f864 Include default airport in the location history
Only a quick hack, need to show more context to make this really
useful as a feature.
2017-09-26 16:52:48 +01:00
James Turner
06d206828a De-boost-ify position-init code
Also remove some now redundant parking-availability code, which is now
covered inside the dynamics code.
2017-09-26 16:52:48 +01:00
James Turner
a8e1fd4fd0 Move the user aircraft proxy into the AIManger
This should ensure there is always a proxy for the user in the AI
world for parking and ATC purposes.
2017-09-26 16:52:48 +01:00
James Turner
561e39e94f Quiet a log message. 2017-09-26 16:52:48 +01:00
James Turner
bb6510ad68 De-Boost-ify the AIManger, modernise to C++11 2017-09-26 16:52:48 +01:00
James Turner
972af3f254 Parking selection avoids AIObjects
This ensures AITraffic aircraft avoid parking stands occupied by
other AI objects, such as the user or MP aircraft
2017-09-26 16:52:48 +01:00
James Turner
c47325183c Simplify Qt version checks by requiring 5.4 2017-09-26 16:52:48 +01:00
James Turner
3a8d3506d6 Replace launcher aircraft list with QtQuick version
Improves various flow / layout / usability issues, since delegates
in ListView can do full event interaction.
2017-09-26 16:52:48 +01:00
James Turner
a005273724 Quiet a warning loading some ground-nets 2017-09-22 09:33:03 +01:00
James Turner
6db901a67f Add missing tr/qsTr wrappers to the launcher
Ensure all user-facing strings are annotated with translation macros,
so they can be translated soon.
2017-09-22 09:32:47 +01:00
James Turner
69934e04a6 Probably fix for Bug 1972 - AI parking positions
https://sourceforge.net/p/flightgear/codetickets/1972/
2017-09-21 18:37:43 +01:00
James Turner
66eb3d2690 Use a unique_ptr to manage FGAIFlightPlan 2017-09-21 18:37:14 +01:00
James Turner
c4aa3434ab Fix WS 2.0 paths to live inside a Terrain/ prefix 2017-09-21 17:48:30 +01:00
Florent Rougon
5fbf5fceab Fix build error in src/Main/test_autosaveMigration.cxx
The previous commit (32cc9be007) removed the second parameter of
FGGlobals::loadUserSettings(). Adapt testMigration() accordingly.
2017-09-20 22:19:01 +02:00
James Turner
32cc9be007 Enable auto-save migration.
When performing the migration, let the user know it happened, and to
be alert for any issues that might occur.
2017-09-20 17:57:25 +01:00
James Turner
c99504f321 Fix crash in Nasal _setChildren
We had a bit of stack smashing happening, fortunately the macOS runtime
is pretty good at detecting such things.
2017-09-19 08:20:08 +01:00
James Turner
351f6063c9 Permit more screenshots. (More than 1000) 2017-09-19 06:55:22 +01:00
James Turner
8e58c54544 Make routeRestrictionFromArg more robust. 2017-09-19 06:42:39 +01:00
James Turner
fba649a0e6 Fix crashes calling leg.setSpeed|Altitude(nil)
Treat passing nil as clearing the speed / altitude restriction for
the leg. Also default the second arg to ‘at’, so calling these
methods with a single numerical arg is permitted.
2017-09-19 06:36:32 +01:00
Torsten Dreyer
a82d955554 set fallback location to LKPR 2017-09-18 19:55:10 +02:00
James Turner
1b8d0fb277 Nasal FlightPlan insertWp[After] return the leg. 2017-09-11 23:43:59 +01:00
James Turner
b0de9d5a11 Make Nasal Flightplan.indexOfWP work on Legs 2017-09-11 23:30:53 +01:00
James Turner
2acf2aa5ba Saving flightplans from Nasal.
Usage:

var fp0 = flightplan();
fp0.save("p6.xml");
2017-09-11 23:24:25 +01:00
James Turner
ddea3929f8 Fix clearing FlightPlan elements from Nasal.
Clearing the departure or destination elements, including the SID,
STAR or approach to nil, now works, e.g:

var fp = flightplan();
fp.departure = nil;
2017-09-11 23:24:24 +01:00
James Turner
194d17ec94 Add createFlightplan Nasal hook
Allows creating a new, inactive by empty Flightplan from Nasal. Can
also be used to load a flightplan:

var fp1 = createFlightplan();
var fp2 = createFlightplan("p3.xml");
2017-09-11 23:24:24 +01:00
James Turner
ca067b1a82 Fix Nasal owning of FlightPlans
Also refactor delegate ownership to be flat instead of nested, much
easier as the number of delegates has grown.
2017-09-11 23:24:24 +01:00
James Turner
d422992b2d Re-indent my fix from yesterday to 2-space mode.
This will fix a misleading indentation warning from GCC, although to
doubly sure I also added explicit braces to the code.
2017-09-09 19:03:53 +01:00
James Turner
bf2c363e50 Fix carrier starts
Rewrite the position-init code for carrier starts, to precisely wait
on the carrier model being loaded, before proceeding with FDM init.
This allows the FDM to see the correct carrier model in the ground
cache, and hence avoids starting in the water.

To implement this, the CheckSceneryVisitor is used to force the carrier
model to be loaded while the splash-screen is visible.
2017-09-08 22:31:22 +01:00
James Turner
91d3229514 Catch large ground-cache requests.
In some testing, JSBsim sometimes passed extremely large values into
this function (larger than the radius of the earth). This causes
every tile on the planet to be scheduled if using the standard STG
terrain, effectively blocking startup.

This code allows us a chance to catch this case via logging, but does
not fix the underlying issues.
2017-09-04 22:48:38 +01:00
James Turner
657f811548 Activating a FlightPlan sets it on the route-mgr
This enables the Route-manager FP to be replaced from Nasal, as well as
via the load-route command.
2017-09-04 22:48:38 +01:00
Richard Harrison
5f3e4bdde7 Fix for the pilot list (and possibly other things) that fail with the new _setValues API.
The problem is that the two aren't functionally equivalent; the Nasal version would fail silently - whereas the new C++ version gave a runtime error.

The immediate fix is therefore to simply remove the runtime error.
2017-08-30 22:19:01 +02:00
James Turner
b6bfe45759 Change how anti-aliasing is requested by the launcher.
This seems to fix https://sourceforge.net/p/flightgear/codetickets/1971/ 
for me, but I have some reservations about my testing of this, so
pushing this change to get wider feedback.
2017-08-29 14:22:32 +01:00
Florent Rougon
30aebc783b FGLogger::Log: use std::unique_ptr to manage the sg_ofstream instance
No more raw pointer; RAII is good.
2017-08-27 16:13:01 +02:00
Florent Rougon
b56f694ffd FGLogger: fix error handling when file opening fails; modernize and simplify
The bug fix is:

-    if (!log.output) {
+    if ( !(*log.output) ) {

(i.e., testing the sg_ofstream instance instead of its address) and then
ensuring that the corresponding Log instance is removed from _logs and
destroyed.

The "destroy" part is made automatic by using std::unique_ptr instead of
raw pointers. This allows to simplify several areas of the code.

Don't provide custom definitions for the constructor and destructor of
FGLogger anymore, now that they don't need to do anything: IIRC, this
allows compilers to do some optimizations according to the C++ standard.
2017-08-27 16:13:01 +02:00
Florent Rougon
2a5e3d06b2 Security: don't allow FGLogger to overwrite arbitrary files
Since the paths of files overwritten by FGLogger come from the property
tree[1], they must be validated before we decide to write to these
files.

[1] Except for the "empty" case, which uses the default name
    'fg_log.csv'. This file is deemed acceptable to overwrite in the
    current directory, as the name is completely fixed and clearly
    FG-specific.
2017-08-27 16:09:18 +02:00
Florent Rougon
c7a2aef599 Call fgInitAllowedPaths() earlier: after Options::processOptions()
Call fgInitAllowedPaths() right after Options::processOptions() (which,
among other things, determines $FG_ROOT and processes
--allow-nasal-read). This way, fgInitAllowedPaths() can be used in much
more code, such as when initializing subsystems.
2017-08-27 16:07:51 +02:00