1
0
Fork 0
Commit graph

1794 commits

Author SHA1 Message Date
TheFGFSEagle
6f5581ac50 Added method to get all tabs of the TabWidget 2023-02-10 13:01:20 +00:00
Benedikt Wolf
13b24e5290 Improve hitch.nas, work in progress 2023-02-10 10:40:35 +01:00
TheFGFSEagle
3e4b6ff9c8 Make combo box menu work 2023-02-03 11:28:29 +00:00
TheFGFSEagle
8a1192c918 Added Switch class, added group-checked-radio-changed signal for radio buttons 2023-02-03 11:28:29 +00:00
Richard Harrison
aeae504d47 emexec: rewrite rate adjust logic
Change to calculate the frame rate ourselves because /sim/frame-rate doesn't take into account freeze and has a transient ridiculous value after a pause. Instead we calculate the average rate over a period and then LP filter this.

This also removes the annoying frame rate update messages

Cofiguration now comes from /sim/emexec

* /sim/emexec/monitor-period is the period to reset the average; the LP filter isn't reset.
* /sim/emexec/max-rate-hz is the upper limit on the emexec update rate. defaults to 50 and a model can override this. It's probably not a user setting

output of

* current emexec rate into /sim/emexec/rate-hz
* smoothed / LP filtered frame rate into /sim/emexec/frame-rate
2023-01-29 14:31:51 +00:00
TheFGFSEagle
7274ec886a Added some utility functions (all, any, map and filter) 2023-01-24 19:03:52 +00:00
James Turner
b3b2871523 GUI style: make sizes parametric 2023-01-24 18:49:32 +00:00
TheFGFSEagle
7dd431cbbd Implemented canvas radio button 2023-01-24 14:09:22 +00:00
TheFGFSEagle
f569a5ac29 Added property tree widget and browser dialog 2023-01-24 13:59:47 +00:00
TheFGFSEagle
f1e099641f Center canvas windows on screen upon creation, add methods to center canvas window on screen and to get their current position 2023-01-24 13:58:52 +00:00
James Turner
151486219d Add ComboBox widget 2023-01-24 13:27:04 +00:00
James Turner
ede0844631 GUI MenuItem/menuBar fixes:
- ensure createItem returns the item
- add an accessor for text()
- don't do lazy view creation for now
- skip aboutToShow until item iteration works for me
2023-01-24 13:27:04 +00:00
James Turner
ba5fb926a2 remove duplicate MenuBar.nas 2023-01-24 13:17:05 +00:00
TheFGFSEagle
2b9d10804b Added list widget 2023-01-24 13:17:02 +00:00
TheFGFSEagle
2a95685eb7 Improve menu item styling 2023-01-24 13:15:53 +00:00
TheFGFSEagle
419de94e68 Fix layouting 2023-01-24 13:15:53 +00:00
TheFGFSEagle
0a6ddb689a Added label benchmarking functionality and a menu bar 2023-01-24 13:15:53 +00:00
TheFGFSEagle
1faedb04a2 Only hide popups when window is raised, not on every state change 2023-01-24 13:15:53 +00:00
TheFGFSEagle
3e861b0a44 Better menu item click and hover behaviour 2023-01-24 13:15:53 +00:00
Florent Rougon
b61f0c241e emesary_mp_bridge.nas: convert to UTF-8 encoding
This concerns a single character inside a comment, so won't change the
behavior of the Nasal code in any way. Beside using the favored encoding
in FlightGear, this little change allows scripts/python/nasal_api_doc.py
(from the FlightGear repository) to work again without having to teach
it to ignore encoding errors nor to play at guessing the encoding of the
files it reads.
2023-01-19 17:17:52 +01:00
James Turner
7651d66c38 Disable Canvas menubar for now 2023-01-13 14:42:41 +00:00
Florent Rougon
4846871a5c Fix handling of percent signs by gui.popupTip()
Since commit e41c0f099b, the Tooltip class has performed string
interpolation (i.e., sprintf()-style formatting) regardless of whether a
<property> was specified for the tooltip. This broke the API of
gui.popupTip(): all '%' characters in the message had to be doubled to
work as before. This commit restores the normal behavior of
gui.popupTip() where '%' characters aren't interpreted in any special
way.
2023-01-13 09:56:15 +01:00
James Turner
73fbeaade2 Canvas: keyboards bindings handled in widget 2023-01-11 11:47:27 +00:00
TheFGFSEagle
a5e30023bd Added menu bar widget and global menu bar, menu item improvements 2023-01-11 11:47:27 +00:00
TheFGFSEagle
2cf388e674 Added real keyboard shortcut support for menu items 2023-01-11 11:47:27 +00:00
TheFGFSEagle
f1d7848a6b Added keyboard Nasal module 2023-01-11 11:08:40 +00:00
TheFGFSEagle
ef602c0d3a Improved resize buttons by Hooray 2023-01-11 11:08:40 +00:00
TheFGFSEagle
d21158fdbf Added more key bindings and a context menu 2023-01-11 11:08:40 +00:00
TheFGFSEagle
a25674337d Added shortcut option for menu items 2023-01-11 11:05:01 +00:00
TheFGFSEagle
764e6f0ced Added Popup, Menu and MenuItem classes 2023-01-11 11:05:01 +00:00
James Turner
581f8d163f GUI: add PUI combo-box mapping 2023-01-11 10:57:42 +00:00
James Turner
aa57b7992f Canvas: rule lines working with styling
PUI uses these a lot, so good to have them working
2023-01-11 10:57:42 +00:00
James Turner
d00c983429 Canvas widgets: style for Slider
Only horizontal mode for now, and not quite right visually,
but usable enough to start with.
2023-01-11 10:57:42 +00:00
James Turner
b93ecb962b Canvas: add unload logic
Clean up various global things, especially commands, when
unloading the Canvas. This means reloads of Canvas are
clean.
2023-01-06 10:57:00 +00:00
James Turner
b359fc88cb TabWidget: make setCurrentTab lazy 2023-01-05 14:39:43 +00:00
James Turner
333321556f Add example of coordinate conversion 2023-01-05 14:28:20 +00:00
James Turner
df43cb2554 Canvas: make setVisible chainable
Change Element.setVisible to return self, so it can be chain
called like most other setters. Note this also requires some C++
changes in FlightGear.
2023-01-04 15:32:26 +00:00
TheFGFSEagle
074e2511de Fixed some more typos 2023-01-04 12:35:04 +00:00
TheFGFSEagle
114694cbbe Fix inheritance mistake, add resizing test button 2023-01-04 10:03:27 +00:00
TheFGFSEagle
b2f37b67f8 Added usage example for the TabWidget 2023-01-03 13:49:56 +00:00
TheFGFSEagle
4bc559bcf4 Added canvas widget factory dialog 2023-01-03 13:49:56 +00:00
TheFGFSEagle
09e15ddf16 Added canvas checkbox subclass whose check state is always the bool value of a node and vice versa 2023-01-03 12:39:51 +00:00
TheFGFSEagle
8d5e4aaf1c Added basic tab widget 2023-01-03 12:39:51 +00:00
James Turner
aef16be4f0 Revert "Add option to read upper winds from simbrief"
As requested by Lars, revert these commits since they don't
work as hoped, reliably.

This reverts commit 55b17f4c5e.
This reverts commit 91401a95b0.
2022-11-24 12:17:49 +00:00
James Turner
1e1f974b76 Clean up autopush attribution 2022-10-18 10:08:41 +01:00
James Turner
6e8520dbb5 Canvas windows: allow hiding without deletion
Optionally, allow Canvas windows to persist (and be shown again) when
closed.
2022-10-14 09:01:52 +01:00
James Turner
4fd8092e38 Canvas GUI: left position for checkbox text 2022-10-14 09:00:02 +01:00
Roman Ludwicki
41006285d5 Fix description for Shift-F10 2022-09-29 00:45:58 +02:00
James Turner
312822e4b0 Canvas: reduce SVG console spam
Ignore certain standard elements added by Sodipodi / Inkscape, to
reduce console spam loading SVGs.
2022-09-26 08:59:18 +01:00
James Turner
459dea77e5 Add more Nasal skeleton for new UI objects 2022-09-26 08:58:24 +01:00
James Turner
82cb79feb3 Add additional widgets for PUI compat
Styling of these is not complete yet.
2022-09-09 12:19:33 +01:00
Lars Toenning
55b17f4c5e Block metar winds if simbrief winds are active 2022-08-21 15:57:34 +02:00
Lars Toenning
91401a95b0 Add option to read upper winds from simbrief 2022-08-16 08:33:35 +01:00
Roman Ludwicki
1c5fcf3cef Add missing button "Rudder Trim Pos" for joystick assignment 2022-07-17 19:55:23 +02:00
James Turner
3965f216e5 Gui: add some helpers:
- clear() function on LineEdit
 - setDefault/Destructive flags on Button
 - check if focus is set on a Widget
2022-06-30 12:41:17 +02:00
James Turner
fe7c87b21a Nasal glue for building widgets from XML compat 2022-06-30 12:41:10 +02:00
Josh Davidson
918b5fd72f Canvas: Add an option for Canvas dialogs to not take focus from the simulator 2022-06-30 11:33:40 +02:00
Julian Smith
c55c17dd64 Nasal/multiplayer.nas: always enable multiplayer chat when replaying.
This is an additional fix for bug 2731, ensuring that replay includes chat
messages even if we are not connected to an MP server.
2022-04-22 20:38:00 +01:00
Julian Smith
e0070501e6 Nasal/multiplayer.nas: always enable multiplayer menu items when replaying.
This fixes bug 2731, where MP menu items were greyed out if we are not
connected to MP server, even if we are replaying a recording with MP aircraft.
2022-04-22 00:27:54 +01:00
James Turner
e945dafca3 Props: add defaultValue to getInt|Double Value
Simplify handling where the property value might be nil.
2022-04-06 07:49:39 +01:00
Richard Harrison
a395423f27 Nsasl: Added Exec Scheduler
see also https://wiki.flightgear.org/Nasal_Optimisation#Emesary_real_time_executive

Using a scheduler to manage the invocation of Nasal modules provides a more predictable and efficient way to replace update loops and also optimises property tree access to one access per property per frame by using a hash that contains the property values.

There is a default global object created (emexec.ExecScheduler) that should be used in most circumstances.

Each Nasal object simply has to have an update(notification) method. This will be called on a schedule and the notification will contain any requested property values.

The exec will also adapt the rate to the frame rate; with a maximum of 50hz, but this will drop to as low as 4hz based on the frame rate to optimise workload.

The modules will be called in the order in which they were added; so it is possible to have modules in the right sequence (i.e. an earlier module calculates values that are used by a later module)

A simple example is below. The VSD_device has the update method
------

# list of prooperties to include in the notification hash
var properties_to_monitor = {
                                OrientationHeadingDeg  : "orientation/heading-deg",
                                OrientationPitchDeg    : "orientation/pitch-deg",
                                OrientationRollDeg     : "orientation/roll-deg",
                                GroundspeedKts         : "velocities/groundspeed-kt",
                                radar2_range           : "instrumentation/radar/radar2-range",
                                target_display         : "sim/model/f15/instrumentation/radar-awg-9/hud/target-display",
                                vc_kts                 : "instrumentation/airspeed-indicator/true-speed-kt",
                            };
# create Canvas based device (that has an update method)
VSD = VSD_Device.new(designation, textureImage, notification.Ident, root_node);

# register with the exec;
# - ident
# - proprties to include in notification hash
# - object (with an .update(notification) method
# - rate (4 = 1/4)
emexec.ExecModule.register("F15-VSD", properties_to_monitor, VSD, 4);
2022-04-04 17:23:12 +02:00
Richard Harrison
304836f41a Nasal: optimises properties in lp filter
Use geNode instead of getprop
2022-04-03 18:30:17 +02:00
Richard Harrison
2fe23785d5 Multiplayer pilot list fixes
- made it more robust so that bad data doesn't stop it from working.
- optimised to store the prop nodes that we use in the list
2022-03-17 19:27:13 +01:00
James Turner
2fb18ceed6 ProperyElement: remove dependency on aircraft.nas
Make a local copy of the makeNode helper, so Canvas doesn't depend on
aircraft.nas
2022-03-06 10:59:06 +00:00
Richard Harrison
8419dec54a Fix Tyre Smoke/Spray in air.
Previously it was possible that the smoke/spray would continue if the aircraft went weight off wheels whilst smoke was active.
2022-03-02 14:16:19 +01:00
Richard Harrison
09adb59959 Controls: Added trim to position for rudder and aileron 2022-03-02 14:16:18 +01:00
Erik Hofman
1012c49143 Add a copyright header and
make the heading relative to make it usefull for cockput cubemaps
2022-02-10 15:00:15 +01:00
Erik Hofman
216f3fbf0c Add a Nasal module to create a cubemap or panorama view
Inspiration taken from:
https://wiki.flightgear.org/Howto:Make_full_spherical_panorama
2022-02-09 15:49:23 +01:00
James Turner
2d17217a01 Marker-pins FGData changes
From Tobias Dammers
2022-01-27 12:11:24 +00:00
Scott Giese
61bf4c2858 Canvas Map: Add outline to aircraft symbol 2022-01-14 01:12:26 -06:00
Julian Smith
e951ae9e9a Nasal/multiplayer.nas: append +/- to indicate change in distance. 2022-01-08 16:16:21 +00:00
Jonathan Redpath
18eaba13f4 Apply patch by Tobias Dammers - correct RTE.lcontroller equals function to fix the infamous model not found error 2022-01-03 15:51:22 +00:00
Henning
1890502283 Add argument validation in canvas_efis/eicas-message-sys.nas 2021-12-04 14:50:01 +01:00
Henning
28e865f1e6 Bugfix for aircraft.nas: declare missing member variable 2021-12-04 14:47:22 +01:00
Richard Harrison
b5b9568bc7 Local weather: change unknown landcover message to use logprint 2021-10-18 15:31:19 +02:00
Richard Harrison
dc697141b8 Tyre effects (spray, smoke) rework
Spray density realism improved by using a curve for the density and permitting the trigger to be changed (default 0.2)

Touchdown smoke trigerred by WoW changing using the velocity as a factor and then using a low pass filter on this to fade out the smoke. This results in smoke for a brief period that appears to be more realistic. F-14 example: https://i.imgur.com/FkwgoYV.gifv
2021-10-18 15:31:19 +02:00
b'Fernando Garc\xc3\xada Li\xc3\xb1\xc3\xa1n
25068efaee Merge /u/amalon/fgdata/ branch vr_1 into next
https://sourceforge.net/p/flightgear/fgdata/merge-requests/238/
2021-09-03 22:23:20 +00:00
James Hogan
7ba3e5b975
Add a VR Options dialog
Add a VR Options dialog accessible from the View menu, allowing VR to be
enabled and disabled, and the current VR state to be seen.
2021-09-01 20:36:24 +01:00
wlbragg
65c8a95dd8 Remove wildfire code from fgdata and move to fgaddons 2021-08-31 20:06:14 +01:00
Julian Smith
68997879d3 Nasal/debug.nas: backtrace(): reinstate mechanism to truncate long filenames.
Also made it configurable.
2021-08-29 21:09:12 +01:00
Julian Smith
b6da3872f1 Nasal/globals.nas: setlistener(): call die() if callback is not a function.
This avoids getting confusing errors later on, e.g. see bug 2641.
2021-08-26 23:24:46 +01:00
Julian Smith
89da92dd05 Nasal/debug.nas:backtrace(): don't truncate filename.
Truncating filenames in debug output is unhelpful.
2021-08-26 23:24:46 +01:00
Michael Danilov
d394edb0a2 Local Weather: auto-enable 3D clouds and disable the checkbox. 2021-08-23 21:18:25 +02:00
Stuart Buchanan
1093a3fa97 FG1000: TextElement setColor 2021-08-19 12:28:52 +01:00
Michael Danilov
0c82a1f59a Replay: fix rewind for nonzero start-time. 2021-08-19 00:55:51 +02:00
Richard Harrison
2b11545fdf Added tests for Nasal frame utils 2021-06-05 16:18:04 +02:00
Julian Smith
768e11d0a6 Nasal/view.nas: Allow view to be changed by setting /sim/current-view/view-number-raw.
This avoids problems when/if new default views numbers (between 0 and 99) are
added.
2021-06-02 17:07:06 +01:00
Julian Smith
4b4410becf Allow control of whether 'b' key also cancels parking brake.
Uses new property /sim/controls/brake-cancels-parking-brake.

Default is true; it is expected that some aircraft (e.g. p51d) will set this to
false so they can implement their own brake/parking-brake interaction.

Should address bug 2589.
2021-05-26 22:37:38 +01:00
James Turner
dd9507a6ef Error reporting UI tweaks 2021-04-30 13:44:08 +01:00
James Turner
6a9fddb999 Add Error notification popup 2021-04-27 16:09:27 +01:00
James Turner
02c70ee05f Canvas SVG: fix parsing of elliptical arcs in paths
See discussion in https://sourceforge.net/p/flightgear/codetickets/2569/ 

Colin Geniet found and fixed this, and has audited existing FGaddon
aircraft against this (also the FG1000).
2021-04-01 12:17:41 +01:00
Fernando García Liñán
69387f09f4 Reduce shader complexity and implement graphics presets
- All non-ALS Effects have been removed (except generic ones from model-default and terrain-default).
- The rendering dialog has been reworked to accomodate the changes.
- All necessary properties have been added to graphics-properties.xml
- Five graphics presets have been added: Minimal, Low, Medium, High and Ultra.
- Some unused properties have been removed from defaults.xml
2021-03-31 04:05:34 +02:00
Henning Stahlke
b791ead702 Fix SVG parser crash on unsupported <defs> element. 2021-02-14 13:01:18 +01:00
James Turner
cdb151eb88 Reduce log noise for non-developers 2021-02-05 10:34:59 +00:00
Julian Smith
4db50617ca Added 'Still View', a new core view, number 8.
This view is like Helicopter View except that it does not change the view
heading to match the aircraft, which makes it work much better for vertical
flight, e.g. with the shuttle.

The new view is disabled by default.

Nasal/view.nas
    contains the new view config.
defaults.xml:
    Added view 8 to list of views for which we default to Helicopter view's
    target offsets (so that they look at the centre of the aircraft).
2021-01-29 16:56:29 +00:00
Stuart Buchanan
b3abc93e96 Set /sim/rendering/shaders/skydome on quality 2021-01-25 12:01:21 +00:00
Michael Danilov
51972c51ee Add option to move chat to the left and align left. 2021-01-13 22:43:12 +01:00
Michael Danilov
a2c3c4c3d8 Add option to move chat to the left and align left. 2021-01-12 21:17:56 +01:00
James Turner
c6b8869fed Tooltips: set a flag when registering the commands
This allows the C++ side to avoid invoking the commands prematurely.
2021-01-08 19:35:09 +00:00
Fernando García Liñán
5a841e2ebe Remove 'You are on runway' message when spawning with --parkpos
Fix by Michael Danilov
2021-01-05 09:59:20 +01:00