James Turner
6197098541
Guard against a potential race init-ing libCurl
2019-02-13 12:49:21 +00:00
James Turner
34b3c52a28
Improve HTTP redirect handling, and add test.
...
Ensure we get the final status code for the request after redirecting.
2019-02-13 12:34:17 +00:00
James Turner
95d065b3d7
Add strutils::iequals helper
...
Replaces another boost method
2019-02-06 12:35:08 +00:00
James Turner
df6ec4f94c
Property alias loop protection
...
Patch by Henning Stahlke
2019-01-22 17:24:21 +01:00
James Turner
61ebee12ad
Set curl VERBOSE based on current SG log settings
2019-01-22 17:24:21 +01:00
James Turner
fc2630e66d
Revert "Logging API changes"
...
This is causing perf impact, so reverting until we figure out
a lower-impact solution.
This reverts commit 1be3e5771a .
2018-12-23 09:17:15 +00:00
James Turner
4b17ea95fc
Random buildings: reduce log output in a common case
2018-12-20 16:10:36 +00:00
James Turner
1be3e5771a
Logging API changes
...
Remove would_log() : callbacks receive all log messages so they can
do custom filtering individually.
Also move popup message handling into the private (d-ptr) of sglog(),
to keep the header as minimal impossible (no include of <vector>)
2018-12-20 16:10:36 +00:00
James Turner
f05ff37560
Fix for assert with empty systems
...
Empty subsystem groups didn’t set their init state correctly, leading
to an assert on post-init. Fix this and add a test for it.
https://sourceforge.net/p/flightgear/codetickets/2043/
2018-10-23 15:29:56 +01:00
James Turner
0185884ca8
Catalogs: allow migration to alternate IDs
2018-10-16 09:56:56 +01:00
James Turner
46b271d75c
Packages: improve localised string support
2018-10-12 10:49:14 +01:00
James Turner
854b958797
Packages: check for existing update when scheduling
...
This is fixing an issue identified in the launcher in a secondary way,
to ensure if another user of the API tries to schedule an already
scheduled package, we ignore the second request.
2018-10-05 10:40:35 +01:00
James Turner
ff52b55a25
Mac: Set CMake OS-X deployment target correctly
...
Also raises the OS-X min version to 10.9 for libc++ compat
2018-10-01 22:28:56 +01:00
James Turner
05da3db2ed
Fix a debug message left in the terrasync code
2018-09-24 14:54:20 +01:00
James Turner
f4cad42958
Lat-lon parsing: catch exceptions from std::stod
...
The standard library throws exceptions in some cases, catch those
and return false. Extend the test coverage for some of the problematic
cases.
2018-09-13 23:47:24 +02:00
James Turner
32189b7239
Event-manager: add dump() method for debugging
2018-09-01 18:08:32 +01:00
James Turner
c192071f03
TerraSync: improve copy-installed-files logic
2018-08-31 16:05:48 +01:00
James Turner
8c9fda9137
Fix Utf-8 literal on MSVC
2018-08-31 16:05:48 +01:00
James Turner
8dd0833993
Fix setting OPENAL_DIR on Windows
...
We need to set this in all cases, since AeonWave is requested by
default, but may not be available.
2018-08-23 19:11:50 +01:00
James Turner
306eaeaba9
Fix subsystem-remove bug
2018-08-19 12:32:30 +01:00
James Turner
7853a5329d
Extend propsfwd.hxx so it can be used in more places
2018-08-11 18:41:29 +02:00
James Turner
1fa77078fc
Subsystems: bind/init/unbind on add/remove
...
When adding/remove subsystems to a group which is already bound or
inited, transition the subsystem automatically. This removes the
need to manually transition the subsystem in various places in
Flightgear.
2018-08-11 18:41:04 +02:00
James Turner
8e8ce04e18
Subsystems: default name to group name when adding
2018-08-11 18:16:33 +02:00
James Turner
264779e1d3
Packages: fix download progress
...
(Broke it when improving zip/tar support)
2018-08-08 11:12:53 +02:00
James Turner
6f505f3a76
formatGeodAsString: add ICAO route format
2018-07-30 10:08:34 +02:00
James Turner
2e3cace7f9
Canvas::path: early return for descendant changes
...
The ‘rect’ attributes of Path were before the early-return when the
change is for a descendant node.
2018-07-24 13:13:08 +01:00
James Turner
9553a604ac
Cache parsed lat/lon values in Canvas::Map
...
This avoids re-parsing each lat/lon in the map from a string, each
time the project changes
2018-07-24 13:13:08 +01:00
James Turner
f1e1bf11b6
Cache x/y nodes in Canvas::Map::GeoPair
...
This removes a bad CPU hit when Canvas map is used continuously,
since this is two named property lookups per map coord per frame
2018-07-24 13:13:08 +01:00
James Turner
f77724a646
Fix terrasync hash persistence
2018-07-19 07:40:23 +01:00
James Turner
a0c4913f84
Fix .dirindex preservation on Windows
...
Ensure we don't treat the special files as regular children
when updating.
2018-07-18 16:30:44 +01:00
James Turner
3dfce43de2
Fixes to HTTP repo tests on Windows.
...
Large alloca fails, and SGFIle dtor doesn't close the handle,
which breaks _wunlink on Windows :(
2018-07-18 07:20:18 +01:00
James Turner
f2f465960b
Tar code: handle symlink and PAX extensions
...
This now accepts the GitLab .tgz archives without problems, eg
the Tu-144.
2018-07-04 23:47:14 +01:00
James Turner
05d8ab3000
Fix Windows build
...
Clean out legacy crap from stdint.h while we're here
2018-07-04 14:08:57 +01:00
James Turner
126f69434b
Refactor untar/unzip code
...
This is to enable reuse in more places, especially scenery extraction and TerraSync
2018-07-04 10:32:09 +01:00
James Turner
d7a413d5e7
Lat-lon parsing: allow lon,lat order, and detect order
...
Flightplan/route-manager defaults to lon,lat order. Allow the parser
to detect the correct order when NSEW suffixes are provided and
consistent.
2018-06-29 13:28:02 +01:00
James Turner
609ac93c10
Lat-lon parsing: accept lower case NSEW, fix precision
...
Thanks to Wkitty for catching both problems.
2018-06-28 22:43:30 +01:00
James Turner
b1d6a41c65
Fix a bug in lat-lon parsing - accept ‘*’
...
Previously, trailing * symbols confused the parser.
2018-06-27 14:29:45 +01:00
James Turner
22c2971c3c
Lat-lon formatting: support nice degree symbols
...
Allow Latin-1 (for PUI fnt) and UTF-8 (for Qt, osgText and everybody
else) degree symbols as well as the use of *
2018-06-24 10:30:50 +01:00
James Turner
9b1444deb5
Strutils to format and parse SGGeod/lat/lon
...
Format portion is taken from code in fg_props, parsing code is my
own horrible concoction.
2018-06-20 22:00:58 +01:00
James Turner
99d30d5bb7
CMake tweak: include headers in targets
...
This improves navigation in XCode (any maybe some other tools)
2018-06-20 22:00:03 +01:00
James Turner
100bb3a571
Fix flags passed to SHGetKnownFolderPath
...
Custom folder locations were not being picked up.
Fixes: https://sourceforge.net/p/flightgear/codetickets/2019/
2018-06-15 11:08:53 +01:00
James Turner
7dfe705717
Resource manager clean-up code
2018-05-28 21:57:31 +02:00
James Turner
9755110ec7
Packages: Remove deprecation warnings for now
...
Probably a bit over-zealous for these.
2018-05-09 10:15:07 +01:00
James Turner
f5ff969cd4
Warning improvements when requesting bad URLs
...
Found while debugging some issues with add-default-catalog flow in
the launcher.
2018-05-08 06:50:15 +01:00
James Turner
b6f5b40557
Speculative fix for global symbol issues for Edward
...
Let’s see if an explicit static at file scope is better or different
to an anonymous namespace scope
2018-05-03 14:29:07 +01:00
James Turner
5710d33dbf
Subsystem commands in the manager
...
Migrate and update these commands from FlightGear’s subsystem factory.
Currently disabled until subsystem-factory is removed, to avoid
duplicate registration.
2018-05-02 23:27:34 +01:00
James Turner
831369f653
Packages: add archive-path XML support
...
Allow the in-archive file path to differ from the after-install path.
Requested to allow easier operation with GitHub/Labs zip generation.
2018-04-27 15:25:13 +01:00
James Turner
6db59c64aa
Subsystems: change naming scheme, add accessors
...
Add some hopefully clearer accessors for the subsystem naming, and some
comments documenting what is stored where.
2018-04-27 13:59:11 +01:00
James Turner
888d7fb262
Packages: archive-type support in catalogs
...
Allow URLs which don’t encode the file extension to work
2018-04-27 12:07:10 +01:00
James Turner
8b4ace6fb8
Subsystems: stub code for smart add+remove
...
Groups track their state, which will enable them to correctly transition
added and removed children in the future. Only stubbed for now, to avoid
breakage on the FG side.
2018-04-25 22:20:12 +01:00
James Turner
368120c479
Track a root property on subsystem-manager
2018-04-25 21:34:17 +01:00
James Turner
48b228f68f
Packages: additional test for updating invalid
...
This is part of trying to trace a crash reported on the devel list,
unfortunately the test passes but it’s sill good to have it
2018-04-25 17:04:07 +01:00
James Turner
bf21c0e099
MSVC build fixes, ooops
2018-04-25 11:41:40 +01:00
James Turner
d85d85e7dc
Subsystem improvements for testing
...
- track more meta-data and a factory function for each subsystem,
registered either explicitly or via a helper static class.
- add a delegate to receive notifications of subsystem changes
- make sub-grouped subsystems work more naturally, especially for
child lookups
- add some test coverage for all of this
2018-04-25 08:58:58 +01:00
James Turner
2797970837
Catalogs: better invalid data handling
2018-04-08 23:57:24 +01:00
James Turner
cf03307b70
More verbose error logging from Repository code
2018-03-30 17:24:58 +01:00
James Turner
cba07157d5
Packages: better version handling & migration
...
Add test coverage for disabling a catalog due to version, and also
for auto-migrating to a new version. Expose disabled catalogs on the
Root, so they can be checked for.
2018-02-28 17:26:15 +00:00
James Turner
ed5372f439
Add new PROTECTED property attribute
2018-02-04 17:10:41 +00:00
James Turner
bc63381fb0
Packages: tweaks to thumbnail cache
...
Don’t discard the existing data when expiring from the cache, in case
the refresh request fails.
2018-01-31 15:00:58 +00:00
James Turner
c59f2a0749
Fix Windows _wutime compilation
2018-01-31 13:10:34 +00:00
James Turner
5c30ca5dc6
Add SGPath::touch() helper
2018-01-31 11:04:10 +00:00
James Turner
8621925e75
Floating-point comparison helpers for SGMath<T>
...
Implemented using numeric_limits::epsilon and std::abs, fingers
crossed this is sufficiently portable!
2018-01-26 11:29:18 +00:00
James Turner
9078a085c3
Kill exception if removeDelegate fails
...
This simplifies logic when changing the package::Root
2018-01-20 16:19:13 +00:00
James Turner
51a91bfa8a
Ignore CmakeList.txt.user files
2018-01-12 22:19:54 +00:00
James Turner
da099d4312
Correct use of remove_if in the test-server
...
Should fix erratic crashes of some tests.
2018-01-07 16:10:50 +00:00
James Turner
f6ded69fa3
Untar failure path fixes
...
By xDraconian, ensure we call inflateEnd in failure cases, otherwise
the inflate context is leaked.
2017-12-11 18:14:40 +00:00
James Turner
b766ce76ff
Package thumbnail caching tweaks
...
Resolves some issue with expired thumbnails not being reloaded
correctly.
2017-11-27 23:37:56 +00:00
James Turner
10956056b3
Own code for UTF-32 <-> UTF-8 conversion
...
Avoids codecvt dependency on Unix where it might not be present, eg
with GCC 4.8; on Windows we use <codecvt> since it’s present in VS2015
to avoid writing a seperate UTF-16 <-> UTF-8 conversion.
2017-11-01 17:04:56 +00:00
James Turner
2642299d77
We require C++11 now, simplify this code.
...
This ensures wstring to std::string conversion is always available,
needed for some HID work I’m doing on a branch,.
2017-10-29 13:20:39 +00:00
James Turner
dd3cdf63e6
Terrasync: Fix exception deleting orphaned directories.
2017-09-29 12:47:42 +01:00
James Turner
b342245619
Fix lib64 mode on Ubuntu 17.04 / CMake 3.7
2017-09-28 15:11:09 +01:00
James Turner
6cd5ac2d0d
Move readTime (parse_time) from options.cxx
2017-09-27 15:06:37 +01:00
James Turner
872a48dacb
Extend the state-machine parsing test slightly
2017-09-27 14:33:57 +01:00
James Turner
721aa544c9
Use C++11 in the state-machine code
2017-09-26 16:39:04 +02:00
James Turner
602244979b
Tar extractor can filter file paths.
2017-09-21 17:47:28 +01:00
James Turner
69ba2617d2
Fix thumbnail loading on Windows
2017-07-28 12:05:35 +01:00
James Turner
34c215ad83
Persistent thumbnail cache for aircraft packages
...
This should reduce the load on Ibiblio when browsing aircraft, the
package system caches thumbnails for seven days. Also we detect for
certain failure conditions and retry, to deal with Ibiblio’s rate-
limiting mechanism.
2017-07-28 11:38:59 +01:00
James Turner
2a3bb62001
Add efficient hasTag check to Package.
...
Avoids copying the tags set each time to check for presence / absence
of a particular tag.
2017-07-27 23:26:06 +01:00
James Turner
fe46ae09ef
Fix MSVC build.
...
MSVC really needs these methods to be out of line, to avoid generating code for the shared pointers
in each translation unit which includes the header.
2017-07-19 13:00:33 +01:00
James Turner
a54b3ffcee
Extend Package delegate callbacks.
...
This makes it easier to report the status in the launcher, at least.
2017-06-28 22:27:40 +01:00
James Turner
47842c9ea7
Work-around older Curl on macOS 10.8n and earlier
2017-06-28 10:18:35 +01:00
James Turner
c06e433e74
Templated lookup of subsystem-group members.
2017-06-15 18:30:27 +01:00
James Turner
60d1c87cef
New string helper function: property path matching
...
Match property path strings against template strings containing wild
card characters.
2017-04-13 07:29:05 +01:00
James Turner
fe87e7f60d
Define SG_DEPRECATED, remove unused DEPRECATED.
...
Use this to mark two Package APIs as deprecated.
2017-04-05 22:09:52 +09:00
James Turner
f3e83cf020
Package APIs to support multiple primary aircraft.
...
This (with some catalog and front-end changes) will allow packages to
supply multiple primary aircraft.
2017-04-04 07:04:43 +02:00
James Turner
c170f576b6
Ensure <simgear_config.h> is always included.
...
This is going to become important soon - prep for enabling SIMGEAR_SHARED on Windows.
2017-03-28 09:36:53 +01:00
James Turner
4467e68db1
Make test macros public.
2017-03-24 16:52:02 +00:00
James Turner
cc1118b330
And make Windows happier again.
2017-03-19 12:16:10 +00:00
James Turner
a1126bd42c
Make the LogStreamPrivate a d-ptr.
2017-03-19 10:28:57 +00:00
James Turner
370523d5bf
Remove sgGMTime, no longer used.
...
(And the implementation was wrong on Windows)
2017-03-17 23:25:25 +00:00
James Turner
96b4d2c03d
Make debugClassToString a public static.
...
This helps with implementing log-callbacks in other places, which
the unit-testing framework does.
2017-03-17 23:22:59 +00:00
James Turner
c4898502bf
Use std::unique_ptr to avoid leaking logging
...
This makes calling shutdownLogging unnecessary on exit.
2017-03-17 23:22:59 +00:00
James Turner
141e98564c
Generic string -> bool parser.
2017-02-27 23:11:05 +00:00
James Turner
72341a6de4
Adjust some messages to be developer-mode.
...
Still deciding how far to go with this, comments welcome.
2017-02-27 00:13:39 +00:00
James Turner
9c9e4e86e7
Packages allows thumbnails per variant.
...
Change API for thumbnail access, so each variant can have a unique thumbnail alongside other data. Map existing catalog XML format to
this system.
2017-02-25 20:52:35 +00:00
James Turner
707d9e12cf
Fix issues with package upgrades on Windows.
2017-02-23 13:26:02 +00:00
James Turner
f977be5fe4
Concept for developer log messages.
2017-02-14 18:27:40 -08:00
James Turner
a28cf0f860
Additional SGPath test for remove + rename.
...
Trying to track down failure to update aircraft on Windows.
2017-02-09 18:48:05 +00:00
James Turner
d9f4d7373f
SGFile uses wide-string APIs on Windows.
2017-02-07 16:15:14 +00:00
James Turner
c3f48c7261
Use sg_ofstream in one more place.
2017-02-07 16:05:06 +00:00