Add a try-catch in ReadAllLines to handle a read failure if a file is locked.
Add a check for a non-existing export folder when exporting and prompt for new path if it doesn't exist.
Tab separated output facilitates much more efficient opening of exported content in a spreadsheet for further data analysis, furthermore, it vastly reduces file size at the cost of human-readability. However, for the spreadsheet junkies among us, this is a welcome option.
To complement this, there is now an "Export Options" expander in the Core settings panel. Here one can select their preferred export style (default remains Fixed width) and now one can pre-select the export folder.
With this change, clicking export *will not* prompt for an export folder if one is already set. It will simply immediately export data.
Enjoy!
* Add file association for .eop, prompt for install dir
* Handle .eop or .aip file passed as arg.
* VS2022 version bump
* Filter neutron stars and black holes from fast spinning criteria.
* Adjustments for new "high value" check
* Refactor herald cache
* Fix element order and namespaces for voice moods.
* Add explicit .Stop() between audio player calls.
* Use nullsafe member access instead of skipping
* Don't queue up a title that's already queued.
* Improve body ordinal handling for explorer speech titles.
* Escape strings being inserted into xml
* Handle flip-flopping JSON type
* Converter for flip-flopping property type
* Use the converter
* Escape characters *before* we wrap it in xml.
* Give Eahlstan his clear button. :D
* Exclude all stars from fast rotation check.
* Close outstanding popup notifications on exit.
* TO DONE
* [Herald] Suppress duplicate notification titles for spoken notifications
If you have notifications from multiple plugins producing notifications with the same title in quick succession (ie. "Body A 1 e" from both Explorer and BioInsights), the title on successive notifications will not be spoken again to save the breath of our friendly Azure speakers.
* Doc update
* Remove unintended member hiding
* Fix export errors when exporting BioInsights data, cleanup
Discovered a couple issues with exporting BioInsights data resulting from using two different types of objects in the data grid; improved error handling as well.
Also cleaned up some old-style read all code.
* Add read-all on launch setting
* Updated framework xml
* Improve high-value body description text
Co-authored-by: Fred Kuipers <mr.fredk@gmail.com>
* WIP: Grid export and plugin extraction
* Tweak export process
* Check for recursion of the same assembly load.
* Individual screens aren't always primary?
* Wait for cache to be writable
* Export selection only.
* Update built xml docs
* Ignore invalid archives.
* Need to ensure task is started.
* Add event-based LogMonitor state changes to better handle batch reads
Pre-reading hackily used read-all to suppress notifications. But that broke some assumptions about what read-all meant. Furthermore, the Core UI told plugins about read-all rather than the log monitor telling them -- which is really what should be telling them.
To address these concerns, LogMonitor now provides an event that both the PluginCore and PluginEventHandler listens to or tracking logging state allowing more granular information about the activities of LogMonitor, including distinguishing between ReadAll and Pre-read batches. Plugins no longer need to track if LogMonitor is in batch-read mode or not -- PluginCore now provides it.
I've also converted all built-in plugins to use the new event-based system. The old system is marked deprecated and will go away once other known contributed plugins have converted to the new system.
* Change LogMonitorState enum to [Flags], drop 'None' state
As requested, and did associated simplifications and cleanup that followed.
Upon arrival of new records to the backing ObservableCollection, scroll the DataGrid to the last item. However, when the DataGrid is initialized, there's not yet a data context set, so when that happens, then we can listen to the CollectionChanged event to trigger scrolling (only really needed for additions).
In passing, also set the DataGrid to ReadOnly.
In the other two files, minor simplifications/cleanup.