Major changes and features:
- Major UI code refactoring to support multiple map windows. (As requested by Steve K4HG)
- Map windows should now retain their view settings and map extents through restarts
- New Layers! Layers for OpenStreetMap, OpenTopoMap, CyclOSM, and, a huge goal of mine, a Local Tile Server for offline maps. Look for an article coming soon on how to set this up. More layer types to follow.
- It is now possible to import and export GPX files and export KML. (Import for KML is coming, but it’s a much more complicated format)
- Moved the station menu from a popup button on the station panel to the main application menu. This feels more Mac-like to me and more discoverable.
- SmartBeaconing is now implemented, with permission from Steve Bragg, KA9MVA
- Implemented proportional pathing for interval beacons #80
- Custom AX.25 paths are now supported, with “Path Profiles” renamed to “Path Presets” #79
- Added reconnect for KISS-over-TCP connections #85
- Added DNS-SD (Bonjour) support for locating KISS-over-TCP servers, like Direwolf
- Tracks can now be cleared for stations
- Tracks now shorten as old locations expire
- The history purging process is now working as intended and preserves stations you’ve marked as favorites and packets that have originated from your station.
- Fixed bug where loaded tracks were disappearing during maintenance because of an ID mismatch due to the ID cache
- Tracks are now loaded as one event instead of a sequence of packet events
- Fixed bug where symbol was not displaying on local object list
- Fixed bug where a renamed object could appear multiple times on the entity list
- Fixed bug where timeline timestamp was showing up even when not scrolling the timeline
- Enhanced About page to include an EULA and Acknowledgements
- APRSManager no longer has a single map region
- Fixed bug with entity update notifications not being sent when initially saved to the database (not dirty)
- Fixed retain cycles so that MainMapViewController is deallocated when the map window is closed
- Fixed bug where the display point being used by CrosshairsButton was not in the correct coordinate system
- Moved map layer toggles away from UserDefaults to properties of QTHMapView. This is so that multiple map windows can have separate settings
- Fixed crash when failing to detect any usable string from an unknown character set #83
- Fixed telemetry unique constraint error message #84
- SmartBeaconing settings are now locale unit aware
- Implemented a debug mode
- Debug mode now includes a function for simulating a track with GPS coordinates. Used for testing SmartBeaconing
- Starting a GPS connection now automatically and temporarily sets the beacon source to GPS
- Fixed course change calculations
- Fixed date handling in NMEA sentences – it was picking up the date in the current timezone when parsing times, instead of UTC