1
0
Fork 0
Commit graph

1514 commits

Author SHA1 Message Date
James Turner
2178de9d0d Rework OpenGL check to avoid potential problems
A few versions of the Windows Intel drivers seem to crash while 
performing the OpenGL check; re-order the code to try and prevent
this.

Sentry-Id: FLIGHTGEAR-K7R
2021-02-24 11:41:33 +00:00
Automatic Release Builder
41f9884b70 Launcher: improve automatic language selection
Don’t fail to select the language, when the UI language includes
a ‘script’ value, as happens for Chinese on macOS. 

Thanks to Sidi Liang for reporting.
2021-02-22 10:43:36 +00:00
Automatic Release Builder
8551654cf0 Guard against ancient Intel OpenGL drivers
If we get back Intel < 2.1, bail out with the ‘drivers update needed’
warning.
2021-02-22 10:41:34 +00:00
James Turner
d30f5d63fe Launcher: Getting started tips updates 2021-02-22 10:37:52 +00:00
James Turner
aeca129034 NaturalEarthLoader: free the thread, oops
Used the wrong smart pointer type, use the regular C++ one now.
2021-02-21 19:15:55 +00:00
Scott Giese
2414397073 Maintenance: gui_funcs
Improved type choice.
Suppress compile warning.
2021-02-21 09:10:36 -06:00
James Turner
c2c4e6f126 Fix crash when menu item has no label 2021-02-21 12:13:00 +00:00
Scott Giese
4ce8be87a0 Maintenance: DefaultAircraftLocator
type correctness during comparison
2021-02-20 22:50:56 -06:00
Scott Giese
2c9e2d86db Maintenance: MPServersModel
type correctness
2021-02-20 22:29:55 -06:00
James Turner
caad29e7c8 Add error reporting to common failure points.
Not exhaustive by far, but adds many of the common failure points
witnessed on Sentry.
2021-02-20 20:06:27 +00:00
James Turner
a0ff4adbc6 Tweaks to sentry integration
Report menu item activation, and define a RAII helper for setting
the XML error reporting state.
2021-02-20 20:05:51 +00:00
James Turner
130cd2ae41 Fix crash spotted on Sentry 2021-02-11 09:26:38 +00:00
James Turner
ab95c8149a Change code to use copyProperties 2021-02-10 13:42:50 +00:00
James Turner
0cc465d39f Tweak Natural-earth loading to reduce DB contention
Reduce ‘SQLITE BUSY’ issues with multiple running copies of FG
2021-02-05 11:14:34 +00:00
James Turner
7f5f7e0b11 Sentry: add reporting for common path errors
Adding bread-crumbs preceding common failures seen on Sentry, around
addon and aircraft loading.
2021-02-04 11:49:25 +00:00
James Turner
b86baa68c0 Launcher: quit if OpenGL 2.1 isn’t available
Avoid crashing if no OpenGL drivers are available, instead show a
warning message to alert the user.

Sentry-Id: FLIGHTGEAR-76
2021-02-04 11:49:25 +00:00
James Turner
9e07b57c45 Launcher: additional bread-crumbs around catalogs 2021-02-04 11:49:25 +00:00
James Turner
203a9fe918 Launcher: fix a QML bug setting animation easing 2021-02-04 11:49:25 +00:00
James Turner
f45f41d4ec Guard against crash reported by Sentry
Avoid inserting null FGPositioned entries into the recent items
list, since this causes a crash in the model code

Sentry-Id: FLIGHTGEAR-1BM
2021-02-04 11:49:25 +00:00
Automatic Release Builder
6b6defbead Add getting-started tips to the launcher
QML implementation of getting started tips, with a nice styled
background box. Tips are defined+positioned inline, and displayed
when their enclosing scope is active.
2021-02-04 11:49:25 +00:00
James Turner
89de1defa0 Launcher: fix crash on slow update check
Cancel the update check HTTP request when the launcher ends, so we
don’t crash if the response arrives.

Sentry-Id: FLIGHTGEAR-DYT
2021-02-04 10:39:34 +00:00
James Turner
3fd54b2477 macOS: detect and warn if running translocated
Translocation forces us to rebuild the nav-cache each launch, and might
mess up some other details, so let’s warn the user they should copy
the app to Applications or similar.
2021-02-04 10:34:59 +00:00
Automatic Release Builder
31bb36b347 Increase log-level of language messages
This is to help in-field debug of incorrect language selection, eg
as reported by Sidi Liang
2021-02-04 10:31:08 +00:00
Automatic Release Builder
f1ab977ceb Avoid double-invoke of Launcher Fly! button
If the user double-clicks, and their system is slow, the action can
fire twice, which then breaks because we add options twice.

Sentry-Id: FLIGHTGEAR-HKV
2021-02-04 10:30:59 +00:00
James Turner
8ec91b3220 Launcher: remove obsolete winter/ALS settings 2021-01-23 14:40:00 +00:00
Slawek Mikula
354d7d02d2 #2177 - launcher - added flightplan info to summary window:
- Summary.qml - new row with Flight Plan info
- LauncherController.hxx, Launcher.qml - signals to show flightPlan & 
  exposing flight plan object
- FlightPlan.qml - add red color to information about airport mismatch
- FlightPlanController.cxx, FlightPlanController.hxx - description
  handling, support to loading flight-plan from command line argument 
  'flight-plan', saving last used dir when loading/saving flightplans
2021-01-18 12:38:58 +00:00
James Turner
c478a80c5c Launcher: don’t set empty METAR
When an invalid custom METAR is entered, don’t pass it to FlightGear
2020-12-30 17:01:29 +00:00
Automatic Release Builder
769dcb1454 Launcher: FlightPlann: fix ‘view route’ enable 2020-12-22 10:34:58 +00:00
Automatic Release Builder
a85a02069f Launcher: allow different texts for Fly! button
Requested by Michael Danilov for Russian translation
2020-12-22 10:34:58 +00:00
James Turner
7aa160c4e3 Write max-texture-units to properties 2020-12-07 17:11:17 +00:00
Automatic Release Builder
8f9f0cbb19 Change default Windows download-dir to
$HOME/FlightGear/Downloads

Add a launcher warning about this, to request users to relocate existing
files, they already downloaded.
2020-12-02 17:36:12 +00:00
Nathaniel Warner
88a8cada51 Rebase photoscenery patch on next 2020-11-23 17:53:35 -06:00
Julian Smith
f62e5b9ce3 CompositeViewer: Support for multiple view windows using osgViewer::CompositeViewer.
Overview:

    Previously Flightgear always used a single osgViewer::Viewer(), which
    inherits from both osgViewer::ViewerBase and osgViewer::View, giving a
    single view window.

    If CompositeViewer is enabled, we instead use a osgViewer::CompositeViewer
    which contains a list of osgViewer::View's. Each of these View's can have
    its own eye position, so we can have multiple different views of the same
    scene.

    Enable at runtime with: --composite-viewer=1

Changes to allow use of osgViewer::CompositeViewer:

    Previously FGRenderer had this method:

        osgViewer::Viewer* getViewer();

    This has been replaced by these two new methods:

        osgViewer::ViewerBase* getViewerBase();
        osgViewer::View* getView();

    If CompositeViewer is not enabled (the default), the actual runtime state
    is unchanged, and getViewerBase() and getView() both return a pointer to
    the singleton osgViewer::Viewer() object.

    If CompositeViewer is enabled, getViewerBase() returns a pointer to a
    singleton osgViewer::CompositeViewer object, and getView() returns a
    pointer to the first osgViewer::View in the osgViewer::CompositeViewer's
    list.

    The other significant change to FGRenderer() is the new method:

        osg::FrameStamp* getFrameStamp()

    If CompositeViewer is not enabled, this simply returns
    getView()->getFrameStamp(). If CompositeViewer is enabled it returns
    getViewerBase()->getFrameStamp(). It is important that code that previously
    called getView()->getFrameStamp() is changed to use the new method, because
    when CompositeViewer is enabled individual osgViewer::View's appear to
    return an osg::FrameStamp with zero frame number).

    All code that uses FGRenderer has been patched up to use the new methods so
    that things work as before regardless of whether CompositeViewer is enabled
    or not.

    We make FGRenderer::update() call SviewUpdate() which updates any extra
    views.

Extra view windows:

    If CompositeViewer is enabled, one can create top-level extra view windows
    by calling SviewCreate(). See src/Viewer/sview.hxx for details.

    Each extra view window has its own simgear::compositor::Compositor
    instance.

    Currently SviewCreate() can create extra view windows that clone the
    current view, or view from one point to another (e.g. from one multiplayer
    aircraft to the user's aircradt) or keep two aircraft in view, one at a
    fixed distance in the foreground.

    SviewCreate() can be called from nasal via new nasal commands "view-clone",
    "view-last-pair", "view-last-pair-double" and "view-push". Associated
    changes to fgdata gives access to these via the View menu. The "view-push"
    command tags the current view for later use by "view-last-pair" and
    "view-last-pair-double".

    Extra view windows created by SviewCreate() use a new view system called
    Sview, which allows views to be constructed at runtime instead of being
    hard-coded in *-set.xml files. This is work in progress and views aren't
    all fully implemented. For example Pilot view gets things slightly wrong
    with large roll values, Tower View AGL is not implemented, and we don't
    implement damping. See top of src/Viewer/sview.cxx for an overview.

OpenSceneGraph-3.4 issues:

    OSG-3.4's event handling seems to be incorrect with CompositeViewer -
    events get sent for the wrong window which causes issues with resize and
    closing. It doesn't seem to be possible to work around this, so closing
    extra view windows can end up closing the main window for example.

    OSG-3.6 seems to fix the problems.

    We warn if CompositeViewer is enabled and OpenSceneGraph is 3.4.
2020-11-21 13:27:02 +00:00
Automatic Release Builder
3dd4971056 Launcher: skip missing add-ons in collectArgs
Avoid passing missing add-ons to FlightGear. Since we only write a
cleaned list back to QSettings upon some user change, we can persist
bad paths.

Sentry-Id: FLIGHTGEAR-NG
2020-11-18 09:52:56 +00:00
Fernando García Liñán
b0a64e119a Restore Launcher renderer settings to pre-Compositor state 2020-11-16 18:37:05 +01:00
Fernando García Liñán
255d193bc8 Make Compositor default
- Removed the ENABLE_COMPOSITOR CMake flag.
- Removed /sim/version/compositor-support.
- Removed miscellaneous branching to check if the Compositor is enabled.
- Removed custom resource loader since Compositor Effects are now located in $FG_ROOT/Effects.
- Removed splash screen warning.
- Only use the Compositor versions of CameraGroup and FGRenderer.
- Fix redout/blackout not appearing under certain circumstances.
2020-11-16 13:25:29 +01:00
Automatic Release Builder
5b08a780f6 Sentry: add some extra bread-crumbs 2020-11-12 09:35:37 +00:00
Automatic Release Builder
21e6c06a0c Fix a glitch in adding the default catalog 2020-11-12 09:35:32 +00:00
Automatic Release Builder
74e27eec16 SetupRootDialog: fix download URI 2020-11-12 09:35:03 +00:00
Automatic Release Builder
81150ff6a1 Sentry: don't report more XML errors
Don't report XML errors when parsing Nasal-loaded content,
or n the launcher when scanning aircraft information.
2020-11-12 09:34:18 +00:00
James Turner
c63594acec Launcher: abandon NautralEarth loading on ‘fly!’
Otherwise we waste time trying to commit loaded data during FG main
startup, which causes races on the NavCache, and is pointless.
2020-11-12 09:33:07 +00:00
James Turner
3c1594ead4 Launcher add-ons: drop missing paths on load
Don’t probe for, or pass, missing paths to FlightGear. Since we don’t
show such paths in the UI, they hang around forever, causing exceptions

Sentry-Id: FLIGHTGEAR-NG
2020-11-12 09:32:58 +00:00
James Turner
e62c64859c Launcher FirstRun: add ‘scroll to bottom’ hint 2020-11-12 09:31:44 +00:00
James Turner
d29f25c391 Launcher: missed translations MichaelD spotted 2020-11-12 09:30:23 +00:00
James Turner
ca103e7fce UI NumericalEdit: tweak marings 2020-11-12 09:30:12 +00:00
James Turner
134e06af68 Avoid NavCache races on multiple copies rebuilding
If impatient users start multiple copies of FlightGear when a cache
rebuild is required, we can get into a mess. Use an additional
named mutex on Windows to avoid this situation, and block the secondary
copies until the primary instance has completed its cache rebuild.

Sentry-Id: FLIGHTGEAR-8D
Sentry-Id: FLIGHTGEAR-FY
2020-11-10 23:25:04 +00:00
Julian Smith
cf55c5f4f5 src/GUI/new_gui.cxx: disable rescan of style files because causes problems. 2020-11-02 10:53:38 +00:00
Julian Smith
68938ddb4b src/GUI/QtLauncher.cxx: fix call to sglog() to pass __FUNCTION__. 2020-11-01 00:03:03 +00:00
Julian Smith
4ec80297bf src/Viewer/FGEventHandler.cxx: NewGUI::setStyle(): added code to rescan style files.
Changing style will reload style from filesystem, so one can edit styles and
see results without restarting fg.

Note that this duplicates initial populating of /gui/styles/ from
defaults.xml's <sim><gui>...</gui></sim> section, so it's a bit of a hack.
2020-11-01 00:02:43 +00:00
Julian Smith
43468727ad Added command 'dialog-toggle' - toggles display of dialogue.
E.g. useful for keyboard shortcuts.
2020-10-31 17:23:28 +00:00