FlightGear Qt launcher: Difference between revisions

Jump to navigation Jump to search
Add background and re-order some things
(Quick usage explanation)
(Add background and re-order some things)
Line 14: Line 14:
}}
}}


The '''Qt launcher''' is an integrated launcher for FlightGear designed as a replacement for [[FGRun]]. Initially designed as a stop-gap solution in FlightGear 3.4 for the problem of support for the [[FlightGear Mac OS X Launcher|old FlightGear Mac launcher]] ending with OS X Yosemite, it has become FlightGear's main launcher for all platforms, that is shipped with all official FlightGear releases (however, users building from source, may need to separately configure/rebuild FlightGear).  
The '''Qt launcher''' is an integrated launcher for FlightGear designed as a replacement for [[FGRun]]. Initially designed as a stop-gap solution in FlightGear 3.4 for the problem of support for the [[FlightGear Mac OS X Launcher|old FlightGear Mac launcher]] ending with OS X Yosemite, it has become FlightGear's main launcher for all platforms, and is shipped with all official FlightGear releases (however, users building from source may need to separately configure/rebuild FlightGear).  


{{Package Management}}
{{Package Management}}
Line 29: Line 29:
</syntaxhighlight>
</syntaxhighlight>


== Announcement ==
<gallery mode="packed">
<gallery mode="packed">
Qt launcher for FlightGear 3.5 on Windows 7 location.jpg
Qt launcher for FlightGear 3.5 on Windows 7 location.jpg|Location page of Qt launcher in FG 3.5 on Windows 7
Qt launcher for FlightGear 3.5 on Windows 7 settings.jpg
Qt launcher for FlightGear 3.5 on Windows 7 settings.jpg|Settings page of Qt launcher in FG 3.5 on Windows 7
Qt launcher for FlightGear 3.5 on Windows 7 addons.jpg
Qt launcher for FlightGear 3.5 on Windows 7 addons.jpg|Addons page of Qt launcher in FG 3.5 on Windows 7
</gallery>
</gallery>
As of March 2015, there is heavy activity towards a new {{Abbr|UI|User Interface}}. There will be the HTML5/browser-based version (called [[Phi]]), TorstenD is currently working on, which will only be available after FlightGear has finished booting and initializing because it is a conventional FlightGear subsystem, as well as an internal implementation based on well supported libraries using Qt5 (which James Turner is working on), which will only be available during startup, and won't be running/available later on in its current form (i.e. at run-time), the latter having a strong focus on startup-relevant settings, while the former will only be able to deal with run-time settings.


The parallel development of HTML and Qt based UI happens by intention and is not the result of missing coordination<ref>http://forum.flightgear.org/viewtopic.php?p=229445#p229445</ref>. Most likely, both will use a common service layer to provide necessary data<ref>http://forum.flightgear.org/viewtopic.php?p=229303#p229303</ref>.
== Background ==
In accordance with the [[FlightGear 4.xx Roadmap]], FlightGear's current GUI interface, based on the [[PUI]] library of [[PLIB]], will be replaced by one based on Qt. [[FGRun]] will also be removed in future to be replaced by this launcher. In addition, a brower-based UI (called [[Phi]]) will continue to be developed in parallel. This will result in the following user interface:
* Qt launcher
* Internal UI based on Qt, possibly with [[Canvas]] integration
* External browser-based UI (Phi)


James Turner is currently prototyping (at the suggestion/encouragement of Curt, Torsten D & others) a {{Abbr|GUI|Graphical User Interface}} integration for FlightGear based on Qt 5. The main motivation originally being that the Mac OSX launcher would no longer work on Yosemite, so an alternative had to be provided.
As of April 2016, the Qt launcher is run inside the simulator itself, unlike FGRun, which is a separate program. Eventually, the Qt launcher will be split away into separate program and fully replace FGRun.
 
This is overlapping with some areas other folks are working on (particularly, making the Nasal/Canvas-based [[Aircraft Center]] available during startup by [[Initializing Nasal early]]), so we felt it best to make an announcement to avoid anyone expending their time on areas that might be affected<ref name="a">http://sourceforge.net/p/flightgear/mailman/message/33245028/</ref>.
 
All of this would be a QtQuick 2 GUI, not a Qt widgets GUI. If you don’t know what that terminology means, don’t worry about it, the quick answer is it works the same ways as Canvas does at present (rendering to OpenGL).
 
{{FGCquote
|1= the intention is we’re adding integrated convenience features but the command line / shell environment won’t change and the default mode of ‘fgfs’ even in a Qt-enabled build is unchanged. You need set an env var or pass an argument to get the launcher, even if the feature was selected at compile time. We have the advantage that the Windows and Mac pre-built builds, it’s easy to ensure Qt is available, and those users are less likely to want complex command-line control than Linux users.
|2= {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/34532040/
  | title  = <nowiki>[Flightgear-devel]  GUI questions (again)</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Oct 11th, 2015
  | added  = Oct 11th, 2015
  | script_version = 0.23
  }}
}}


== Status ==
== Status ==
{{FGCquote
As of April 2016, the Qt launcher is under active development. This includes the adding of new features, fixing bugs, and refining existing features.
|1= At some point (possibly quite soon) I’ll enable a version of the Qt launcher to be triggered from the in-sim menu (but as a separate dialog), at least an an experimental feature.
|2= {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/34520595/
  | title  = <nowiki>Re: [Flightgear-devel] Aircraft catalog - feedback</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Oct 7th, 2015
  | added  = Oct 7th, 2015
  | script_version = 0.23
  }}
}}
 
 
 
{{FGCquote
|1= I’m currently extending the launcher to do in-air starts
|2= {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/34618604/
  | title  = <nowiki>Re: [Flightgear-devel] Bug 1802 : start paused --enable-freeze does
not work</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Nov 13th, 2015
  }}
}}
{{FGCquote
|1= there’s some new features  
* installing / updating aircraft works pretty well, multiple downloads are queued.
* start location can be any navaid or waypoint, or a lat/lon
* start offsets (bearing + distance in Nm) are supported
* navaids are tuned when starting on a runway / using a VOR - command-line box parser supports comments
|2= {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/34640695/
  | title  = <nowiki>[Flightgear-devel] Launcher changes for 3.8</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Nov 23rd, 2015
  }}
}}
 
{{FGCquote
|1= Please test and report any other bugs or possible improvements, so this is robust and idiot-proof for 3.8.
|2= {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/34640695/
  | title  = <nowiki>[Flightgear-devel] Launcher changes for 3.8</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Nov 23rd, 2015
  }}
}}
 
== Initial Prototype ==
{{Note|
{{FGCquote
  |The replacement launcher is very young, so I apologise for any functionality gaps. '''In general it emphasises setting only the things that cannot be changed at runtime, and some common general settings''' (real weather, time of day, location). That’s why anti-aliasing and Rembrant are exposed but not multi-player settings, since the in-sim UI works perfectly for those features. The same is true for scenarios and AI traffic.
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33464757/
    |title=<nowiki>Re: [Flightgear-devel] Release 3.4.0 is coming</nowiki>
    |author=<nowiki>James Turner</nowiki>
    |date=<nowiki>2015-02-19</nowiki>
  }}
}}
{{FGCquote
|1= Having many fewer options than FGRun is deliberate and intentional - the idea is to give control over:
* very commonly used options by most users
* options that can’t be changed once the simulator is running
This is why for example there’s no control over view settings or multiplayer. (But real-weather and time-of-day are included even though they can be changed in-sim, because I judged them to be common)
|2= {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/34752731/
  | title  = <nowiki>Re: [Flightgear-devel] Issues with Qt5 launcher</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Jan 9th, 2016
  | added  = Jan 9th, 2016
  | script_version = 0.23
  }}
}}
}}
This will be an in-app launcher for Mac initially, based on Qt5. Primarily, because the old Mac launcher doesn’t work on Yosemite, so we are adding a tiny Qt-based launcher inside the main process (no need to fork / exec) which runs before the OSG window is created and before the FlightGear main loop is running, this will be merged for 3.4, hopefully with no impact on other platforms.
 
The Qt5 stuff is currently only enabled for the Mac/OSX platforms because the corresponding launcher there had to be discontinued (well its dependencies got phased out by Apple) - and shouldn't be used anywhere else (yet)<ref>http://forum.flightgear.org/viewtopic.php?p=234090#p234090</ref>.
 
The qt launcher is not intended for use on non-OSX platforms in 3.4. It's being generalised to work on all platforms on 'next' for 3.6, but it should be ignored by anyone except me in 3.4. (Eg, there is language on the buttons which is OS-X specific, references to 'the Finder')<ref>http://sourceforge.net/p/flightgear/codetickets/1709/#b545</ref>
 
Some code James has written in the 2014 will be obsolete, e.g. the native message box and menubar code.
 
== User Interface ==
{{FGCquote
|1= I am fairly firm that I /don’t/ want to add many more options, at least before doing a much more serious UI redesign. To explain. the current UI aims to give you control over things you can’t change inside the sim, and also expose very commonly used settings. Keeping the UI clean and uncluttered is a much higher priority than exposing every command line option and feature of the internal GUIs. The longer term solution here is to switch from the current horiontal tabs to a different layout which can support more pages (probably a vertical tab-set with icons), and to put complex options into pages which are hidden by default, and which users can progressively enable. Multiplayer and failures would be possible examples of this.
|2= {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/34649467/
  | title  = <nowiki>Re: [Flightgear-devel] Launcher changes for 3.8</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Nov 26th, 2015
  }}
}}


== Preferences ==
== Preferences ==
Line 165: Line 61:


== Repercussions ==
== Repercussions ==
=== Aircraft Center ===
{{FGCquote
|1= James's new aircraft center looks at his own path on his own web site for aircraft .ip packages (not the previously usual ftp tree.) He created his own scripts to generate the .zip files and named the packages slightly differently from how it was done previously.
|2= {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/34868519/
  | title  = <nowiki>Re: [Flightgear-devel] Announcing the Release of FlightGear 2016.1.1</nowiki>
  | author = <nowiki>Curtis Olson</nowiki>
  | date  = Feb 20th, 2016
  | added  = Feb 20th, 2016
  | script_version = 0.25
  }}
}}
=== Qt5 remaining optional ===
{{FGCquote
|1= My personal take is that most normal users /will/ use the Qt-UI build because it will offer the easiest and most integrated GUI experience
|2= {{cite web
  | url    = http://sourceforge.net/p/flightgear/mailman/message/34537052/
  | title  = <nowiki>Re: [Flightgear-devel] GUI questions (again)</nowiki>
  | author = <nowiki>James Turner</nowiki>
  | date  = Oct 13th, 2015
  | added  = Oct 13th, 2015
  | script_version = 0.23
  }}
}}
=== Limitations ===
Note that even in the optimistic case, there will be some limitations – e.g., multi-window setup will not work in Qt builds without further work<ref name="a">http://sourceforge.net/p/flightgear/mailman/message/33245028/</ref>.
=== Dependencies ===
=== Dependencies ===
{{FGCquote
{{FGCquote
Line 222: Line 91:
   to a directory containing one of the above files.  If "Qt5" provides a
   to a directory containing one of the above files.  If "Qt5" provides a
   separate development package or SDK, be sure it has been installed.
   separate development package or SDK, be sure it has been installed.
</syntaxhighlight>
</syntaxhighlight>


We need to have the discussion if it should become the default launcher for Windows (Linux and other Unixes are less relevant, it’s up to the distribution packagers).
We need to have the discussion if it should become the default launcher for Windows (Linux and other Unixes are less relevant, it’s up to the distribution packagers).


If, how and when the internal gui can leverage Qt is under investigation and in such an early state that those responsible preferred to not announce anything yet. If this ever happens, this will be discussed on the mailing list<ref>http://forum.flightgear.org/viewtopic.php?p=229563#p229563</ref>
If, how and when the internal GUI can leverage Qt is under investigation and in such an early state that those responsible preferred to not announce anything yet. If this ever happens, this will be discussed on the mailing list<ref>http://forum.flightgear.org/viewtopic.php?p=229563#p229563</ref>


=== Segfaults & Race Conditions ===
=== Segfaults & race conditions ===
{{Note|Also see {{Issue|1819}}}}
{{Note|Also see {{Issue|1819}}}}
{{FGCquote|1= Should installing an aircraft to the proper aircraft folder be allowed to crash the launcher if that plane has an error the launcher can detect or should maybe the launcher load and report an error somewhere visible in the launchers gui?|2= {{cite web  | url    = http://sourceforge.net/p/flightgear/mailman/message/34430800/  | title  = <nowiki>Re: [Flightgear-devel] fgaddon c310 typos??</nowiki>  | author = <nowiki>Ray St. Marie</nowiki>  | date  = Sep 3rd, 2015  }}}}
{{FGCquote|1= Should installing an aircraft to the proper aircraft folder be allowed to crash the launcher if that plane has an error the launcher can detect or should maybe the launcher load and report an error somewhere visible in the launchers gui?|2= {{cite web  | url    = http://sourceforge.net/p/flightgear/mailman/message/34430800/  | title  = <nowiki>Re: [Flightgear-devel] fgaddon c310 typos??</nowiki>  | author = <nowiki>Ray St. Marie</nowiki>  | date  = Sep 3rd, 2015  }}}}
Line 246: Line 114:
   }}
   }}
}}
}}
<references/>
<references/>


Line 607: Line 476:
{{FGCquote|1= The problem is the initialisation sequence. The QtLauncher starts before the 'dynamic airports'. Therefore the park positions are not available (unless they have been added to the NavDataCache by previous runs of FG, and the NavDataCache is not rebuilt).|2= {{cite web  | url    = http://sourceforge.net/p/flightgear/mailman/message/34560946/  | title  = <nowiki>Re: [Flightgear-devel] FGFS Launcher -->selecting Parkpositions ???</nowiki>  | author = <nowiki>Edward d'Auvergne</nowiki>  | date  = Oct 22nd, 2015  }}}}
{{FGCquote|1= The problem is the initialisation sequence. The QtLauncher starts before the 'dynamic airports'. Therefore the park positions are not available (unless they have been added to the NavDataCache by previous runs of FG, and the NavDataCache is not rebuilt).|2= {{cite web  | url    = http://sourceforge.net/p/flightgear/mailman/message/34560946/  | title  = <nowiki>Re: [Flightgear-devel] FGFS Launcher -->selecting Parkpositions ???</nowiki>  | author = <nowiki>Edward d'Auvergne</nowiki>  | date  = Oct 22nd, 2015  }}}}


== Issues ==
== Issues and limitations ==
Note that even in the optimistic case, there will be some limitations – e.g., multi-window setup will not work in Qt builds without further work<ref name="a">http://sourceforge.net/p/flightgear/mailman/message/33245028/</ref>.


* [http://forum.flightgear.org/viewtopic.php?f=22&t=26504#p246868 Airplane is in FG root, can't see in flightgear wizard]  ·{{Issue|#1772}}
* [http://forum.flightgear.org/viewtopic.php?f=22&t=26504#p246868 Airplane is in FG root, can't see in flightgear wizard]  ·{{Issue|#1772}}

Navigation menu