* [Explorer] Default + Custom Criteria improvements
For Custom Criteria:
* If a custom criteria throws an error or fails to parse/load, Core no longer disables custom criteria entirely -- it now disables the problematic criteria until you update the custom criteria file and trigger a new journal/re-read (which reloads the source file).
For Default Criteria:
* Adds landable status of the body triggering the Close Ring/Belt proximity. (Requested in Discord somewhere.)
* Adds the triggering ring name to the Wide Ring criteria. (I believe also requested, can't remember now.)
CarrierJump w/ OnFoot is needed for many location tracking things -- ATTN MattG as this is causing problems with BioInsights.
I'm requesting Statistics for use by StatsScanner.
The new properties are:
* string Sender: The name of the plugin sending the notification.
* string ExtendedDetails: Even more detail than Title and Detail convey. This value will not be spoken nor included in pop-up notifications. However, other notifier plugins may use this value.
* int ColescingId: An id which can be used to correlate multiple notifications together (ie. for sorting/grouping) without depending on arbitrary string values. I recommend reserving -1 for system, 0 .. 1000 for system bodies and anything else is arbitrary and can be agreed upon between Core and Plugin authors, as desired.
While the motivating use is a new notifier plugin I am authoring (my Aggregator plugin, see GitHub), I have tried to make this as general purpose as possible.
I have modified Explorer as an example of usage. After this is merged, I'll follow up with another PR to use this in Botanist as well (I have other changes pending for Botanist; see #120).
Comments welcomed!
This makes Herald, a plugin ONLY react to NativeVocal notifications so notifications can be sent silently by using `Rendering = NotificationRendering.PluginNotifier` on NotificationArgs. These notifications will be picked up by other notification listeners (eg. Aggregator).
After populating the list of plugins, auto-size the columns once. In the Resize event handler, do what you did before but account for the scrollbar width too. Prevents horizontal scrollbar appearing except for really fast resize movements.
I didn't try it yet with fewer than a scrollable # of plugins yet.
This cleans up my commented out code from #128.
Polishing a few rough edges:
* Enable scrolling on the Plugin List view. It only fit 6 or 7. I have 13.
* I fiddled a bit with column auto-sizing (left it commented out, see comment).
* A whole bunch of tweaks to the settings view:
* first row of controls was cut off at the top (under the window title bar)
* fixing that revealed uneven spacing between columns
* action buttons were teensy tiny and unreadable
* settings view columns were too narrow (200 px).
* added some spacing to help with readability
* settings windows now start in center of current screen rather than some random place.
CarrierJump w/ OnFoot is needed for many location tracking things -- ATTN MattG as this is causing problems with BioInsights.
I'm requesting Statistics for use by StatsScanner.
The new properties are:
* string Sender: The name of the plugin sending the notification.
* string ExtendedDetails: Even more detail than Title and Detail convey. This value will not be spoken nor included in pop-up notifications. However, other notifier plugins may use this value.
* int ColescingId: An id which can be used to correlate multiple notifications together (ie. for sorting/grouping) without depending on arbitrary string values. I recommend reserving -1 for system, 0 .. 1000 for system bodies and anything else is arbitrary and can be agreed upon between Core and Plugin authors, as desired.
While the motivating use is a new notifier plugin I am authoring (my Aggregator plugin, see GitHub), I have tried to make this as general purpose as possible.
I have modified Explorer as an example of usage. After this is merged, I'll follow up with another PR to use this in Botanist as well (I have other changes pending for Botanist; see #120).
Comments welcomed!
This makes Herald, a plugin ONLY react to NativeVocal notifications so notifications can be sent silently by using `Rendering = NotificationRendering.PluginNotifier` on NotificationArgs. These notifications will be picked up by other notification listeners (eg. Aggregator).
After populating the list of plugins, auto-size the columns once. In the Resize event handler, do what you did before but account for the scrollbar width too. Prevents horizontal scrollbar appearing except for really fast resize movements.
I didn't try it yet with fewer than a scrollable # of plugins yet.
This cleans up my commented out code from #128.
* [Framework] Add a DateTime property for CarrierJumpRequest DepartureTime (#119)
Refactored out the logic backing the JournalBase TimestampDateTime property so it can be used for any DateTime type property, providing a standardized json String -> DateTime conversion for any date-time property. Implemented as an `internal static` method on JournalBase so journal objects which inherit from JournalBase or don't inherit from it can use it.
Used this to provide a DepatureTimeDateTime on CarrierJumpRequest (this property was added in Update 14) and to implement the existing ExpiryDateTime on CurrentGoal.
From a quick search in the journal documentation, I don't see any other applications for this.
* [ObservatoryCore] UI tweaks
Polishing a few rough edges:
* Enable scrolling on the Plugin List view. It only fit 6 or 7. I have 13.
* I fiddled a bit with column auto-sizing (left it commented out, see comment).
* A whole bunch of tweaks to the settings view:
* first row of controls was cut off at the top (under the window title bar)
* fixing that revealed uneven spacing between columns
* action buttons were teensy tiny and unreadable
* settings view columns were too narrow (200 px).
* added some spacing to help with readability
* settings windows now start in center of current screen rather than some random place.
Polishing a few rough edges:
* Enable scrolling on the Plugin List view. It only fit 6 or 7. I have 13.
* I fiddled a bit with column auto-sizing (left it commented out, see comment).
* A whole bunch of tweaks to the settings view:
* first row of controls was cut off at the top (under the window title bar)
* fixing that revealed uneven spacing between columns
* action buttons were teensy tiny and unreadable
* settings view columns were too narrow (200 px).
* added some spacing to help with readability
* settings windows now start in center of current screen rather than some random place.
Refactored out the logic backing the JournalBase TimestampDateTime property so it can be used for any DateTime type property, providing a standardized json String -> DateTime conversion for any date-time property. Implemented as an `internal static` method on JournalBase so journal objects which inherit from JournalBase or don't inherit from it can use it.
Used this to provide a DepatureTimeDateTime on CarrierJumpRequest (this property was added in Update 14) and to implement the existing ExpiryDateTime on CurrentGoal.
From a quick search in the journal documentation, I don't see any other applications for this.
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.
* Implement click-through windows for X11
* Adjust the "platform specific" comment
* Get rid of accidental whitespace
* Move else declaration into next line
For plugin developers: Adds a new method to the IObservatoryCore interface to add multiple grid items in 1 call -- which only invokes the UI thread once (and potentially only scrolls to bottom once) providing a small performance improvement and providing some modest convenience.
I've had this occur a number of times (twice in a row yesterday) where if you receive new records while doing a long read-all, this exception crashes ObsCore.
So may need some further digging, but in the meantime, it won't crash here.
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!