1
0
Fork 0
Commit graph

1352 commits

Author SHA1 Message Date
James Turner
ac38f29ae3 Launcher: exit/quit item on non-Mac
(Mac gets one automatically)
2017-04-13 13:01:29 +01:00
James Turner
5f8f2886dc Launcher: fix bugs around paths setting.
We now show paths in ‘view command line’ and set them through the
standard mechanism. Re-ordering the paths also notifies the rest of
the system correctly.
2017-04-13 12:55:51 +01:00
James Turner
dd0b9adbfc Comsetic launcher tweaks. 2017-04-13 09:19:19 +01:00
James Turner
8dbd3f8bd5 Fix QRC URL creation for older Qt versions 2017-04-11 08:06:45 +01:00
James Turner
fac0341e04 Kill use of private header. 2017-04-10 22:18:19 +01:00
James Turner
68ef30d3af Linux / Qt 5.2 fixes 2017-04-10 14:39:27 +01:00
James Turner
d1e9d357b9 Trying to reduce int types warnings. 2017-04-10 14:38:57 +01:00
James Turner
427f662dca Settings searching support.
Also tightened up the layouts.
2017-04-10 14:38:57 +01:00
James Turner
3732930269 QML-driven settings UI. 2017-04-10 14:38:57 +01:00
James Turner
5c713a6b55 Split the launcher main window into its own file.
Reduces QtLauncher.cxx down to the public API and the static helper
methods; the main window lives in its own file.
2017-04-10 14:38:57 +01:00
James Turner
4234876789 Move some Launcher helpers into their own files.
Suggested be Sebastian, and it’s a good idea indeed, the main
launcher file has grown slightly.
2017-04-10 14:38:57 +01:00
James Turner
bf1ffb8875 Proof-of-concept for new settings UI. 2017-04-10 14:38:57 +01:00
Florent Rougon
4b494a69bd Rename fatalMessageBox() to fatalMessageBoxWithoutExit(), add exiting variant
- Rename fatalMessageBox() to fatalMessageBoxWithoutExit(). This should
  prevent the kind of bug that prompted this set of changes: someone
  calling fatalMessageBox(), assuming the program would stop at that
  point, whereas in reality it did not.

- Add new function fatalMessageBoxThenExit(). This is not vital of
  course, but allows one to spare one line here and there and to apply
  the DRY principle for such fatal exits.

- Replace every existing call to fatalMessageBox() with one or the other
  of the two new functions. Improve formatting along the way. This
  fixes a few bugs of the kind explained above.
2017-04-10 02:29:48 +02:00
Florent Rougon
680f940378 Revert commit "Make fatalMessageBox() end with std::abort() [...]"
This reverts commit 9e6a3ebc6b ("Make
fatalMessageBox() end with std::abort() and declare it [[noreturn]]").

After reflexion, it seems better to let fatalMessageBox() return,
because there is existing code that appears to be relying on this aspect
to do some work after having called fatalMessageBox() (cf. main() in
bootstrap.cxx). Also, the way of exiting from fatalMessageBox() after
commit 9e6a3ebc6b (std::abort()) was probably too brutal for a
controlled exit---as opposed to a terminate handler.
2017-04-10 02:29:48 +02:00
James Turner
09dd24c139 Fix build with Qt 5.2 2017-04-09 23:55:47 +01:00
Florent Rougon
9e6a3ebc6b Make fatalMessageBox() end with std::abort() and declare it [[noreturn]]
Many places calling fatalMessageBox() assume it doesn't return, so make
it behave this way. See discussion around:

  https://sourceforge.net/p/flightgear/mailman/message/35766691/

for some context.
2017-04-08 14:34:26 +02:00
James Turner
962ede1c43 Fix how launcher resets heading-deg.
This ensures finalisePosition logic runs as expected, ensuring
real-world METAR usage kicks in.
2017-03-19 11:55:10 +00:00
James Turner
6880761f7b Launcher diagram: faster boundary computation.
No need to completely rebuild in these cases.
2017-03-16 22:42:58 +00:00
James Turner
a1bc99ec84 Fix slow launcher diagram with bad airport data. 2017-03-16 22:41:59 +00:00
Florent Rougon
f4788cddb4 Qt launcher: accept scenery paths containing either of: Buildings, Roads, Pylons
When adding a scenery path in the built-in launcher, accept folders
containing any of the new directories populated by osm2city. Also try to
improve the message that is displayed when the sanity check conditions
for the added scenery path aren't met (cf. discussion around
<https://sourceforge.net/p/flightgear/mailman/message/35716946/>).
2017-03-15 00:42:36 +01:00
Szymon Acedański
14611e905e GUI: do not complain if only NavData is present in scenery folder 2017-03-09 00:10:26 +01:00
James Turner
8d68741ee9 On-disk support for multiple primary aircraft.
Also add support for customised / per-variant thumbnails in on-disk
aircraft; equivalent support for catalog aircraft still to be done.
2017-03-05 22:02:25 +02:00
James Turner
39b239957e Startup-tip system.
Replace the license / website text with a startup tip. Tips are shown
based on the day of the year, can be changed easily.
2017-03-03 23:21:18 +02:00
James Turner
bd17a64487 Fix a typo in launcher console handling. 2017-02-27 23:31:08 +00:00
James Turner
314844e3c8 Make —console work in the launcher.
As discussed on the ML, due to how this options is processed, the
launcher setting it doesn’t make it take effect, so deal with it
manually.
2017-02-27 00:06:41 +00:00
Bertrand Coconnier
6e9d4e8ae4 Linux/Unix are case sensitive. 2017-02-26 01:39:33 +01:00
James Turner
17fe0460a9 Previews displayed in the launcher. 2017-02-25 21:47:58 +00:00
James Turner
006ca7186b Fix updating of add-on aircraft in the launcher.
Kick off a re-scan when adding or removing paths.
2017-02-22 17:09:24 +00:00
James Turner
72988a6bb7 Add the default hangar automatically on first-run.
Slightly ungainly but ensures we start with the default hangar
available. It can still be removed and re-added as normal.
2017-02-22 17:09:23 +00:00
James Turner
a83947edbf Basic validation of added scenery paths.
Try to catch uses adding parent directories and hence missing
scenery.
2017-02-10 23:04:00 +00:00
James Turner
0f3659818b QtInfoMsg requires Qt 5.5 2017-02-01 17:36:48 +01:00
James Turner
8f7c0d6801 Scenery extraction: set progress text
Fixes bug:https://sourceforge.net/p/flightgear/codetickets/1938/
2017-01-31 17:11:44 +01:00
James Turner
658074f78e Map Qt log to the Simgear log. 2017-01-30 08:01:20 +01:00
James Turner
70e79a849e Tweak launcher to be a MainWindow
For unknown reasons this seems to alleviate the word-wrap / min-height
bug on Windows. Committing so we can test and verify this is really
the case before the next release.
2017-01-26 00:38:19 +00:00
James Turner
fb1a29200a Merge /u/setvisible/flightgear/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/72/
2017-01-25 23:36:52 +00:00
James Turner
a0f2726a39 Set default airport/aircraft in the launcher.
Parse the defaults file to set the desired default aircraft and
airport when no previous state exists.

Fixes:
https://sourceforge.net/p/flightgear/codetickets/1936/
2017-01-25 20:41:40 +00:00
setvisible
7d02ffecab Changed aircraft list's scrolling policy to *ScroolPerPixels*, because items have non-regular height. 2017-01-25 18:40:40 +01:00
setvisible
928567650f Added the missing FG icons to the Qt dialogs 2017-01-25 18:18:11 +01:00
setvisible
5ce85c2248 fixed the missing FG icon (QtLauncher's mainwindow) 2017-01-21 19:23:21 +01:00
James Turner
8472a8c38a Launcher smoothly scales thumbnails.
Was accidentally using nearest, not linear, interpolation when
resizing thumbnails. Very pixels. Much ugly.
2017-01-17 22:18:35 +00:00
James Turner
78498c560d Rename preferences.xml -> defaults.xml
Requires FGData commit: 0565eaab10a5d466cd485766b17d1870936a0a57
(which actually renames the file).

Also disables the preferences-load command since I don’t believe it
would actually be safe to reload the defaults without doing a simulator
reset (aircraft -set.xml values would be overwritten, for example)
2017-01-12 09:45:19 +00:00
Florent Rougon
16fdfac7ae QtFileDialog: allow showing hidden files 2016-12-30 02:12:59 +01:00
Florent Rougon
a6afda53bb Split flightgear::initApp() to make it usable even without FGGlobals initialized
- Add an optional argument to flightgear::initApp(): doInitQSettings.
  This argument defaults to true, preserving initApp()'s behavior in
  this respect. If this argument is set to false, FGGlobals doesn't have
  to be initialized.

- New function flightgear::initQSettings(), called by
  flightgear::initApp() when its 'doInitQSettings' argument is true.
  This allows initializing the QSettings exactly when it is needed.

- New function flightgear::checkKeyboardModifiersForSettingFGRoot().
  The code it contains used to be run from initApp(), which is
  undesirable because:

    1) initApp() is not only called at FG initialization (fgMainInit()),
       but also from QtMessageBox(), from QtFileDialog::exec() and twice
       from Options::setupRoot(). However, checking the Alt and Shift
       modifiers to set 'fg-root' in QSettings to the special value
       "!ask" only makes sense in fgMainInit(), not in these other
       places.

    2) This code relies on the QSettings to be set up, and therefore on
       FGGlobals. Thus, freeing initApp() of its dependency on FGGlobals
       requires splitting this keyboard modifiers checking code out of
       initApp().
2016-12-29 11:33:19 +01:00
James Turner
57432c20ad Remove some stale code. 2016-12-21 10:26:31 +00:00
James Turner
d831751b11 Fix aircraft-history naming of variants. 2016-12-18 21:25:05 +00:00
James Turner
85f75dee4f Fix a couple of potential crashes on exit.
- Font cache shutdown explicitly
- Pending GUI snapshot cleared explicitly

Both of these are dependencies on the osgViewer / GLContext.
2016-12-10 23:24:09 +00:00
Erik Hofman
7ed4a5162e Replace auto_ptr with unique_ptr 2016-12-07 11:03:54 +01:00
James Turner
54aec82c38 Search packages using the matches API 2016-11-30 21:33:16 +00:00
James Turner
825c8c2006 Nicer rendering of aircraft ratings. 2016-11-29 15:45:17 +00:00
James Turner
53d50d9ba0 Tweak painting of aircraft ratings in launcher.
Should ensure the full text is visible with a wider range of font sizes.
2016-11-28 18:17:25 +00:00
James Turner
b0fcd78e9f Fix lazy-loaded thumbnail size for aircraft dirs. 2016-11-25 22:53:06 +00:00
James Turner
5db1f5cad6 Per variant authors/description data.
Will only work once the catalogs(s) are updated, and needs a
corresponding SimGear update.
2016-11-25 22:45:48 +00:00
James Turner
ee1a042847 respect servers online flag. 2016-11-21 22:01:06 +00:00
James Turner
780e0f5a02 Restore active aircraft variant also. 2016-11-20 22:42:48 +00:00
James Turner
1a6263f22a Don’t greedy load on-disk aircraft thumbnails.
Should make switching to the aircraft launcher tab more responsive when
using larger aircraft directories, such as a complete FGaddon checkout.
2016-11-18 16:39:00 +01:00
James Turner
ad17df3e1b Refactor launcher delegate state tracking.
Instead of the two vectors we manually composed, used a single unified
vector of structs to store delegate information in the model. This
simplifies the logic for tracking the active variant (and in the future,
thumbnail).
2016-11-16 22:37:44 +01:00
James Turner
a3c4b2d953 Better searching for aircraft in the launcher.
Search more fields from the package.
2016-11-13 22:51:35 +01:00
James Turner
e523b57215 Fix Windows compilation hopefully. 2016-11-08 09:26:54 +01:00
James Turner
e1cf3423a5 ‘Update all aircraft’ UI overlay.
WIP, but basics should be there.
2016-11-07 20:49:33 +01:00
James Turner
4d8c04bc58 Tweak launcher summary page.
Include the aircraft description, and move the thumbnail to give
more room for displaying text.
2016-11-07 15:14:41 +01:00
James Turner
f12de69056 Add MP status to launcher summary. 2016-11-07 13:00:57 +01:00
James Turner
a46c7ca8e4 Launcher has history for locations and aircraft.
Move the existing aircraft history to a more obvious place, and follow
the same pattern for the complete location history. This makes restoring
a previously used configuration much simpler.
2016-11-07 12:54:38 +01:00
James Turner
90f4214afa Launcher fix handling of default MP port.
Without this, a default port for a custom server does not get set
correctly.
2016-11-06 21:51:15 +01:00
James Turner
18b8a76262 Launcher uninstall button for aircraft. 2016-11-06 21:50:34 +01:00
James Turner
4c462872ff Launcher lib uses SimGear
Need this so package headers are available when compiling the launcher
classes.
2016-11-03 09:56:48 +00:00
James Turner
1286e4157b Save / restore launcher window geometry. 2016-10-24 12:27:49 +01:00
James Turner
0878a1fba8 Launcher: remove spacer above ‘additional options’. 2016-10-24 12:25:12 +01:00
James Turner
ad43d52070 Fix message-box crash in non-Qt builds.
Only affects Linux where we have no fallback UI option.

https://sourceforge.net/p/flightgear/codetickets/1900/
2016-10-20 20:27:47 +01:00
James Turner
ce79be323a Fix command line doc URL.
https://sourceforge.net/p/flightgear/codetickets/1906/
2016-10-20 20:27:47 +01:00
Florent Rougon
101bdce343 APTLoader: improve progress status info
It is not needed anymore to hardcode the number of lines of
$FG_ROOT/Airports/apt.dat.gz. The new method, which relies on
SGPath::sizeInBytes() and sg_gzifstream::approxOffset(), works as well
for the other dat files.

Add a new NavCache rebuild phase, REBUILD_READING_APT_DAT_FILES, since
the process is now made of two parts.

Rename NavDataCachePrivate::getDatFilesPaths() to
NavDataCachePrivate::findDatFiles(), because it now returns a
DatFilesGroupInfo (new struct) instead of a PathList. For the same
reason, rename NavDataCachePrivate::aptDatPaths to
NavDataCachePrivate::aptDatFilesInfo. Adapt signatures, etc.

This requires up-to-date SimGear and FGData.
2016-10-19 13:01:35 +02:00
Florent Rougon
9eb56fc9f1 Add tooltips in built-in launcher: remind to restart after changing scenery paths
Maybe this won't be necessary anymore in the future, but for now it is.
2016-10-17 12:10:03 +01:00
Florent Rougon
670cf9a894 Initial support for NavData/<type>/*.dat[.gz] files in scenery paths
Load every file matching the pattern NavData/apt/*.dat[.gz] inside each
scenery path. These files are loaded in the same order as the components
of globals->get_unmangled_fg_scenery() they reside in. Inside a given
component, the order is determined by pathSortPredicate() in
simgear/misc/sg_dir.cxx (lexicographic order at the time of this
writing). For compatibility with existing scenery,
$FG_ROOT/Airports/apt.dat.gz is also loaded last.

The idea is that such files will have the same precedence order as the
globals->get_unmangled_fg_scenery() scenery components they come from.
This commit doesn't handle this fully yet, though: it blindly loads all
these files. A future commit will ensure that no airport is loaded twice
due to overlapping apt.dat files. This commit however handles all the
logic of navdata cache rebuilding when the list, the order of apt.dat
files, or any of their timestamps changes.

Although only apt.dat files receive a new treatment in this commit, the
changes to NavDataCache.[ch]xx are already generic so that extension of
this method to fix.dat, nav.dat, etc. will require almost no change to
NavDataCache.[ch]xx (however, changes will probably be needed in the
various loaders: in fixlist.[ch]xx, navdb.[ch]xx, etc.).

src/Navaids/CacheSchema.h:

  - increment the SCHEMA_VERSION by 1. This ensures among others that if
    someone uses a FlightGear version posterior to this change with
    new-style scenery (having NavData/apt/*.dat[.gz] files inside
    scenery paths), then goes back to a FlightGear version anterior to
    this change, his NavCache is rebuilt ignoring the in-scenery-paths
    NavData/apt/*.dat[.gz] files, as expected with the old FlightGear
    version.

src/Navaids/NavDataCache.cxx:

  - NavDataCachePrivate: replace aptDatPath (SGPath) with aptDatPaths
    (PathList).

  - NavDataCachePrivate::getDatFilesPaths(): new method that returns the
    list of $scenery_path/NavData/<type>/*.dat[.gz] files found inside
    scenery paths (where <type> is one of 'apt', 'fix', etc.), plus the
    historical file (e.g., $FG_ROOT/Airports/apt.dat.gz for the 'apt'
    type).

  - NavDataCachePrivate::areDatFilesModified(): new method that tells
    whether any of these files (for a given type) has changed since the
    last NavCache rebuild, or if their ordered list has changed.

  - NavDataCachePrivate::isCachedFileModified(): minor changes.

  - NavDataCache::updateListsOfDatFiles(): new method that updates the
    lists of dat files used for NavCache freshness checking and
    rebuilding, i.e. currently sets/updates d->aptDatPaths using the new
    method d->getDatFilesPaths(), and d->metarDatPath, d->navDatPath,
    d->fixDatPath, d->poiDatPath, etc. as usual. This method will be
    useful for instance in the built-in launcher after updating scenery
    paths and before calling NavDataCache::isRebuildRequired().

  - NavDataCache::NavDataCache(): use
    NavDataCache::updateListsOfDatFiles() to initialize d->aptDatPaths,
    d->metarDatPath, d->navDatPath, d->fixDatPath, d->poiDatPath, etc.

  - NavDataCache::isRebuildRequired(): use
    NavDataCachePrivate::areDatFilesModified() instead of just checking
    $FG_ROOT/Airports/apt.dat.gz.

  - NavDataCache::doRebuild(): load all apt.dat files listed in
    d->aptDatPaths, instead of only $FG_ROOT/Airports/apt.dat.gz. Write
    their ordered list and timestamps in the NavCache.

src/Navaids/NavDataCache.hxx:

  - declare the new method NavDataCache::updateListsOfDatFiles().

  - NavDataCache::DatFileType: new enum with values DATFILETYPE_APT,
    DATFILETYPE_METAR, DATFILETYPE_AWY, DATFILETYPE_NAV,
    DATFILETYPE_FIX, DATFILETYPE_POI, DATFILETYPE_CARRIER and
    DATFILETYPE_TACAN_FREQ. Maybe some of the corresponding files won't
    have to be moved to scenery paths, but simply listing them in the
    enum doesn't change how they are dealt with. Those for which
    per-scenery-path locations doesn't make sense can just be removed
    from the enum.

  - NavDataCache::datTypeStr: new static string_list giving an
    std::string such as 'apt' for each value of the
    NavDataCache::DatFileType enum.

  - NavDataCache::defaultDatFile: new static string_list giving a path
    (relative to $FG_ROOT) to the historical/default file for each value
    of the NavDataCache::DatFileType enum.

src/Airports/apt_loader.cxx and src/Airports/apt_loader.hxx:

  - always include a path to the apt.dat file being processed in log
    messages, since they can now apply to many files;

  - be clearer about code 99: it should normally be at the end of
    apt.dat files, but technically, it is not an EOF;

  - use the expression "row code" consistently with the apt.dat format
    spec (for now: only in places where there is another change to do).

src/GUI/QtLauncher.cxx and src/GUI/QtLauncher_private.hxx:

  - turn QtLauncher::setSceneryPaths() into a static method and call it
    in runLauncherDialog() before instantiating NavDataCache, so that
    NavDataCache::updateListsOfDatFiles() (called from NavDataCache's
    constructor) can see all configured scenery paths.
2016-10-17 12:10:03 +01:00
James Turner
2ff476a217 More safe subsystem accessors. 2016-09-27 05:58:47 -05:00
James Turner
52b91d4863 Fix a crash when network is slow. 2016-09-27 05:58:47 -05:00
James Turner
465be55100 Tweak launcher layout margins.
Trying to squeeze things back into an XGA screen. Will backport once
I get feedback.
2016-09-08 14:49:52 +01:00
James Turner
0d069f2581 Fix launcher cmd-Q behaviour. 2016-09-08 11:41:21 +01:00
James Turner
3993adce5a Fix launcher failure when MP is enabled.
Only set —callsign argument if the user entered one.
2016-08-31 23:07:21 +01:00
James Turner
3c4542fba6 Fix re-selection of start location. 2016-08-21 10:36:54 -05:00
James Turner
904bb74036 Launcher sets location via properties.
Bypass the options system to set location from the launcher; this
allows the same code to be used in-sim for repositioning, while
keeping compatibility with other repositions approaches.
2016-08-20 19:46:19 -05:00
James Turner
1ca5ceb318 Launcher can see install Airports/ data. 2016-08-19 12:12:02 +01:00
Rebecca N. Palmer
db825d3119 fix "QObject::connect: No such slot
NaturalEarthDataLoaderThread::onFinished()" error message
2016-08-15 23:10:06 +01:00
Erik Hofman
bd9e43e613 Fix a problem for MSVC 2016-08-12 11:48:34 +02:00
Rebecca N. Palmer
63ab28f0e6 QtLauncher: fix build with Qt < 5.4 2016-08-11 22:32:29 +01:00
James Turner
a60d07ea9c Incremental insert of NE data to the index. 2016-08-09 09:38:54 +01:00
James Turner
7cebc76b9d Async loading of NaturalEarth data for launcher. 2016-08-08 23:13:57 +01:00
James Turner
8577d74430 Move launcher summary to a separate tab.
This is an experiment to reduce the vertical height needed by the
launcher.
2016-08-08 17:47:09 +01:00
James Turner
ffdf542871 Launcher: fix ‘midnight’ time of day option.
TimeManager uses ‘midnight’ so we need to do the same.
2016-07-31 23:24:51 +01:00
Erik Hofman
c17c3595c8 Set /sim/rendering/initialized to true at the appropriate moment and use it instead of /sim/initialized for the messagebox 2016-07-21 13:55:31 +02:00
Erik Hofman
08916602bb Make sure FlightGear is initialized before using the PUI dialog box, dump the the console otherwsise 2016-07-21 13:42:09 +02:00
Erik Hofman
e2216891be Move the PUI dialog code to James' new messagebox code and use that one instead for SG_LOG_POPUP to get a native popup window if available and fall back to a PUI one if not 2016-07-21 08:56:05 +02:00
James Turner
4e239d2628 Fix persistence of on-ground location. 2016-07-16 18:23:48 +01:00
James Turner
07109d79f5 Improve rendering of longer parking names. 2016-07-16 17:49:12 +01:00
James Turner
e765d1c0fa Enforce a minimum pixel width for runway clicking
- ensures runways can be clicked when zoomed out.
2016-07-16 17:48:55 +01:00
James Turner
d90b8dcb33 Fix selection of parking positions by clicking. 2016-07-16 16:57:19 +01:00
James Turner
38202b0774 Launcher: show selected parking in yellow. 2016-07-16 12:07:34 +01:00
James Turner
c0d93235de Fix for launcher always enabling MP 2016-07-15 22:48:37 +01:00
James Turner
ecb8ec57c0 FlightGear path API tweaks 2016-07-15 10:16:08 +01:00
James Turner
d800c49cb9 Custom MP server support. 2016-07-12 16:52:59 +01:00
James Turner
9650cf4e6a Initial MP support in the launcher. 2016-07-08 09:36:54 +01:00
James Turner
40b74c4e32 Fix an assert on Windows 2016-06-29 16:25:42 +01:00
James Turner
0b11dd626a Further Windows SGpath fixes 2016-06-28 16:52:42 +01:00
James Turner
6d0c2070fd Use future-proof SGPath APIs.
Remove uses of .str(), .c_str() and some other methods of SGPath.
Pass SGPath directly where possible, or explicitly convert to the
appropriate 8-bit encoding.
2016-06-28 10:08:38 +01:00
James Turner
16814800ce Use Paths instead of strings. 2016-06-22 17:36:05 +01:00
James Turner
03ecac9dbc Work with new SGPath API. 2016-06-22 17:36:05 +01:00
James Turner
6f95e61da8 For stable versions, download data tarball directly
Part of https://sourceforge.net/p/flightgear/codetickets/1865/
2016-06-17 22:48:24 +01:00
James Turner
1d912c91df Avoid overlap of ratings / progress bar
Part of issues mentioned in:

https://sourceforge.net/p/flightgear/codetickets/1865/
2016-06-17 22:42:33 +01:00
James Turner
3f7e59a1a5 Allow scenery installation from the launcher.
Replaces FGadmin functionality.
2016-06-15 22:28:54 +01:00
James Turner
3a15b2f979 Launcher: fix a crash on searching locations
When hitting return multiple times, could hit a null-pointer
crash here.
2016-06-09 11:04:32 +01:00
James Turner
95f86b658c Hide add-ons tab when running launcher in-app 2016-06-08 12:00:35 +01:00
James Turner
5d624b4882 Fallback URL when official catalog is not found.
Tolerate the case where a URL matching the exact FG version is
not found; lookup a generic URL, in the hope it supports our
version (additional changes will make this more likely)
2016-05-26 17:37:26 +01:00
James Turner
7dfe556b4a Real fix for Mac deployment issues. 2016-05-21 14:00:29 +01:00
James Turner
f2273c7793 Testing if this change broke Mac deployment.
Hopefully it didn’t but the time-frame is correct and it’s just
about the only code that happens before QApplication is created.
2016-05-21 10:36:51 +01:00
James Turner
2da1d38c56 Clearer aircraft search prompt. 2016-04-17 18:00:37 +01:00
Alessandro Menti
98a6b60b00 Launcher: silence 'Unknown aircraft URI scheme' warning on empty selection
------------------------------------------------------------------------
If no aircraft is selected in the launcher, the routine
AircraftItemModel::indexOfAircraftURI is called with an empty QUri,
triggering a warning in the terminal.

This commit removes such warning by ignoring QUris with empty schemes
(the routine still returns an invalid index).
2016-04-17 17:55:05 +01:00
Alessandro Menti
550dde314f Launcher: do not launch the simulator when closing the Qt launcher with ESC 2016-04-17 17:54:41 +01:00
Alessandro Menti
4820026907 Launcher: fix window flags on the "Add catalog" progress dialog 2016-04-17 17:54:02 +01:00
Alessandro Menti
e9e05081d5 Launcher: state that it is needed to press Enter to search for the airport 2016-04-17 17:53:36 +01:00
Alessandro Menti
0381ba8468 Launcher: disable Close button on the initial progress dialog 2016-04-17 17:53:24 +01:00
Alessandro Menti
34fd51d35c Launcher: spelling fix in "Add Catalog" dialog window 2016-04-17 17:53:02 +01:00
James Turner
bbd15eb370 Fix a typo 2016-04-15 18:03:01 +01:00
James Turner
a63da0cbde Minor improvement to hangar list in the launcher. 2016-04-15 17:27:29 +01:00
James Turner
31cad6d384 Fixes to launcher description rendering. 2016-04-15 17:21:49 +01:00
James Turner
6095646a62 Prompt the user when the default hangar is missing.
In the Qt launcher, when the default hangar isn’t found, show
a hint in the aircraft list.
2016-04-15 17:06:53 +01:00
James Turner
43add4f820 Fix stray back-button in Qt launcher
- when no location is set, don’t show the back button.
2016-04-14 18:54:27 +01:00
James Turner
5e4063b761 Move launcher settings store inside FG_HOME
Settings now in .ini format, at $FG_HOME/flightgear.org/FlightGear.ini
2016-04-08 10:40:26 +01:00
James Turner
5341d327fd Restructure paths handling in the launcher
- move the dialog into a new ‘add-ons’ tab

- separate out ‘restore settings’ from selecting a new fg-data

- actually relaunch the app
2016-04-08 10:26:34 +01:00
James Turner
08ea386197 Fix corrupt HUD fonts
osg::texture2D changes GL_UNPACK_ROW_LENGTH, which fntLoadTXF is not
prepared to deal with. Reset the value back to 0 before loading +
caching TXF fonts on the PLIB side.
2016-03-28 22:54:24 +01:00
James Turner
5baca8598f Improve download-dir behaviour.
When set on the command line, will be used for aircraft packages. When
set in the Qt launcher, will also be used for aircraft downloads at
all times.

When changing the path in the launcher, the set of aircraft catalogs
is refresh automatically. Note the default catalog may need to be
re-installed.
2016-03-24 15:10:06 +00:00
James Turner
733e3b3f0c HTTP subsystem has a default name.
Switch to using type-safe accessors now.
2016-03-24 15:08:38 +00:00
James Turner
cbf16b7966 Fix copy-paste bug setting season in the Qt guy
Spotted by Adrian Serrano!
2016-03-22 10:56:05 +00:00
James Turner
74f17d2882 Fix missing menubar on Mac in some setups
- Only clear the OSG ‘pose as standalone’ flag when we really show
  a dialog, as opposed to when we /might/ show.

Tested:
 - Qt build using launcher
 - No Qt build 
 - Qt build but launcher not requested
2016-03-19 14:46:11 +00:00
Torsten Dreyer
1bf5fe1c27 Fix for FreeBSD and a typo
Fix provided by Ganael LAPLANCHE, thanks!
2016-03-12 20:55:46 +01:00
James Turner
43b4db7ef7 Improve UI around adding aircraft dirs
- Check if the selected path, or an ‘Aircraft’ subdir,  contains
some -set.xml files, and if not, warn the user.
2016-03-05 09:35:02 +00:00
James Turner
688ae7d156 Bugfix: Qt launcher, enable variant aircraft on-disk
When mapping a URI to a QModelIndex, we were only considering the 
primary aircraft path, for on-disk aircraft as opposed to packages.
2016-03-05 09:34:16 +00:00
James Turner
1aa6482a59 Fix bug #1845, closing the Qt launcher
Intercept the close event and quit the app instead of continuing to
run the main FlightGear application.

https://sourceforge.net/p/flightgear/codetickets/1845/
2016-02-24 21:50:48 +02:00
Rebecca N. Palmer
e1d0699bdb add new QtFileDialog to avoid using Nasal in file selectors
(and hence avoid applying Nasal security rules to them)
2016-02-10 22:58:56 +00:00
James Turner
c72309360e Defensive handling of locales.
- Use setlocale() to ensure consistent handling of locales and
  string handling irrespective of whether or not QCoreApplication
  is invoked. Forces a the C locale for numerics and collation,
  since many pieces of FG assume this.
2016-02-02 20:44:46 +00:00
James Turner
2677b3a226 Use target_include_directories in some places.
I didn’t know about this feature when doing the original CMake files,
we can use this to target header-file includes more precisely.

(Probably more cases exist that can be changed from global to target-
specific includes)
2016-01-26 07:48:30 +01:00
James Turner
d81d353940 Improved fg-root control from the Qt Launcher
- add a button to the main dialog, explaining how to adjust the 
  fg-root path via the GUI
- tweak the GUI flow to support explicitly changing the path even
  when the default path is acceptable.
2016-01-18 20:06:43 -05:00
James Turner
e32b02b28f Launcher: fix slot name for old-style syntax 2016-01-12 17:25:54 -06:00
Erik Hofman
f19c8ac05d Apperently maybeRestoreAircraftSelection() needs to be a slot 2016-01-11 09:46:16 +01:00
James Turner
409ffc971d Fixes to launcher aircraft delegate.
- fix some text size computation issues
2016-01-10 23:46:44 -06:00
James Turner
d10d279064 Launcher finds parking positions from scenery
- change launcher to examine the scenery paths and hence load
  ground-net files for airports to populate parking data.

- refactor ground-net XML parsing to use FGGroundNetwork only, not
  AirportDynamics. 

- change parenting  of GroundNetwork to Airport, since it contains
  immutable data now.
2016-01-10 16:38:01 -06:00
James Turner
4befe0e6ea Launcher: Maintain aircraft selection better
- when launching or toggling settings, try to keep the current
  aircraft selected and in-view.
2016-01-10 13:47:57 -06:00
James Turner
b0ee3f98f3 ‘only show installed checkbox’ for Qt launcher
- will be replaced when I think of a prettier UI, but this
  feature is important to have for now.
2016-01-10 12:56:46 -06:00
James Turner
e5c6d14cef Allow re-ordering of paths in the launcher.
- suggested by Gilberto, allow the user to set the order of the
  scenery and aircraft paths by dragging.
2016-01-09 17:17:58 -06:00
James Turner
359f924ec9 Package variants working. 2016-01-03 20:58:03 -06:00
James Turner
fc9c43b48d Remove FontCache from globals.
- access via a singleton instead.
2016-01-03 12:00:15 -06:00
Torsten Dreyer
7a69b9beff don't always open "file opened in new browser window" popup
Setting /sim/gui/show-browser-open-hint to false disables the popup.
Default is true (show the popup)
2015-12-22 11:42:27 +01:00
James Turner
7afedb1702 Work on visualisation of Vias 2015-12-11 13:43:25 -06:00
James Turner
846fd21698 GUI support for VIA/Discontinuity 2015-12-11 13:43:25 -06:00
James Turner
8877b442f8 ATC/Traffic doesn’t crash reset.
- remove some global headers from AI headers, to avoid pollution
- change how ATC owns the ‘player’ FGAIAircraft so reset works
- ensure AIAircraft controllers are cleared on unbind for reset
2015-12-11 12:11:59 -06:00
James Turner
fc887b106b Checkpoint - ground-net skips the cache 2015-12-01 14:01:32 +00:00
James Turner
cec1de6219 Use a transaction when indexing polylines. 2015-11-29 14:18:30 +00:00
James Turner
5e4f212b84 Remove some debugs 2015-11-27 23:25:24 +00:00
James Turner
6ee7e51af3 Clamp diagram zoom.
- avoid poor performance and unusable UI when zooming out
2015-11-27 23:25:11 +00:00
James Turner
242e79f5e9 Fix some coastline issues. 2015-11-27 23:02:42 +00:00
James Turner
bfb539f090 Launcher shows polygon/polyline data 2015-11-27 23:02:42 +00:00
James Turner
6a41353bdc Remove accidentally duplicated functions. 2015-11-26 23:48:16 +00:00
James Turner
f39fc0f086 Remove a stray debug. 2015-11-26 23:48:16 +00:00
James Turner
a63fff14cc Graphical picking of parking/helipads too. 2015-11-24 22:14:22 +00:00
James Turner
cfcdd9da45 Add helipad support to the diagram.
- stops crashes selecting a heliport.
2015-11-24 21:46:14 +00:00
James Turner
3cee5eea73 Initial work on rendering parking locations. 2015-11-24 21:46:14 +00:00
Rebecca N. Palmer
cc725c61de Use SLOT for both uses of QTimer::singleShot
(fix Qt < 5.4 build)
2015-11-24 18:40:54 +00:00
James Turner
2d1c5d47ee Fix MSVC2012 build
- multi-line QStringLiteral doesn’t work on MSVC prior to 2013. Boo.
2015-11-24 15:36:53 +00:00
James Turner
9e60dcba61 Use old-style SLOT macro for Qtimer::singleShot
- member-function-pointer variant was only added in 5.4
2015-11-24 08:05:17 +00:00
Rebecca N. Palmer
997a431d53 {fatal,modal}MessageBox: Use Qt on Linux when available
(console error messages are invisible when started from an icon)
2015-11-24 07:24:32 +00:00
James Turner
be1291f689 Change handling of default hangar / catalog.
- no longer re-add it on startup, add an explicit button in the UI

(will add a more obvious item to the aircraft list in a follow-up
commit)
2015-11-23 22:58:00 +00:00
James Turner
4ea093ecc4 Ensure aircraft list stays in sync
- when removing a catalog, use the new notification to refresh
  the list, so we don’t show stale package data.
2015-11-23 17:59:16 +00:00
James Turner
3ccea681ea Fix merge noise 2015-11-23 01:19:03 +00:00
James Turner
579881322e Lat-lon startup location fixes. 2015-11-23 00:48:21 +00:00
James Turner
5184f3404c Labels on large airports in the diagram 2015-11-23 00:48:21 +00:00
James Turner
e356e691b2 Cap number of airports displayed in diagrams
- restrict heliports / seaports by aircraft type
- prioritise by runway length
- clean up airport label names
2015-11-23 00:48:21 +00:00
James Turner
1010caeaf6 Remove some debugs. 2015-11-23 00:48:20 +00:00
James Turner
97a5e15aaf Show paused message when starting frozen. 2015-11-23 00:48:20 +00:00
James Turner
e63a95feb9 Draw aircraft on airport diagram 2015-11-23 00:48:20 +00:00
James Turner
5fd350cb3d Fix unproject / navaid drawing. 2015-11-23 00:48:20 +00:00
James Turner
eb06aeba97 Closed airport support. 2015-11-23 00:48:20 +00:00
James Turner
f4500e03f4 Label de-overlapping for diagrams 2015-11-23 00:48:20 +00:00
James Turner
317498fe4a Move airplane drawing into the base class.
- ground work for showing airplane on airport diagram
2015-11-23 00:48:20 +00:00
James Turner
6ec9c36afb Fix Linux compilation issues. 2015-11-23 00:48:20 +00:00
James Turner
9ab672abd8 Location history re-instaed 2015-11-23 00:48:20 +00:00
James Turner
19a8fc8822 Fixing launcher save/restore of settings. 2015-11-23 00:48:20 +00:00
James Turner
b9acb26c07 Work on launcher diagrams. 2015-11-23 00:47:01 +00:00
James Turner
5043bf0966 Fixes to launcher aircraft thumbnail sizing
- handle large images and longer descriptions correctly
2015-11-23 00:47:01 +00:00
James Turner
ceebd59001 Fallback when aircraft description is missing.
- avoids corrupted delegate display caused by asking for
  bounds of empty string.
2015-11-23 00:47:01 +00:00
James Turner
a39df48772 Navaid diagram for launcher
- work in progress, needs labels
2015-11-23 00:47:01 +00:00
James Turner
2b18479859 Lat-lon position support 2015-11-23 00:47:01 +00:00
James Turner
adedf7af65 Navaid diagram work 2015-11-23 00:47:01 +00:00
James Turner
c277395010 Start-paused for in-air starts 2015-11-23 00:47:01 +00:00
James Turner
addcc432fd ILS drawing in the airport diagram 2015-11-23 00:47:01 +00:00
James Turner
09cac14089 Work on LocationWidget for Qt launcher 2015-11-23 00:47:01 +00:00
James Turner
56d7d049bc Launcher GUI for in-air / navaid starts 2015-11-23 00:46:25 +00:00
James Turner
1e213201cf Work on the launcher 2015-11-23 00:45:21 +00:00
Rebecca N. Palmer
9d0fe40a45 QtLauncher::initApp: store argc to avoid crash
As QApplication only stores a reference to argc, it may crash if
the argc passed to it goes out of scope.  (One way to trigger this
is to pass an invalid --fg-root, triggering an initApp call from
Options::setupRoot.)  Copy argc to prevent this.
2015-11-22 21:05:09 +00:00
James Turner
b49dd70de9 Remove some debug noise 2015-09-27 23:13:18 -05:00
James Turner
43bcc85919 Correct handling of updating packages 2015-09-27 19:44:29 -05:00
James Turner
1e2460d9bf Disable mouse hover code for now. 2015-09-27 19:43:50 -05:00
Rebecca N. Palmer
a64cf82296 Use +=, not (5.5+ only) append, for concatenating QVectors 2015-09-21 22:12:24 +01:00
James Turner
18a898f5f9 Lots of work on aircraft package support 2015-09-20 19:46:35 -05:00
James Turner
c2cbb36d16 Work around a strange link failure on Mac
- Xcode 7 seems to dislike this code as was, adjusted version
links fine. Very odd.
2015-09-20 19:45:03 -05:00
James Turner
67352a1a52 Fix SIGSEGV with Qt launcher on Linux.
- patch from Dirk Dittmann
2015-08-02 18:33:05 -05:00
James Turner
4289ac77dd Remove some debug output. 2015-06-08 10:37:26 +01:00
James Turner
6e3a935abb Fix a Cocoa warning. 2015-06-08 10:37:26 +01:00
James Turner
f88b4aefe9 Disable testing hacks for package installs. 2015-06-05 14:27:23 +02:00
James Turner
9f5a4609d6 Launcher: airport diagram runways can be clicked
- indicate selected runway visually
2015-06-05 14:27:23 +02:00
James Turner
1933b71729 Explicit NSPathUtilities include. 2015-04-20 10:42:22 +01:00
James Turner
f4b07f899a Explicit NSBundle include
- should fix Jenkins build, hopefully.
2015-04-20 10:35:24 +01:00
James Turner
c07ce6d9bc Explicit AppKit includes for Mac. 2015-04-11 21:59:29 +01:00
James Turner
4f15e1a840 New PathsDialog, for managing locations. 2015-04-10 15:11:14 +01:00
James Turner
aa20e0acd8 Work on new download-dir option
- simplify management of a single, user-facing
  location for large downloaded data.
2015-04-10 15:01:54 +01:00
James Turner
41ca6bd1de GUI exclude support.
- visual refinements in the delegate.
2015-04-10 14:44:44 +01:00
James Turner
d170de1909 Hacking on the delegate height. 2015-04-10 14:44:44 +01:00
James Turner
9ebdce3995 AircraftModel hacking for package support. 2015-04-10 14:44:44 +01:00
James Turner
217db33b99 Working on adding catalogs from the GUI 2015-04-10 14:44:44 +01:00
James Turner
d9a53e1140 Basics on catalog list model in the GUI. 2015-04-10 14:44:44 +01:00
Rebecca N. Palmer
ca362e9251 QtLauncher: fix adding aircraft paths
Avoids Nasal security errors when using "Additional aircraft locations"
2015-04-03 14:13:13 +01:00
James Turner
e0274af493 Percentage feedback during nav-cache build.
- also used by the GUI launcher for the same.
2015-03-19 12:01:38 -05:00
James Turner
2ebf21221d Fix a clang unused constant warning 2015-03-18 20:34:15 +01:00
James Turner
61eae124d4 Enable anti-aliasing in the airport diagram 2015-03-18 20:34:10 +01:00
bcoconni
32a8c712b0 The QUrl header is needed for compilation on Linux 2015-03-13 22:03:22 +01:00
James Turner
a6937e25ad Make a new launcher tab for add-ons
- avoids the settings page being overloaded with list boxes.
2015-03-12 10:36:41 +00:00
James Turner
1e1326d8f3 Aircraft path support in the Qt launcher
- aircraft dirs are re-scanned when the paths change.
2015-03-11 23:20:29 +00:00
James Turner
11c2623dec Start wiring package manager into the launcher. 2015-03-11 17:09:59 +00:00
James Turner
92864265af Refactor aircraft helper classes
- move the aircraft list and delegate to their own files
2015-03-11 17:09:59 +00:00
James Turner
c3543f8fdd GUI ‘restore defaults’ support.
- Hold ‘alt’ on launch to restore defaults, including launcher prefs.
2015-03-08 00:42:39 +00:00
James Turner
f9c23eb096 Add missing GPL boilerplate. 2015-03-08 00:42:39 +00:00
James Turner
a466dbce73 Very crude work on GUI base package selection.
- feedback on wording greatly appreciated.
- needed to make nightly builds usable without bundled data.
2015-03-08 00:42:05 +00:00
James Turner
8d9db2824e Launch aircraft data cache
- makes successive aircraft scans much faster since -set.xml parsing
  can be skipped when the file is unmodified.
2015-03-08 00:42:05 +00:00
James Turner
4038ba3d51 Arrow icons for variant selection. 2015-03-05 15:53:40 +00:00
James Turner
7ca9fba4a8 Fix some off-by-one errors in variants GUI 2015-03-05 14:51:33 +00:00
James Turner
13d50853df Launcher support for aircraft variants.
- Allows for a less confusing UX when aircraft has several variants.
- Requires changes to aircraft -set.xml files.
2015-03-05 14:01:53 +00:00
James Turner
548b899fb6 Fix a couple more Qt version issues.
- only set the clearButton on QLineEdit if we have 5.2
- use itemData/currentIndex to avoid currentData()
2015-02-27 11:58:22 +00:00
James Turner
a3d3e81a86 Set placeholderText from code
Avoids a hard requirement of Qt 5.3; only 5.1 is
needed.
2015-02-25 23:14:02 +00:00
James Turner
1898a5fef8 Guard against a crash Torsten encountered once. 2015-02-23 18:22:52 +00:00
James Turner
c9c0833741 Qt launcher: additional arguments UI
Add a plain text edit widget to the launcher to support
custom command line arguments.
2015-02-23 13:41:50 +00:00
James Turner
8bfb63e4ed Launcher: select season. 2015-01-10 14:57:59 +00:00
James Turner
ce10b4c8f1 Ask before creating the custom aircraft dir. 2015-01-10 14:18:44 +00:00
James Turner
55b092771f Launcher: hook up MSAA checkbox. 2015-01-07 11:30:44 +00:00
James Turner
72e0ea9e40 Only set AUTOMOC for fglauncher target.
(Avoids pointless noise for all other targets)
2015-01-07 09:38:02 +00:00
James Turner
02bcb3718a Hook up parking position in launcher. 2015-01-06 21:12:19 +00:00
James Turner
53b478654c Linux fixes for launcher code. 2015-01-06 20:36:05 +00:00
James Turner
78e8f53312 In-app launcher for Mac, based on Qt5.
The old Mac launcher doesn’t work on Yosemite, add a tiny
Qt-based launcher inside the main process (no need to fork /
exec) which runs before the OSG window is created.

Will be merged for 3.4, hopefully with no impact on other
platforms.
2015-01-06 19:13:30 +00:00
James Turner
7317aff22d Fix route-path bugs:
- accurate fly-over / fly-by computations
 - parse additional LevelD XML elements
 - path vector contains curves for turns

Remove dead code.
2014-12-18 23:05:28 +00:00
James Turner
01622dd1f4 Fix flight-plan course and distance computations.
Always use the RoutePath system for course and distance computations
in the flight plan, so that dynamic segments are handled correctly.
2014-12-08 17:56:15 +00:00
Thomas Geymayer
d836126c75 Better fallback for missing menu and splash translations. 2014-07-30 23:53:16 +02:00
Thomas Geymayer
a673f4a5f9 Nasal: update for simgear changes. 2014-07-21 00:26:54 +02:00
James Turner
3f433e2c35 Fix polar rendering of map. (Bug #55)
Use an azimuth-equidistant projection, which handles high latitudes and
polar regions correctly. Written by Gijs de Rooy.
2014-06-29 21:45:18 +01:00
Thomas Geymayer
821af95e0d Keep (PUI) menubar visibility on gui-redraw. (Fix #1251)
For aircraft using fgcommand("gui-redraw"), which is for example
also used by gui.menuBind, the menubar was always hidden and
not shown again.
2014-06-21 14:51:34 +02:00
Thomas Geymayer
75f5eba002 Update includes (required by simgear changes) 2014-06-04 02:58:14 +02:00
Thomas Geymayer
3c0b7f88b8 Updates for simgear nasal::Ghost changes. 2014-06-03 19:00:25 +02:00
Thomas Geymayer
5b74a72506 Canvas: support for custom events and event dispatching. 2014-05-19 00:28:40 +02:00
James Turner
070dba29f9 Close dialogs on GUI shutdown
- avoids orphaned dialogs on reset
- requires some guards in NasalSys since Nasal is shutdown first, but
  dialogs can have Nasal modules.
2014-03-16 22:52:55 +00:00
Thomas Geymayer
764fbd519c CanvasWidget (PUI): make button index consistent with Canvas windows 2014-03-15 15:01:09 +01:00
James Turner
f2a3090384 Fix some Clang warnings. 2014-03-11 16:46:00 +00:00
Thomas Geymayer
de38157916 FGPUIDialog: fix reading from already free'd memory.
Calls to updateValues can cause nested calls invalidating
the char* passed as argument, if retrieved from a
SGPropertyNode.
Probably SGPropertyNode should also be modified to return
a std::string instead of a pointer to an internal buffer.
2014-02-28 17:34:41 +01:00
Christian Schmitt
a0184ac80c MapWidget: silence compiler warning 2014-02-02 16:47:25 +01:00
James Turner
4df9c61d2a Check for and warn about old nVidia drivers.
(Had a bug report with someone using 189 drivers on Windows!)
2014-01-27 17:27:12 +00:00
James Turner
1a372d9366 Update image-server logic.
- no dependency on libJpeg or Simgear
- no duplicate rendering of the scene (uses a draw callback)
- supports other image types, eg PNG
- threaded so doesn't block the main loop ever
2014-01-27 09:08:34 +00:00
James Turner
45d67406a4 CrashRpt tweaks, checking.
- show a message box if setup fails
- log setup status
2014-01-22 22:33:30 +00:00
James Turner
1b585fa415 Windows native file-dialog, menu-bar
By Gijs with additions by James. Menubar is disabled at present
since it's not usable and potentially inferior to other solutions,
but committing the code so it doesn't rot.
2014-01-20 18:43:02 +00:00
James Turner
5e7574c9c2 Bug-fix: Cocoa menus work in aircraft with custom dialogs.
Restarting the GUI could cause Cocoa menus to misbehave, due to
destruction behaviour of SGBinding. Use new clear() helper in the
short term to work around this.
2014-01-15 22:00:09 +00:00
James Turner
1b9394fc37 Crashfix: move spatial, AI queries in map-widget
In threaded OSG drawing, MapWidget::draw runs in the render
thread context, but touches lots of main thread state. Move most of the
work to an update() helper run on the main thread instead, so draw()
mostly makes pure GL calls.

(This is a fix for 3.0, the real solution is to migrate to a
Canvas-based map and GUI)
2014-01-14 13:11:06 +00:00
James Turner
4c51ad0d87 Cocoa: fix warning about deprecated function.
SetFrontProcess is deprecated, use NSApplication instead now we
have the CocoaHelpers file.
2013-12-21 15:31:27 +00:00
Clément de l'Hamaide
efdb488736 Fix accent bug in MapWidget 2013-12-01 18:50:54 +01:00
James Turner
77075a2d66 Cocoa: more Function-key shortcuts in menus 2013-11-24 17:25:02 +00:00
James Turner
d99109c9e4 Reset: do re-init Ghost bindings. 2013-11-24 15:10:00 +00:00
James Turner
57c9ed1ae3 Cocoa menu fixes for reset 2013-11-24 15:10:00 +00:00
James Turner
0fbc448af0 Nasal changes for reset
- reduce use of global context (will die soon)
- replace static wrappedNode ref which breaks reset
2013-11-22 22:52:33 +00:00
James Turner
1f699984e9 One more Mac helper moved into CocoaHelpers.mm 2013-11-19 22:01:11 +00:00
James Turner
2331956539 One more Mac helper moved into CocoaHelpers.mm 2013-11-18 15:52:30 +00:00
James Turner
8b4b49cad2 Read-only mode fixes. 2013-11-18 15:40:14 +00:00
James Turner
fecb475145 Refactor Cocoa helpers.
Change away from using deprecated FSFindFolder.
2013-11-16 10:58:17 +00:00
James Turner
0cda3cbfb2 Multiple-instance support.
Write PID file to FG_HOME, use this to detect multiple launches.
When this situation is detected, set a marker property and place various
objects into read-only mode, such as the NavCache and TerraSync.

PID file is created using open+unlink semantics on POSIX, and 
DELETE_ON_CLOSE on Windows, so it will be removed when fgfs exits,
even if killed or crashes.
2013-11-15 21:04:15 +00:00
James Turner
136cd6ac51 Message box support.
This allows us to display a platform-native dialog for problems
which occur early in startup (before we can show a PUI/Canvas dialog).

In particular this improves feedback where FG_HOME, FG_DATA or
aircraft selection is wrong, all of which happen very early in startup.
2013-11-14 22:02:29 +00:00
James Turner
e25aa4f004 Fix some static property references.
(These cause problems when replacing the property tree during reset)
2013-11-14 16:37:46 +00:00
James Turner
881df711ba Reset: Nasal can be shutdown.
Also guard against duplicate init of cppbind wrapped classes.
2013-11-12 22:47:41 +00:00
James Turner
02a5261797 Reset: GUI can be shutdown. 2013-10-29 23:02:46 +00:00
James Turner
f499913762 Map shows all airports when zoomed in.
Bug 1135, or part of it.

(Ignore the short-runway culling when zoomed in)
2013-10-15 22:28:10 +01:00
James Turner
a45e3d1d07 Bug 1217, crash on AI traffic data.
Guard against flight plans with missing airport
information.
2013-10-15 22:27:19 +01:00
James Turner
38a373ba84 Display AI traffic route in map.
Add some helpers so MapWidget can show the
origin and destination of AIAircraft with a FlightPlan.
2013-09-14 12:17:33 +01:00
James Turner
1924bdfd82 Bug 550 / 454 work (not yet fully fixed)
Adding a spherical projection mode which will work at the poles and
+180/-180 line correctly. Not yet enabled since it has other issues to
be addressed.
2013-06-30 16:41:05 +01:00
James Turner
45ea8b5daa Bug 947, menu item state wrong after reset.
Mark the entire /sim/menubar tree as PRESERVED, so reset doesn't
mess up all the state.
2013-06-25 21:28:56 +01:00
James Turner
145148944f Kill off platformDesktopPath entirely 2013-06-20 00:20:12 +01:00
James Turner
6d158e886c Abstraction for the user's desktop location. 2013-06-09 23:00:09 +01:00
Thomas Geymayer
3d3475e965 Small cleanup. 2013-06-03 23:46:27 +02:00
Thomas Geymayer
220f359d34 Fix crashing without support for GLSL/OpenGL 2.0 2013-04-24 00:19:37 +02:00
Thomas Geymayer
60bec150aa Reduce severity of warning for missing gui/dialogs directory 2013-03-20 18:02:11 +01:00
Christian Schmitt
f11201d3d9 MapWidget: make partially use of the new colocated DME information.
Until a better way to draw proper symbols is implemented, this has to do.
2013-03-15 14:07:32 +01:00
James Turner
ead479532b New cursor shapes.
Unfortunately OSG lacks the 'closed hand' (aka 'grab') cursor, really time to get platform cursor working reliably.
2013-03-10 12:05:14 +00:00
Christian Schmitt
461d89cb22 Fix some uninitialized variables (found by valgrind) 2013-03-10 01:24:57 +01:00
James Turner
b29470c129 Disable native cursor on Windows for now.
There's an unfortunate interaction with osgViewer on Windows that needs to be resolved, before the can switched on.
2013-03-07 19:33:46 +00:00
Thomas Geymayer
3047c316dc Clean up/simplify NasalPositioned_cppbind
Ensure all FGPositioned related functions return SGSharedPtr
instead of raw pointers to allow automatic conversion to
nasal ghosts without custom helper functions.
2013-03-06 23:21:49 +01:00
James Turner
23a1d4338d Windows cursor implementation.
This does not (yet) support custom cursor images, but can be easily
extended to do so.
2013-03-06 18:22:37 +00:00
Thomas Geymayer
1c905e5881 Typos, license headers... 2013-03-06 01:04:52 +01:00
James Turner
034140914c Windows cursor handling stubs. 2013-03-05 20:59:05 +00:00
James Turner
8dc936b44b Forgot GPL license on new files. 2013-03-05 20:53:43 +00:00
Christian Schmitt
658bda6e40 MapWidget: Show counties and towns as well, depending on the zoom.
Some colors added.
2013-03-05 18:26:01 +01:00
James Turner
4c32b832ec Stray debug message, remove. 2013-03-05 14:29:14 +00:00
James Turner
f2c267f5d7 MouseInput changes to support hover.
This adds the framework for platform cursor implementations; Windows and X11 to be done.
It also extend the mouse-input code to generate hover events suitable for driving tooltips.

Note there should be no visible functionality change from this commit, since everything
is inactive until fgdata changes are made.
2013-03-04 23:35:30 +00:00
Christian Schmitt
6bf47cd248 MapWidget: make use of the new POI system and display cities on the map.
This is meant as a preview.
2013-03-04 00:27:12 +01:00
Thomas Geymayer
0587db3b1e Update for nasal::Ghost changes 2013-03-03 19:30:16 +01:00
James Turner
88a4435cef Remove isReciprocal from FGRunway.
This was a bogus concept, either runways have a reciprocal or not (if singled-ended), really this was simply exposing an artefact of the apt.dat encoding. Change to an API which gives what is actually wanted - the ability to extract an airport's runways without any reciprocals included.
2013-02-28 18:21:29 +00:00
Thomas Geymayer
3ea69785d9 CanvasWidget: automatically set auto-viewport.
If no viewport dimensions are given the viewport
will now automatically resize, otherwise it stays
unchanged.
2013-02-25 15:39:30 +01:00
Thomas Geymayer
045fc5b4ae CanvasWidget: add auto-viewport property.
The auto-viewport property allows to disable automatic
update of the canvas viewport update upon resizing
the PUI canvas widget.
2013-02-25 15:32:07 +01:00
James Turner
1eb8ae1fbf Give the FGAirport class a sane filename.
simple.[cxx|hxx] -> airport.[cxx|hxx]
2013-02-21 11:32:02 +00:00
Christian Schmitt
11c00afaec Add support for helipads from apt.dat 850+ 2013-02-21 00:01:36 +01:00
James Turner
7b663cd7f7 Split huge NasalSys header apart. 2013-02-09 15:33:05 +00:00
James Turner
ce9afecdbd Support a log-list widget in PUI.
Add a puaListBox which can show the contents of a log-buffer. Currently only two buffer sources are supported more to follow (and the dialog XML updates).
2013-02-08 19:39:41 +00:00
Frederic Bouvier
7cc3ffb30f Fix build for windows after logstream changes 2013-02-08 08:46:34 +01:00
James Turner
7cf4aa2d86 Make various PUI widgets private. 2013-02-07 12:02:52 +00:00
James Turner
11f15a9b36 Joystick/dialog caches, commit the transactions. 2013-01-25 09:30:31 +01:00
James Turner
37900e22a8 Wrap dialog and joystick stat-cache in a transaction.
Should improve startup times when the cache is rebuilt.
2013-01-24 09:27:09 +01:00
James Turner
a31c2d519c Tolerate old blocks support in 10.6 compiler. 2013-01-22 18:33:16 +01:00
James Turner
980105385d Use the aircraft position helper. 2013-01-22 18:15:05 +01:00
James Turner
c70bd65922 Tweaking syntax for 10.6 block locals. 2013-01-19 18:05:35 +00:00
James Turner
008a2d65f1 Make it all work with existing FileSelector API. 2013-01-19 16:23:05 +00:00
James Turner
9f8c66fbf9 Cocoa: use a window-sheet, and fire the callback. 2013-01-19 14:41:45 +00:00
James Turner
2e1fb7972e Initial work on native file dialog support.
Add an abstract interface, version that forwards to the existing PUI dialog, and a Cocoa-native version.
2013-01-19 14:41:45 +00:00
James Turner
1e8cdd5829 Support partial all-within-range spatial queries.
As an opt-in API, allow clients to request partial results, with a time-bounded cutoff. Use this to keep the MapWidget responsive even when many airports are being added to the cache (e.g., zooming out or panning rapidly when zoomed out)
2012-12-18 10:23:44 +00:00
Thomas Geymayer
41d285a821 Canvas: remove old event handling code 2012-12-16 19:04:38 +01:00
James Turner
433af2b51a Flight-path-history.
Record the historical flight-path (by default, since last takeoff). Optionally display the flight-path in the map; other visualisations (e.g., an 'in-world' view) could also be created. Nasal API to follow so Canvas-map or FMS can show the same data.

Altitude and attitude (Euler angles) are currently recorded but not used anywhere.
2012-12-10 18:11:44 +00:00
Thomas Geymayer
e62649e075 CanvasWidget: Retrieve texture id every frame.
If the size of a Canvas changes also the texture id
changes. We now retrieve the texture id for the CanvasWidget
every frame to ensure it uses the latest texture instance.
2012-12-09 23:15:49 +01:00
Thomas Geymayer
13cec7bd99 Canvas MouseEvent now provides client and screen position 2012-12-08 15:02:15 +01:00
Thomas Geymayer
91bc5e522a Canvas add event time and expose current click count 2012-12-06 23:27:25 +01:00
Thomas Geymayer
ab1c0e946f Fix calculating CanvasWidget mouse coordinates 2012-12-02 23:59:44 +01:00
Thomas Geymayer
8d8e9c3913 Fix for old PUI versions 2012-12-02 15:47:21 +01:00
Thomas Geymayer
28f2779c4b Forward mouse events from (PUI) CanvasWidget to Canvas for new DOM like callbacks 2012-12-02 13:33:16 +01:00
James Turner
04598859e3 Make PUI menu-bar reinit safe.
Was only cleaning up the PUI menubar, not old bindings / names. This led to duplicate bindings, each time the GUI was reset, which can happen for various reasons.
2012-11-20 13:32:10 +00:00
Thomas Geymayer
d51499382d Clean up CanvasWidget and more work on Canvas/Nasal bindings 2012-11-18 16:46:03 +01:00
ThorstenB
a784443a24 Remove static property dependencies
preventing us from wiping properties on reset/reinit/subsystem recreate.
(more work required for "native_gui" and "ATC-Outputs" protocols)
2012-11-18 16:35:54 +01:00
ThorstenB
076bbb8487 Fix some compiler warnings.
Unused vars, loss of precision, bool type conversions.
2012-10-13 17:59:47 +02:00
ThorstenB
b838691f50 #897: float vs double precision issues (frequency dialog not always working)
puObject only provides float, not double, which causes precision/rounding
issues with some numerical values (try "114.2").
Work around: obtain string value, and manually convert with proper double
precision.
2012-10-10 20:28:17 +02:00
ThorstenB
dac8706e2e Move GUI init code to gui module. 2012-09-25 22:39:13 +02:00
ThorstenB
2003e7cf2a Avoid compiler warning. 2012-09-21 15:36:52 +02:00
James Turner
d7d19649aa Fix a stupid logic bug when re-ordering waypoints.
http://code.google.com/p/flightgear-bugs/issues/detail?id=870
2012-09-21 12:47:51 +01:00
James Turner
d56ac505c4 Linux needs explicit <cstring> include. 2012-09-21 11:34:28 +01:00
James Turner
666a68c742 Lazy GUI dialog loading, for slightly faster startup. 2012-09-21 10:16:44 +01:00
James Turner
9b900e9430 Implement a persistent cache for navigation data.
Cache the parsed navigation and airport data in a binary file to reduce
startup times and memory consumption (since only referenced FGPositioned
elements are held in memory).

Data will be reimported when the mod-time of any input file is changed.
If a global file is changed (nav.dat, awy.dat, apt.dat, etc), the cache
will be completely rebuilt, which takes approximately 30 seconds on
moderate hardware. (Future work may reduce this).
2012-09-19 11:38:19 +01:00
Stuart Buchanan
cce186a57c Add properties for raw axis and button values, for use
in joystick configuration function.  Also rationalize references to
/sim/fg-home into a global property.
2012-08-23 21:52:30 +01:00
James Turner
7fabeed85d Fix some places relying on public 'using std::string' in SimGear
(Otherwise my next SimGear commit will break them)
2012-08-21 17:07:47 +01:00
ThorstenB
59fe04f8e9 Make web browser app configurable through CMake (for Linux)
so package builders don't need local patches.
Also, instead of hardcoded firefox, use "xdg-open" or "sensible-browser"
launchers on Linux, to auto-detect user's preferred browser.
Override with cmake switch -DWEB_BROWSER=...
(Not affecting Mac/Win which are hard-coded anyway).
2012-08-18 14:11:31 +02:00
Thomas Geymayer
83bbd9e45c Canvas: Image/Window unifying and allow using canvas inside canvas.
- Refactor and unify common functionality of canvas::Window and
   canvas::Image
 - Make canvas::Image actually work
 - Allow using canvases inside canvas::Image
   * Use new canvas:// "protocol" to allow using canvases in
     place of images
 - Prepare for categorizing canvases:
   * Move canvases to /canvas/by-index
   * Later support linking to other nodes in subbranches of
     /canvas
2012-08-09 16:13:38 +02:00
James Turner
4593c3521f Fix a crash with the native menubar.
http://code.google.com/p/flightgear-bugs/issues/detail?id=821
2012-08-05 21:30:15 +01:00
Frederic Bouvier
766014883c Fix Win32 build - No GLUT please \! 2012-08-01 08:53:40 +02:00
Thomas Geymayer
91c3f63110 Canvas: UTF-8 support and more settings exposed.
- Allow hiding objects
 - Use UTF-8 encoding for text elements
 - Add paramter max-width to text elements
 - Support stroke-linecap for path elements
 - Fix mouse coords
 - Set better mipmap filter
2012-07-31 23:19:23 +02:00
Thomas Geymayer
373d511c69 Canvas: Allow using canvases as PUI widgets.
- Add new widget type canvas
 - Set canvas view dimension from the gui xml.
 - Expose mouse events to canvas widget properties.
2012-07-31 23:19:22 +02:00
James Turner
36fe51c7f0 Add property to disable native menu on Mac. 2012-07-30 17:05:01 +01:00
ThorstenB
ec739a17c2 Fix compiler warning
(access beyond array bounds)
2012-07-17 19:32:05 +02:00
James Turner
e226983835 Revised patch from Yves to fix Mac 10.5 compilation
NSMenuDelegate is an informal protocol before 10.6, so declare it locally in that case.
2012-07-10 08:39:11 +01:00
James Turner
18469f0059 SafeTexFont is unused, remove from build & Git 2012-06-21 12:00:52 +02:00
Frederic Bouvier
cd06896b2d Reset pointers in menus 2012-06-10 22:25:58 +02:00
James Turner
ffac5ff889 Standard property to ignore unusably short runways in NavDB.
Default values should match existing behaviour. Set
/sim/navdb/min-runway-length-ft to skip short runways
in GPS / Map / ND / Nasal queries.
2012-05-16 16:51:39 +01:00
James Turner
2999675234 From TomG - support per-aircraft GUI dialogs a little easier. 2012-05-15 18:06:38 +01:00
James Turner
b0384d035f Remove remaining includes of simgear/waypoint 2012-05-11 23:49:12 +01:00
James Turner
8aeb650d16 On OS-X, used NSWorkspace to launch the browser. 2012-05-07 23:49:21 +01:00
James Turner
ff91fec1bb Fix various route-manager issues reported by Hyde. 2012-05-07 23:48:56 +01:00
James Turner
1b7b69b498 Create a real FlightPlan (and Leg) class
Convert the route-manager to use a flight-plan internally, and expose
flightplan, leg and procedure data to Nasal. Move the Level-D parser
into its own file.
2012-05-07 00:35:48 +01:00
ThorstenB
1f7b57546d Fix Mac compile. 2012-05-05 09:41:23 +02:00
ThorstenB
c5ce8e29ca Support localized menu on Mac/CocoaMenuBar. 2012-05-05 09:30:52 +02:00
ThorstenB
e59fabaf82 Clean-up some SGMath dependencies. 2012-05-05 00:56:29 +02:00
ThorstenB
c808376927 Use separate header file for vector properties.
(We could drop the "SGMath.hxx" include in many places now...)
2012-05-05 00:12:41 +02:00
James Turner
1632c5b266 Add an auto-release pool wrapper to the Cocoa code
Hopefully this will address some warnings seen on Mac
2012-05-02 21:24:44 +01:00
ThorstenB
05588c2ee4 Adapt font size behaviour to original plib font.
Original plib 'Helvetica 12' reported point size "13". Stick with this to
keep backward compatibility of GUI layouts.
2012-05-01 11:44:52 +02:00
ThorstenB
89b41395d8 Move viewer-related sources to separate folder.
Simple source directory clean-up, so "Main" folder contains fewer stuff
and the list of files in the editors a lot shorter.
2012-04-25 23:28:00 +02:00
ThorstenB
17651be494 Try to fix MSVC build.
MSVC wants to see the full "SGVec3" class spec, not just the fwd
declaration provided by SGMathFwd.hxx.
2012-04-22 09:40:36 +02:00
ThorstenB
f3502a760b #263: (Re-)introduce language option for menu
Adapt FGPUIMenuBar to use new Locale module.
Adds support for separate "key" property for menu items, so keyboard hints
are no longer part of the item's label (and do not need to be part of the
translated text resources).
2012-04-21 20:18:01 +02:00
ThorstenB
470552fab1 Move locale code to separate module.
Introduce convenience methods to handle localized string resources
and obtain strings.
2012-04-21 20:17:42 +02:00
ThorstenB
056b85bc1f Add Latin1 character subset to default FG font.
Copies HELVETICA_12 from PLIB to FG, adding some more chars needed for
Latin1/ISO-8859-1 (West European languages).
(SANS_12B and HELVETICA_14 also support Latin1, but not the other default
PLIB fonts).
2012-04-21 19:06:11 +02:00
James Turner
2e5febec7d Work on an azimuthal project mode for the map, to improve behaviour in polar regions. Disabled for now since performance is extremely poor. 2012-04-21 11:14:45 +01:00
James Turner
4bde2451b0 Avoid a crash when using the native menubar on Mac, due to non-static classes with identical names. 2012-03-26 17:38:09 +01:00
James Turner
b501dc97ce Bug 620, respect enable/disable state of entire menus when using native Cocoa menu 2012-01-25 18:56:51 +00:00
James Turner
da7adf63c0 Shortcuts support in the Cocoa menubar. We have fewer keyboard shortcuts for menu items than I realised. 2012-01-06 23:46:35 +00:00
James Turner
9e344ee645 Avoid crash when reloading GUI from debug menu. 2011-11-20 16:33:22 +00:00
James Turner
ebfdebeb43 Cocoa menu-bar implementation. 2011-11-20 16:26:05 +00:00
James Turner
8b340ff043 Hopefully fix non-Mac ;) 2011-11-19 22:42:15 +00:00
Frederic Bouvier
394cc3ee9f Fix MSVC build 2011-11-19 23:37:42 +01:00
James Turner
daa973f1bc And make FGMenuBar abstract too, sinking the current implementation into FGPUIMenubar 2011-11-19 22:04:35 +00:00
ThorstenB
76baf75a47 Fix include dependencies for non-Mac platforms.
;-)
2011-11-19 22:48:26 +01:00
James Turner
03c966de13 Make FGDialog an interface, moving existing code to FGPUIDialog implementation. (no functionality change, yet) 2011-11-19 20:46:17 +00:00
James Turner
a05ea36acb Restructure GUI code, isolate PLIB in source files, to ease future refactoring and alternative GUI layers. 2011-11-19 20:25:51 +00:00
James Turner
d2d3fc054e Flip map zoom, to fit with user expectations better. http://code.google.com/p/flightgear-bugs/issues/detail?id=485 2011-11-08 21:06:51 +00:00
James Turner
70b4f38ebc Goodbye automake. 2011-11-01 11:15:53 +00:00
James Turner
b1b4b7ecf4 Fix (nearly) all the std:: namespace violations in headers, in preparation for fixing SGsmplstat.hxx to *not* do a 'using namespace std'. 2011-10-17 17:41:59 +01:00
James Turner
3d544fbc1f Tweak map-widget data boxes for AI objects, so speed/altitude update in real-time. 2011-10-12 22:33:56 +01:00
ThorstenB
30e2db94b1 Add generic "open-browser" command to show URLs or local HTML/text pages.
Replace deprecated "old-help-dialog" command with generic "open-browser".
Can also be used to add links to aircraft manuals in the menubar (local
file or http) , i.e.
<binding>
    <command>open-browser</command>
    <path>Aircraft/ogeL/FlightManual.html</path>
</binding>
2011-10-09 12:37:43 +02:00
James Turner
465557cfa7 Improve magnetic heading handling in MapWidget - following some testing at NZCH 2011-10-02 14:30:06 +01:00
James Turner
283b26114c Fix glx shutdown to only apply on Unix & !Mac (but we should really add a proper ifdef for GLX) 2011-10-01 10:05:01 +01:00
Mathias Froehlich
978a577ea2 Ugly workaround for a crash on exit with multiple screens 2011-10-01 09:50:34 +02:00
James Turner
5a17ccf9eb Push aspect-ratio handling into CameraGroup, so renderer doesn't need to resize viewports each update. 2011-09-21 17:13:53 +01:00
James Turner
66a3a7f164 Make map widget zoom a real property, so it persists between opening and closing the dialog. 2011-09-18 12:53:40 +01:00
Frederic Bouvier
5e30675c70 Fix issue #398: Menubar - Help > Help opens strange path when including space character 2011-08-08 23:26:58 +02:00
James Turner
6c52a5ac85 Fixes for include-file flattening - condition.hxx no longer pulls in props or props_io 2011-07-30 10:47:28 +01:00
James Turner
7abf7c5748 CMake header support for XCode/Visual Studio 2011-07-19 07:58:03 +01:00
James Turner
8e682cb8a4 Disable flight-related key-bindings in the WaypointList widget for 2.4 release, pending a better solution to PLIB's lack of focus. 2011-07-16 13:25:29 +01:00
Torsten Dreyer
279fbdc837 Fix #357: Enabling "fixes" on map dialog crashes FG
This happened for fixes with names shorter than 5 characters.
range check added, which operator[] does not perform.
2011-06-28 12:51:00 +02:00
ThorstenB
702d323a39 issue #127: make screen shots work with OSG multi-threading
Make sure actual snap shot is executed in graphics context.
(Revert the revert :) - since the basic issue in simgear is solved now)
(patch requires simgear+fgdata update!)
2011-06-13 20:31:27 +02:00
ThorstenB
25fdbebd57 Revert "issue #127: make screen shots work with OSG multi-threading"
This reverts commit b4d90150c5.
2011-06-13 00:52:43 +02:00
ThorstenB
88f7c05274 Introduce "PRESERVE" flag to protect properties on sim reset.
Some specific properties need protection and shouldn't be restored to their
original values on sim-reset.
2011-06-12 20:31:56 +02:00
ThorstenB
b4d90150c5 issue #127: make screen shots work with OSG multi-threading
Make sure actual snap shot is executed in graphics context.
(patch requires simgear+fgdata update!)
2011-05-28 23:27:46 +02:00