1
0
Fork 0
Commit graph

10360 commits

Author SHA1 Message Date
James Turner
9098e47664 Launcher: use new SGGeod <-> string functions
This relies on the latest Simgear to provide these functions.
2018-06-25 18:12:43 +01:00
James Turner
ca785f01e5 Launcher: Fix a crash in the new location code 2018-06-25 16:40:00 +01:00
James Turner
7d84a03dea WebSocket property-mirror: optimise JSON building
Work around some awful cJSON performance when building large arrays,
greatly speeding up remote-canvas updating
2018-06-24 23:22:30 +01:00
James Turner
be3e927d4e Property-mirror protocol C++11 tweaks 2018-06-24 14:32:35 +01:00
James Turner
0987b82fa8 Launcher styling tweaks 2018-06-24 11:15:01 +01:00
James Turner
c38e820756 Launcher: fix Windows build 2018-06-23 17:55:39 +01:00
James Turner
1bf52662ae Launcher converted to QQ2
This simplifies the launcher's rendering since the widget-based
code is gone, various things get hooked up as a result. Styling
fixes everywhere as well.

Menubar on Linux/Windows needs to be re-added.
2018-06-23 17:14:21 +01:00
Bertrand Coconnier
f81c01465e Fixed crashes while repositioning the aircraft. 2018-06-22 23:16:22 +02:00
James Turner
01f05b5383 Launcher: styling improvements everywhere
Use a standard text component to ensure the base font size can be
controlled centrally.
2018-06-21 22:54:37 +01:00
James Turner
225a128540 Consistent capitalisation of ACTIVE 2018-06-21 17:34:16 +01:00
James Turner
24d877fc18 Launcher: experiment with HiDPI airport icons 2018-06-21 16:16:35 +01:00
James Turner
240ac0f458 Launcher: optional alt/spd/hdg select
Bring this feature up to parity with the release branch.
2018-06-21 15:27:48 +01:00
James Turner
198f9ccb70 Tweaks to location search based on feedback 2018-06-21 14:34:05 +01:00
Bertrand Coconnier
6d83e6978d Sync'ed JSBSim
* Removed the IAS dependency to the Pitot tube angle (real Pitot tube are less sensitive to AoA than was simulated)
* Removed the class FGUDPOutputSocket which was redundant with FGOutputSocket
* Added a new type of functions "template" which are intended to prevent duplication of functions. For now, they are available to compute output values and script notifications.
* Aerodynamics forces can now be specified in stability axes.
* Density altitude and pressure altitude are computed according to ISA standard atmosphere 1976.

New properties:
* Flight path angle (gamma) in degrees
  - fdm/jsbsim/flight-path/gamma-deg
* Aerodynamics forces in stability axes
  - fdm/jsbsim/forces/fsx-aero-lbs
  - fdm/jsbsim/forces/fsy-aero-lbs
  - fdm/jsbsim/forces/fsz-aero-lbs
* Aerodynamics moments in stability axes
  - moments/roll-stab-aero-lbsft
  - moments/pitch-stab-aero-lbsft
  - moments/yaw-stab-aero-lbsft
* Pause JSBSim
  - fdm/jsbsim/simulation/pause

* Fixed multiple bugs.
2018-06-19 23:08:07 +02:00
James Turner
ccabc052bc Restore alphabetical sort of aircraft 2018-06-16 22:52:59 +01:00
James Turner
670bc17def Launcher: improve transparent panel legibility 2018-06-16 22:17:45 +01:00
James Turner
e8ef24a54f MSVC warning fixes 2018-06-16 13:03:36 +01:00
James Turner
82f23e556e Improve MSVC project generation
- set startup project to fgfs
- guess a value for PATH based on the build config
2018-06-16 13:03:23 +01:00
James Turner
7c9b1b391f Guard against SGPath::document()s returning null
Underlying bug is fixed in SimGear, but let's also guard against a failure here,
by falling back to FG_HOME on Windows.

For discussion see:
https://sourceforge.net/p/flightgear/codetickets/2019/
2018-06-15 11:11:05 +01:00
James Turner
dde2ef5972 Fix compilation on Qt 5.4 2018-06-15 10:33:11 +01:00
James Turner
6f8a788d80 Launcher bugfix: custom download dirs
Partial fixes for:
https://sourceforge.net/p/flightgear/codetickets/2019/

But further work needed on Windows I expect, will do that now.
2018-06-14 16:28:03 +01:00
James Turner
2e438e357e Launcher: fix scenery path re-ordering 2018-06-13 11:03:06 +01:00
James Turner
c3414a63c2 Fix the launcher summary license link 2018-06-13 10:55:04 +01:00
James Turner
29ec23e582 Ensure launcher terraysync setting is used
Terrasync state is auto-saved, so we need to force the value each start,
to avoid a previous value getting used.
2018-06-13 10:52:35 +01:00
James Turner
b2f90fbfa4 Launcher: location page in QtQuick
This moves the last page into QQ2 implementation, in preparation
for making the top-level UI be a QQuickWindow.
2018-06-13 10:01:04 +01:00
James Turner
7e8b1b67e7 JS comparison type safety warning fixes 2018-06-13 10:01:04 +01:00
James Turner
e3fd7f7d61 Launcher warns when setting conflicting args
Display a warning when the user tries to set arguments in additional
settings which the launcher will also set / conflict with. Blacklist
is still evolving, and we don’t actually prevent the user from running,
since maybe they are doing something special
2018-06-13 10:01:04 +01:00
Stuart Buchanan
236b7c0f83 Multiple LoD levels of MP Aircraft
At a basic level, the implementation supports two levels of LoD:

FAR from /sim/rendering/static-lod/ai-range-bare to /sim/rendering/static-lod/ai-range-detailed.
NEAR from /sim/rendering/static-lod/ai-range-detailed to 0.

(First of many digressions:  If /sim/rendering/static-lod/ai-range-mode-pixel=true then instead of measuring LOD distance in meters, the size of the object in pixels is used, so the ranges are different)

The models that are loaded for FAR and NEAR depend on a combination of the availability of a model in /AI/AIrcraft/ and FG_AIRCRAFT directories.

If /sim/rendering/static-lod/ai-range-detailed=false then an AI aircraft will be used in preference for both NEAR and FAR.

If /sim/rendering/static-lod/ai-range-detailed=true then an AI aircraft will be used for FAR, and an FG_AIRCRAFT for NEAR.

Obviously if only an AI or a FG_AIRCRAFT model are available, that will be used for the entire NEAR+FAR range.
2018-06-05 21:58:03 +01:00
Erik Hofman
2edf1443d3 Detect AeonWave and if it is installed use it, otherwise fall back to OpenAL. Also let get_available_devices() use C++ strings instead of const char* 2018-06-02 14:06:36 +02:00
James Turner
100155e37e Launcher: improve state handling
Fix some dumb bugs and improve selection of states inside the launcher
2018-06-01 15:11:30 +01:00
James Turner
b52cdf8723 Vector helipad symbol
Nicer rendering when zooming in, and easier to indicate the selected
helipad, in the same was as runways
2018-06-01 15:11:30 +01:00
Richard Harrison
ff302a307d Canvas Screen image provider:
Change delay to 15 seconds; and alert that there is a delay.

The 15 second delay should be sufficient to allow the compressor to finish processing; and in anycase this is running in a thread and therefore shouldn't freeze the whole sim for the delay period.
2018-06-01 00:45:40 +02:00
Richard Harrison
f17685ca79 Merge /u/geoffmc/flightgear/ branch msvc-build2 into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/133/
2018-05-31 22:39:11 +00:00
James Turner
19ec0027e8 Launcher: heliport / helipad fixes 2018-05-31 22:12:08 +02:00
James Turner
3da6d42945 Launcher: fix location not saving
When the history was empty, the ‘don’t re-insert’ logic was breaking,
because the beginning and end of the vector range were equivalent.
2018-05-31 22:12:08 +02:00
Geoff McLane
5d19a88446 Use SGTimeStamp::sleepForMSec(55) to replace sleep/Sleep 2018-05-30 11:59:25 +02:00
Erik Hofman
dcec806337 Allow for multiple named chatter queue's 2018-05-29 09:31:01 +02:00
James Turner
e7cb004690 Merge /u/thomass-22/flightgear-fork/ branch CanvasImageByHttp into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/131/
2018-05-28 21:02:45 +00:00
James Turner
a5aa6fb61b Cleanup the resource manager when deleting globals 2018-05-28 22:43:05 +02:00
James Turner
6906ce40fd Launcher: show navaid diagram for lat-lon position
Another change broke showing the navaid diagram when entering a lat,lon
position in the launcher
2018-05-28 22:43:05 +02:00
Stuart Buchanan
9de3672b62 Property to toggle between preferred MP models
/sim/multiplay/use-detailed-models can be used to set whether
we will prefer models from Aircraft/ (true) or from AI/ (false).

Default (set in defaults.xml in fgdata) is true.
2018-05-28 20:54:09 +01:00
James Turner
ea9ae959e4 PUI: simplify dialog binding handling
Fixes a perf issue when opening and closing dialogs which uses
bindings, reported by Michael Danilov - huge thanks for his help
in tracking this down.

This bug was caused by the SGBinding ‘don’t delete properties’ change,
since the PUI code was copying nodes to work-around that problem. With
SGBinding fixed, the copying caused huge numbers of nodes under
/sim/bindings/gui
2018-05-28 19:51:41 +02:00
James Turner
16b8335a5e Launcher MP fixes:
- connecting works
- no instant exit with an invalid/missing server
2018-05-28 18:39:35 +02:00
James Turner
054c4bec0f Bug-fix: for RMB-look / PUI interaction issue
When releasing the RMB over a PUI dialog, we no longer get stuck in
drag mode due to the buttons map getting out of state. This is slightly
ugly work-around, better fix to follow hopefully (needs better OSG
integration)
2018-05-23 14:16:48 +01:00
Edward d'Auvergne
c8729be38f Init: Minor log formatting fixes. 2018-05-23 12:19:23 +02:00
James Turner
1b5d557c86 Fix launcher adding aircraft folder with ‘Aircraft’ subdir
We validate the modified path but didn’t actually use it.
2018-05-23 10:24:11 +01:00
James Turner
dc6a884928 Generalise AI-model search ordering in AIBase
Make the policy of using models in FGData/AI more flexible, with the
option to prefer normal data sources. Keep the existing behaviour for
everything except multiplayer aircraft, where we now prefer the data
model (presumably, an installed aircraft) over the AI one.
2018-05-23 09:46:05 +01:00
Richard Harrison
5988fe24ab Multiplayer: use previously duplicated bits for bools [91] and [92]
bool[42] and bool[72] used to have two bits (i.e. transmitted twice). This was not harmful just wasteful.

Mapped the first of the duplicated bits of each of these to new bools at the end of the list. These two properties will not be compatible with pre 2018.2.
2018-05-17 09:32:42 +02:00
James Turner
8986abeb52 Fix PUI mouse for non-pass-through mouse modes
As reported by Michael Danilov, ensure sticky mouse modes for view and
flight controls don’t send button events to PUI
2018-05-14 14:41:06 +01:00
James Turner
6f5fa7a3c0 Tweak to splash authors display appearance
Handle long author tags better for 2018.2 (real solution coming in
the next version with improved author meta-data)
2018-05-14 13:00:39 +01:00
Richard Harrison
5fe24f741c Multiplayer: fix bool transmission when all 0
If all bools in a block are 0 the block would never be transmitted, i.e. fix a bug whereby each block of 0..30 used to need at least one true value to transmit the block.
2018-05-13 06:45:44 +02:00
Richard Harrison
d6556f5c94 Multiplayer: consistent callsign in properties.
To ensure consistent properties also tie the callsign to where it would be in a local model.
2018-05-13 06:45:44 +02:00
James Turner
1555e1d6cb Launcher: fixes for lingering previews
Also better fix for some ‘assign Qurl from undefined’ warnings
2018-05-09 20:11:58 +01:00
James Turner
8738e18921 Launcher: spinner when adding a catalog 2018-05-09 19:43:44 +01:00
James Turner
57a866fc60 Scrollbar for launcher settings 2018-05-09 19:35:24 +01:00
James Turner
b6f7f17c5c Launcher: fix warning about Qurl / undefined 2018-05-09 19:35:12 +01:00
James Turner
607cef530a Add the default tutorial airport to the launcher 2018-05-08 23:18:19 +01:00
James Turner
d4cd82b521 Fixes for Qt 5.4 compat 2018-05-08 22:17:07 +01:00
James Turner
ee48fddd5e Compute scrollbar extent using alternate props
This computation is close enough, and removes the need for private
headers.
2018-05-08 22:16:53 +01:00
James Turner
0da17d895c Fix ‘add-default-catalog’ flow from aircraft list 2018-05-08 06:52:07 +01:00
James Turner
42936f4f22 Launcher: fix date-time picker 2018-05-07 22:19:34 +01:00
James Turner
552df27341 NavData API additions 2018-05-07 16:53:43 +01:00
James Turner
71a1348037 UI tweaks for the launcher 2018-05-07 16:53:25 +01:00
ThomasS
2cbd660dc9 Feature for requesting canvas images per HTTP as described in http://wiki.flightgear.org/Read_canvas_image_by_HTTP 2018-05-03 10:25:34 +02:00
James Turner
102fe04e91 Import PLIB JS code into FlightGear
- will permit bug-fixing which cannot occur for
  official PLIB.
2018-05-03 00:02:09 +01:00
James Turner
0762af76c2 Indexed-device config files for event-input layer
This allows multiple identical devices with event-input, using the
same syntax as for PLIB JS
2018-04-29 21:52:56 +01:00
James Turner
2ce4bcb666 Allow distinguishing PLIB joysticks by index (count)
This gives a simple way to have different config files for multiple
identical devices, such as the Saitek/Logitech throttle-quadrant
2018-04-29 19:56:01 +01:00
James Turner
0cdd6c4e70 Re-init support on HID-event-input
To ensure the device-configuration-map is re-read, added a default
ctor and moved the config-map creation to init()
2018-04-29 11:25:51 +01:00
James Turner
13857e001e Add override decls in AIManager
(Done while tracing another crash, but committing separately)
2018-04-29 10:12:40 +01:00
James Turner
2a31893862 Fix a crash when updating the user aircraft 2018-04-27 23:32:28 +01:00
James Turner
aed59ea4bf Fix an assert with autopilot groups
(Missing call to the base class in bind())
2018-04-27 13:57:32 +01:00
James Turner
e45c93dbc7 launcher: explicitly request desktop OpenGL
This should help with a white-screen in the launcher Gijs reported,
due to our Optimus selection symbol interacting weirdly with the
dynamic OpenGL detection in Qt
2018-04-27 09:53:49 +01:00
James Turner
6a6c9bcda2 Merge /u/thomass-22/flightgear-fork/ branch additionalAiInfo into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/129/
2018-04-25 16:26:54 +00:00
James Turner
1fcd86a8a9 Launcher: fix missing import for Style 2018-04-25 16:24:14 +01:00
James Turner
fe779fc579 YASim: Make some name-spacing explicit
Needed for upcoming subsystems change
2018-04-25 08:49:17 +01:00
ThomasS
3dcac53952 camelCase identifier in code and hyphenated property names. Suffix "-sec" is used because it complies to other timestamp properties in the property tree. Suffix "utc" is not used because the property just reflects an internal value used by the AI system. Whether it is UTC (currently it is) is up to the AI system and cannot be defined by the property name. 2018-04-24 09:54:35 +02:00
ThomasS
94f82c47ef Additional departure airport/time and arrival airport/time information in the property tree for AI aircraft. 2018-04-24 06:20:28 +02:00
James Turner
7ae8137b77 Launcher: nicer looking summary transparency 2018-04-16 15:41:48 +01:00
James Turner
7431fb12b3 Launcher UI feedback: mark history buttons as disabled 2018-04-16 15:13:06 +01:00
James Turner
8a390dab2a Add-ons page UI improvements based on feedback 2018-04-16 15:04:21 +01:00
Stuart Buchanan
510f2de84d Expose additional Navaid fields for use by Nasal 2018-04-16 13:37:17 +01:00
Edward d'Auvergne
667cd86656 fgValidatePath: Typo fix allowing the animated jetways to save files again.
The typo was introduced in 7e607b8403 from July
2016.  The result was a series of alert messages such as:

savexml: writing to 'Path "/flightgear/home/.fgfs/runtime-jetways/0.xml"' denied
(unauthorized directory - authorization no longer follows symlinks)
2018-04-13 09:08:07 +02:00
James Turner
22cf6bd5e4 Fix a crash found by a space cowboy :)
Thanks to Tobias Dammers
2018-04-12 17:38:12 +02:00
James Turner
921f29fbfe HID-Input disambiguation tweaks 2018-04-09 22:03:49 +01:00
James Turner
361225f919 Launcher: fix the descriptionForState/null warning 2018-04-09 17:13:15 +01:00
James Turner
9fbd879c9f Remove a stray log message 2018-04-09 15:52:14 +01:00
James Turner
72f9ff3735 Remove obsolete Launcher files 2018-04-09 15:48:43 +01:00
James Turner
a94d893124 Styling tweak for launcher hangars list 2018-04-09 11:17:15 +01:00
James Turner
2c48914630 One more ATC text formatting fix
As requested by Wkitty on the mailing list.
2018-04-09 09:33:28 +01:00
James Turner
4878b28a22 Fix MSVC build 2018-04-09 01:29:01 +01:00
James Turner
205fadbff3 Stubbing out Add-ons controller
Also CatalogListModel stubs
2018-04-08 23:52:27 +01:00
Edward d'Auvergne
3b79530b06 CMake: Split the target links and includes into separate CMake modules. 2018-04-05 21:06:02 +02:00
Edward d'Auvergne
6a730b5820 CMake: The main sources/headers have been shifted into FG_{SOURCES,HEADERS}.
This allows the sources and headers in src/Main/ to be used by other targets.
They are grouped into the new "Main" flightgear component via the macro in the
FlightGearComponent CMake module.  The bootstrap.cxx file with its main function
has been separated out into a separate variable MAIN_SOURCE for use by the fgfs
binary.

All these files have therefore been removed from the test_suite CMakeLists.txt
file, as they are added via FG_SOURCES and FG_HEADERS.  The MSVC grouping code
also does not need to deal with the now deleted separate SOURCE and HEADER
variables for these files.
2018-04-05 21:06:02 +02:00
Edward d'Auvergne
e88017eba3 CMake: Shifted the Mac bundle commands into its own CMake module. 2018-04-05 21:06:02 +02:00
Edward d'Auvergne
93c4aab885 CMake: Shifted the MSVC grouping code into its own CMake module.
This is for simplifying the main src/Main/CMakeLists.txt file and allowing the
code to be shared with the test suite.
2018-04-05 21:05:54 +02:00
Edward d'Auvergne
f8e57f921d CMake: Shifted the FlightGear embedded resources code into its own CMake module.
This is for simplifying the main src/Main/CMakeLists.txt file and allowing the
code to be shared with the test suite.

The generated source and header files have also been removed from the main
source list and placed in the CMake module as the global variables
EMBEDDED_RESOURCE_SOURCES and EMBEDDED_RESOURCE_HEADERS.
2018-04-05 21:05:30 +02:00
Edward d'Auvergne
bd3a3db50b CMake: Shifted the target setup code into its own CMake module.
This is for simplifying the main src/Main/CMakeLists.txt file and allowing the
code to be shared with the test suite.
2018-04-05 21:05:16 +02:00
James Turner
227dda4df5 ATC spacing improvements by WKitty 2018-04-05 13:07:44 +01:00
James Turner
9000185b92 Improve AI parking-pushback warning message
Specify the airport when a parking has no associated pushback route.
Improvement from WKitty42
2018-04-05 12:58:58 +01:00
Edward d'Auvergne
11f591261e FGNasalSys::setTimer: Timer names now identify the file and line number.
This identifies the function for the callback and allows for better debugging of
the sim and real time SGTimerQueues in the event manager.
2018-03-23 20:07:49 +01:00
Edward d'Auvergne
0f96032487 TestSuite: Shift of the globals unit test helper functions into the test suite.
The setting of the SG log levels and developer mode has been removed as this
clashes with the output control set by the test suite main() function.
2018-03-23 17:26:05 +01:00
Edward d'Auvergne
7616f1ec3e TestSuite: Migration of the posinit unit tests. 2018-03-23 17:26:05 +01:00
Edward d'Auvergne
85ad420be1 TestSuite: Migration of the Add-ons management unit tests. 2018-03-23 17:26:05 +01:00
Edward d'Auvergne
c9122ff84b TestSuite: Converted the old tests/test-mktime.cxx program into a unit test.
This required many time related include files, functions, and variables to be
tested for via CMake, and converted to macros via #cmakedefine, so that they
would be automatically set for the test-mktime.cxx file.
2018-03-23 17:26:04 +01:00
Edward d'Auvergne
941c5dc8f2 Main: Formatting standardization for the src/Main/CMakeLists.txt file.
This includes spacing, tab to space replacements, and alphabetical ordering.
2018-03-23 17:26:04 +01:00
James Turner
01f840487d Split launcher code to fix ownership issues
This avoids passing a QmainWindow into the QML engines, which don’t
seem to handle that very well.
2018-03-22 13:52:03 +00:00
James Turner
f75f413970 Ensure launcher AW toggle overrides the sim setting
Set the property value to false explicitly when BW is requested in
the launcher, otherwise the auto-saved value takes over.
2018-03-22 11:59:15 +00:00
James Turner
28d8317242 Work-arounds for launcher crashes on ‘fly’
Two are enabled, one is disabled for people to test.
2018-03-22 09:32:30 +00:00
James Turner
1c78c65b19 Popup an error box when QtQuick errors occur. 2018-03-20 16:32:31 +00:00
James Turner
010bfc8378 Fix a compile error reported by Edward 2018-03-19 22:33:17 +00:00
James Turner
cb4a823836 Missed some files fixing QQ2 version import 2018-03-19 22:32:23 +00:00
James Turner
4c2e52c2dc Standardise QtQuick version to 2.4
Will fix an issue reported on the forum where a 2.7 dep crept it.
2018-03-19 08:22:11 +00:00
James Turner
e894cb5188 Fix case-sensitivity 2018-03-19 00:36:49 +00:00
James Turner
d3299a1f71 Remove references to deleted files 2018-03-18 22:09:01 +00:00
James Turner
024ffa5e9d Remove obsolete launcher files
Clean-up now widget-based settings are gone
2018-03-18 17:00:54 +00:00
James Turner
19ae26164a Summary page converted to QtQuick 2018-03-18 16:39:17 +00:00
James Turner
eaf89ab23b Avoid use of Connections.enabled for Qt < 5.7 compat 2018-03-18 16:25:48 +00:00
James Turner
7339e261e9 Direct file dialog (no need for QtQuick Controls)
This should simplify the needed packages on Debian, Ubuntu, etc
2018-03-18 16:18:17 +00:00
James Turner
d92647b364 Fix duplicate entries in threaded location search 2018-03-16 10:02:20 +00:00
Florent Rougon
109a59b393 Add-ons: const id; adjust the Addon constructors, remove Addon::setId()
Since the new _storagePath data member internally contains the add-on
id, changing _id after _storagePath has been initialized would make both
data members inconsistent. As changing the add-on id is probably not a
very useful operation, the simplest way to prevent such an inconsistency
from happening is to make Addon's _id data member const (as is already
the case for _storagePath), and thus remove Addon::setId().
Consequently, remove the Addon default constructor too, since add-ons
with an empty id would be ill-formed and couldn't be changed (_id being
const now). This leaves us with one Addon constructor:

Addon(std::string id, AddonVersion version = AddonVersion(),
      SGPath basePath = SGPath(), std::string minFGVersionRequired = "",
      std::string maxFGVersionRequired = "",
      SGPropertyNode* addonNode = nullptr);
2018-03-11 23:17:23 +01:00
James Turner
fa72d8dd06 Popup window tracking helper hooked up 2018-03-11 11:10:02 +00:00
James Turner
37dc418ce1 QtQuick launcher settings implementation
Moves the settings and environment pages of the launcher into QQ2,
and provides more QtQuick items to use.
2018-03-11 11:10:02 +00:00
Florent Rougon
9a044a474b Add-ons: new Addon methods to access the storage area beneath $FG_HOME/Export
New methods Addon::createStorageDir() and Addon::getStoragePath() with
corresponding Nasal bindings in the addons.Addon ghost:

  createStorageDir() method (returns the dir, doesn't fail if it already
                     exists)
  storagePath        read-only attribute to get the dir

The directory reserved for each add-on is
$FG_HOME/Export/Addons/ADDON_ID, but please use the above methods (or
the corresponding C++ ones) to avoid hardcoding such paths in your code.

Also create directory $FG_HOME/Export/Addons in fgInitConfig() as a way
of reserving the namespace, in order to prevent future failures in case
someone would have the strange idea to create it as a file...
2018-03-11 11:30:05 +01:00
Richard Harrison
10caef48b1 Change YASim solution failure message to display as an alert; but not to call exit().
It is the call to exit that causes FG to lock up and become a zombie.

Alternative is to throw an exception, i.e.:
       throw sg_error(std::string("YASim SOLUTION FAILURE:") + a->getFailureMsg(););
2018-03-07 03:09:45 +01:00
James Turner
7b7e50741f Launcher: fix preview image aspect ratio
Accidentally left in a hard-coded 16:9 ratio, no wonder some images got
squished. Shuttle is now re-elongated verticallitaly :)
2018-03-06 18:34:54 +00:00
Richard Harrison
ab8ca2d832 Merge remote-tracking branch 'main-source/next' into next 2018-03-05 23:34:28 +01:00
Richard Harrison
e953951820 Merge remote-tracking branch 'jsb/yasim' into next
This adds the fix for non converging aircraft. Henning has performed a thorough analysis of all of FGAddon and other repositories and there are a few models that fail, however there have always been a few that fail - but with this patch this situation is improving.
2018-03-05 23:32:06 +01:00
James Turner
5020e4655e Launcher: explicit sizes in aircraft list
Fix some scaling issues when mixing pixel- and point- sized fonts,
especially on Windows
2018-03-05 10:49:30 +00:00
Henning Stahlke
12b2022503 YASim add error message, solver shall not quit silently. 2018-03-04 22:18:45 +01:00
James Turner
7f815c4c51 Remove non-functional transparency from PUI map
This alpha blending never worked, and now it really doesn’t work, so
remove it (PUI map is not long for this world, anyway)
2018-03-01 15:55:41 +00:00
James Turner
6e6fafd5b4 Launcher: fix on-disk aircraft variant previews
This fixes e.g the issue with the Shuttle reported by Thorsten, variant
previews are now shown correctly.
2018-03-01 15:39:46 +00:00
James Turner
e571564c59 Launcher: tweak to be compatible with older Qt 2018-03-01 11:34:53 +00:00
James Turner
f760b8cd8f Launcher: fixes for invalid catalog handling 2018-02-28 17:56:40 +00:00
Florent Rougon
f2c050d476 Add-ons: re-add implementation of Addon::getUrls()
The implementation of Addon::getUrls() was mistakenly removed in commit
a137aed541, re-add it.
2018-02-27 13:17:42 +01:00
Florent Rougon
a9084ac561 Add-ons: make NewGUI read dialogs from $addon_dir/gui/dialogs
As for aircraft, an add-on can now add its custom dialogs in
$addon_dir/gui/dialogs. This commit makes NewGUI consider this directory
as a dialog-providing one for each registered add-on.
2018-02-27 13:17:42 +01:00
Florent Rougon
30cfbd1f91 Add-ons: load add-on-specific menu bar items from addon-menubar-items.xml
If an add-on has a file named addon-menubar-items.xml in its base
directory, load it and add its items to the FG menubar.

Logically, fgStartNewReset() should call
flightgear::addons::AddonManager::instance()->addAddonMenusToFGMenubar()
in order to re-add the items, however doing so would cause the
add-on-specific menus to be added one more time on every reset, because
for some reason, commit 45ea8b5daa added
the PRESERVE attribute to /sim/menubar (apparently to preserve the state
of menu entries upon reset?).

Note: the addon-menubar-items.xml files are reloaded during reset,
      however the menu bar doesn't reflect this, since adding the
      reloaded items to the menu bar in fgStartNewReset() would cause
      the add-on-specific menus to appear several times in the menu bar,
      as explained above.
2018-02-27 13:17:42 +01:00
James Turner
4f96039e70 Fix a crash when package data is missing
This may explain some of the erratic startup crashes, due to the
master catalog being out of date for 2018.*
2018-02-27 11:33:40 +00:00
Richard Harrison
a6718cc73d 2018.1: fix default Airport.
As it says in the comments this really shouldn't be hardcoded...
2018-02-27 05:09:11 +01:00
Thomas Geymayer
82078b632b canvas GUI: Cleanup and trigger dragstart/end events 2018-02-25 14:59:56 +01:00
Henning Stahlke
25e34cc49c YASim solver convergence workaround 2018-02-21 07:47:04 +01:00
Thomas Geymayer
e295d991a6 Canvas/PUI: Fix interfering drag 2018-02-21 07:31:47 +01:00
Henning Stahlke
c2e7842110 YASim: attempt to fix MAC calculation for multiple wing sections. 2018-02-20 11:03:40 +01:00
Richard Harrison
48563acdd2 Multiplayer: lag adjustment clock mode initialization.
Ensure the property is initialized to zero during AI MP model binding.
2018-02-17 12:22:14 +01:00
Richard Harrison
40a602d732 Multiplayer: lag adjustment.
Preparation for work on the synchronisation and lag prediction filters that jano has underway - firstly by adding a property to indicate the mode of the clock being used. Pre 2018.1 will be mode 0.
2018-02-16 23:49:27 +01:00
James Turner
234320fe9d Launcher: basic aircraft state selection
Automatic selection in the launcher is disabled for now, since
it needs more testing before release, but the basic UI for selection
is straightforward enough to throw in.
2018-02-11 21:28:25 +00:00
James Turner
a05cdce793 Telent protocol Nasal command 2018-02-11 21:15:45 +00:00
James Turner
bd66bfb696 Fixes spotted by Florent 2018-02-11 21:08:02 +00:00
Henning Stahlke
3bac8b93f2 YASim: revert max solver iterations back to 10000 2018-02-11 16:38:19 +01:00
Henning Stahlke
59c059ddb6 YASim: export wing section MACs 2018-02-11 00:46:10 +01:00
Henning Stahlke
1b21f85c52 YASim CLI tool refactoring 2018-02-11 00:46:10 +01:00
Florent Rougon
da961b97f2 Add-ons: more specific file names for the interface between FG core and add-ons
The add-on framework now uses the following files in each add-on
directory:
  - addon-config.xml (previously: config.xml)
  - addon-main.nas   (previously: main.nas)

This is consistent with the addon-metadata.xml file that is already part
of the interface between FG core and add-ons. The goal is to make it
clearer, when browsing an add-on directory, which files belong to the
"FG core <-> add-on" interface and which files belong to the add-on
proper. This will be beneficial also when more files are added to the
"FG core <-> add-on" interface, such as possibly addon-events.xml in the
future.

This change is incompatible, thus it is the right time to do *before*
2018.2.1 is out, especially considering that this upcoming release
already has incompatible changes in the add-on API, namely the
requirement of the addon-metadata.xml file and the type of the argument
passed to each add-on's main() function. We'll try harder not to break
compatibility in the add-on API once 2018.2.1 is out. For now, it is
still a good time to try to get the API as clean as possible.
2018-02-10 19:49:02 +01:00
Henning Stahlke
365d68891f fix windows compile error 2018-02-04 19:16:09 +01:00
James Turner
a723111903 Prevent Nasal modifying certain properties
(Requires a corresponding SimGear change)
2018-02-04 17:25:32 +00:00
James Turner
b96d4bf315 Limit props/telnet subscription send rate
Prevent FDM-derived properties being sent at full speed (120Hz) which
overloads telnet connections. Instead track dirty properties and
send them at the protocol’s update rate (which is presumably what
the user expects)
2018-02-04 17:07:21 +00:00
Henning Stahlke
c985c19735 YASim: add variables for solver parameters 2018-02-03 21:27:26 +01:00
Henning Stahlke
12bf5cdfa6 YASim: refactor Version.cpp 2018-02-03 01:37:14 +01:00
ThorstenB
a9786c637c Silence some compiler warnings. 2018-02-01 23:15:23 +01:00
ThorstenB
beecf005ce Fix logic issue when clearing a GPWS fault. 2018-02-01 22:59:29 +01:00
ThorstenB
f37715f334 GPWS: clean up white-space (TAB vs space) and indentation mess 2018-02-01 22:58:11 +01:00
Henning Stahlke
4497df4ecd YASim: minor modification of CLI tool output to make copy&paste to XML easier 2018-01-31 07:49:30 +01:00
Henning Stahlke
a88a498d20 YASim: comment and variable rename 2018-01-31 07:49:30 +01:00
James Turner
e4343f4f46 Launcher: reduce warnings loading thumbnail data 2018-01-30 18:40:41 +00:00
James Turner
b6cd4c8726 Launcher: show aircraft URI and local path
Shift-clicking on the compact delegate will show the local path and
URI of the aircraft, to identify the source.
2018-01-30 18:40:21 +00:00
James Turner
db57b12723 Remove dead code 2018-01-30 17:25:08 +00:00
James Turner
f9e113d811 Fix jumping aircraft list when editing ratings 2018-01-30 17:24:41 +00:00
James Turner
9dc1c1bbcf Fix scrolling of aircraft details view 2018-01-30 17:24:07 +00:00
James Turner
865e72f204 Merge /u/jsb1685/flightgear/ branch yasim2 into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/118/
2018-01-30 11:31:49 +00:00
Henning Stahlke
2c671884f5 YASim: add support for variable tail incidence (hstab trim). 2018-01-29 14:10:40 +01:00
jean pellotier
b9b280abd1 a new clock following real time pace, for mp protocol
the current timestamp used in mp protocol and in AImultiplayer is not a good one:
it can pause, or even change speed if we change warp value.
we want it to be used for network protocol lag and jitter estimation, and
a time flowing linearly on both side is needed, here's a first introduction
of this timestamp relates to real elapsed time.
here it's initialised to the system clock, then follow the monotonic clock.
in future improvement, it will allow time synchronisation betwen mp players,
to have a very good close formation flight experience.
2018-01-29 12:51:43 +01:00
James Turner
4d28146796 Give TimeManager a subsystem-name
Also modernise the lookups now this is added.
2018-01-29 10:46:08 +00:00
Thomas Geymayer
193d7b1c6f canvas: Fix receiving keyboard events 2018-01-29 09:09:29 +01:00
Thomas Geymayer
39f7fbf9fc canvas: Refactor and protect against expired pointers 2018-01-28 19:25:03 +01:00
James Turner
c035b3e9e3 Better fix for Canvas-in-PUI compositing
This seems to work everywhere, let’s try it.
2018-01-28 16:10:18 +00:00
James Turner
f076fe1c1b Fix unwanted waypoint list transparency
Ticket: https://sourceforge.net/p/flightgear/codetickets/2009/
2018-01-28 15:59:51 +00:00
ThorstenB
087995448f GPWS: add optional support for Airbus-style callouts
The "Airbus" callouts ("2500", "hundred above", "retard") are not issued
by the original mk-viii unit, but adding support helps with better
simulation for Airbus a/c. The new callouts are disabled by default, and
are enabled by a specific setting of the GPWS "category-4" configuration
value (see Wiki).
2018-01-28 16:37:31 +01:00
ThorstenB
37085f29ac GPWS: minor clean-up and performance update 2018-01-28 16:37:24 +01:00
Richard Harrison
cfbae6efb4 Multiplayer: revised filtering and move emesary bridge properties to new index.
- /sim/multiplay/transmit-filter-property-base can now filter based on property index; or have the previous mode of transmitting only generics by setting to 1.
- Move emesary MP bridge property base index to 12000 - to allow filtering of all except these (to reduce packet size).
2018-01-28 15:50:43 +01:00
James Turner
c1947b6bc4 Fix PUICamera compilation
Some blending issues remain with Canvas-in-PUI, waiting to hear back
if Thomas has nay great ideas on those.
2018-01-28 14:23:22 +00:00
jean pellotier
2e919544b9 warning removal, forgot to remove ival when addressing bug 1885
it was the commit  2f84be16f9
2018-01-28 14:49:07 +01:00
James Turner
e186fc6e2a Launcher: avoid MP start with no server selected.
Default to first server in the list, if there is no valid previous
server to restore.
2018-01-28 12:35:12 +00:00
Florent Rougon
21b8c7719e FGMouseInput: fix two uses of std::ostringstream
Seeking to the beginning doesn't clear the contents. Note that we don't
use std::ostringstream::str() either, because apparently
std::ostringstream is too complex to be easily reset to a clean state,
so we just recreate an instance every time we need.

cf. https://stackoverflow.com/a/12112642/4756009 and
    https://stackoverflow.com/questions/624260/how-to-reuse-an-ostringstream/624291#comment437178_624276
2018-01-27 11:25:48 +01:00
Florent Rougon
99c809dda0 FGMouseInput: add shutdown() and reinit() overrides
- Modify global_mouseInput in init() and in shutdown(), because *these*
  are the places where FGMouseInput is enabled or disabled.

- reinit() does shutdown() followed by init().

Note: the commented-out block starting with "FIXME: memory leak" that is
      removed here was just an outdated comment, because SGBindingList
      is an std::vector<SGBinding_ptr>, where SGBinding_ptr is a smart
      pointer type (SGSharedPtr<SGBinding>). In other words, there was
      no leak in this place---at least, not recently.
2018-01-27 11:25:10 +01:00
Florent Rougon
2eb583e9e1 FGMouseInput: improve initialization sequence
Create the FGMouseInputPrivate instance in FGMouseInput::init() instead
of in FGMouseInput's constructor. This will allow straightforward
implementation of reinit() via shutdown() and init().

Also get rid of the 'initialized' bool, since bool(d) is now equivalent
(d being the std::unique_ptr<FGMouseInputPrivate> data member of
FGMouseInput).
2018-01-27 11:25:10 +01:00
Florent Rougon
e60e519f7e FGMouseInput: refactoring: use a smart pointer for mouse_mode::buttons 2018-01-27 11:25:10 +01:00
Florent Rougon
1832ade5f2 FGMouseInput: refactoring: use a smart pointer for mouse::modes
Using std::vector<mouse_mode> instead of std::unique_ptr<mouse_mode[]>
would have been possible of course, but a bit more awkward as
vector<>::size() returns an std::size_t but all the "adjacent" code is
based on the 'int' type.
2018-01-27 11:25:10 +01:00
Thomas Geymayer
40503f3410 Update for another nasal::Context change 2018-01-24 07:41:13 +01:00
Florent Rougon
9054a51dd3 fgrcc: use octal escape sequences instead of hexadecimal ones
Octal escape sequences can be as short as 2 bytes (\0, ..., \7),
therefore they allow one to generate shorter files than hex escapes, for
the same resource contents. The line lengths won't be as even, but this
is purely cosmetic, virtually no one will ever read the resource data
string literals, so this is quite a negligible drawback compared to the
advantage of using less space in the Git repository every time resource
files are committed.
2018-01-19 08:12:24 +01:00
Henning Stahlke
f1906f3b8a YASim: name clarifications, add 'const' to arguments, add initalizers in Airplane.hpp 2018-01-18 08:48:24 +01:00
Henning Stahlke
b59aefb73a YASim: add comments, add constants, export more props 2018-01-18 07:46:03 +01:00
Henning Stahlke
a2499b02a1 YASim: name clarifications in ControlMap 2018-01-18 07:46:03 +01:00
Henning Stahlke
2841599b12 add const to argument 2018-01-18 07:46:03 +01:00
Henning Stahlke
317ad86b80 remove useless comments 2018-01-18 07:46:03 +01:00
James Turner
821ae89f64 Fix aircraft-list selection bug after searching
Reported by Brendan Black, thanks!
2018-01-14 15:04:55 +00:00
Bertrand Coconnier
9508ada1f1 JSBSim sync (Fixed memory leaks) 2018-01-14 15:20:50 +01:00
James Turner
aa9ad6a780 Fix view right-drag interaction with PUI
When PUI doesn’t handle the right-mouse down, ensure it ignores the
mouse-up event.
2018-01-14 13:17:59 +00:00
Bertrand Coconnier
bb315488e1 JSBSim synchronization.
Added the ability to specify N1 & N2 spool up/down velocity via functions for turbines.
2018-01-13 19:48:35 +01:00
Bertrand Coconnier
c9e276e5dd Removed obsolete files from JSBSim.
These files were originally included for special trim routines. But these routines are no longer maintained in JSBSim and have already been partially removed from FlightGear.
2018-01-13 19:46:41 +01:00
James Turner
08a877cb8e Message box on start if FG-home is read-only
If running with the launcher, and FG-home is read-only, show a warning
to the user, since this is probably a surprise to them.

(In non-launcher mode we don’t show the box, since it’s more likely to
be an intentional duplicate launch)
2018-01-12 22:18:59 +00:00
James Turner
1681b92c31 Silence a clang warning 2018-01-12 22:18:59 +00:00
James Turner
b4cdac238e remove_if clean-ups while auditing :) 2018-01-12 22:18:59 +00:00