2
0
mirror of https://github.com/9ParsonsB/Pulsar.git synced 2025-04-05 17:39:39 -04:00

60 Commits

Author SHA1 Message Date
Fred K
cfeb716064 [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.
2024-01-22 00:29:38 -05:00
Xjph
59da2f783b wire up donate and github links 2024-01-21 14:11:07 -03:30
Xjph
b8f5f6a73e ready for testing 2024-01-21 13:35:03 -03:30
Xjph
86cd7fe3e4 WIP: observatory UI overhaul 2023-07-07 08:36:27 -02:30
Xjph
7b6d345cbb Winforms overhal in progress 2023-05-05 09:42:50 -02:30
Xjph
fa6966cff0 New UI framework changes 2023-05-05 09:42:12 -02:30
Xjph
5c3474dc0e Initial overhaul work 2023-05-05 09:38:00 -02:30
Xjph
f73227f02f Update to avalonia 11 preview 2023-05-05 09:38:00 -02:30
F K
639ad72fb4
2 Bug Fixes (#112)
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.
2023-04-30 13:19:22 -02:30
Xjph
5bbf2f50de Remove unused variables from catch 2023-03-01 16:31:18 -03:30
Maximilian Dorn
35a0cfdcbd
Update position when window is shown (#107) 2023-03-01 16:23:14 -03:30
Maximilian Dorn
5ada0e41d8
Implement click-through windows for X11 (Linux) (#106)
* Implement click-through windows for X11

* Adjust the "platform specific" comment

* Get rid of accidental whitespace

* Move else declaration into next line
2023-03-01 16:22:47 -03:30
F K
6298316c94
Implement Tab separated export format (#103)
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!
2023-02-26 11:20:59 -03:30
Xjph
eeae99dc2a Migrate to .NET 6 2022-12-04 15:01:56 -03:30
F K
9b34d50d32
Disable ShowActivated on notifications to avoid focus stealing (#98)
The recently updated avalonia seemed to change behavior in a way that caused notifications to steal focus from the game (often at at inopportune times). Not all users experienced this.
2022-12-04 10:41:30 -03:30
Xjph
428b44cc2b Make file browse result check nullsafe 2022-08-29 09:48:15 -02:30
Jonathan Miller
342d5af11c
Error handling improvements (#92)
* Consolidate plugin errors into single window.

* Handle error aggregation and loggin inside error reporter.

* Minor logging corrections.

* Error popup tweaking
2022-07-24 15:48:55 -02:30
Jonathan Miller
8de34a141c
Export version fixes (#83)
* 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>
2022-05-21 13:00:47 -02:30
Jonathan Miller
fb45b5c3e2
Export, plugin archive install, and herald cache race condition fixes (#82)
* 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.
2022-05-09 11:11:57 -02:30
Xjph
e7f7250c08 Correcting version check 2022-04-04 21:22:51 -02:30
F K
3cc8cc3abe
Fix a "Call from invalid thread" exception. (#72)
Random occurrence triggered by a plugin's grid update. It's either fairly rare (related to something I was doing in-app) or new with a recent update to the plugin that caused it (just updated it last night).
2022-03-25 08:47:28 -02:30
F K
4f4ba88878
Add event-based LogMonitor state changes to better handle batch reads (#59)
* 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.
2022-03-03 16:39:49 -03:30
Xjph
889825275d
New feature: Monitor on start (#42)
* Implement monitor on start

* finish implementation of monitor on start
2021-12-18 12:21:07 -03:30
Xjph
554948534e
observatory herald (#30)
* WIP: initial commit for observatory herald

* Plugin error handling refactor

* make error window non-modal

* tidy up plugin error handling

* first pass for basic herald functionality

* corrections for linux env

* Use FNV hash directly instead of managing through dictionary/index file

* resolve audio queuing issue, switch to personal NetCoreAudio fork

* merge cleanup

* add enable setting, populate defaults

* framework xml doc update

* Adjust settings, add style selection, replace locale with demonym in dropdown list.

* Test is position is on screen before saving/loading.

* use a default that's actually in the list
2021-11-15 10:57:46 -03:30
Xjph
a2700d6dc0 save potential settings change after action 2021-10-26 08:31:25 -02:30
Xjph
212c8ec209 Add "action" setting type to create buttons. 2021-10-24 12:34:30 -02:30
Xjph
310287b0af allow multiple simultaneous popup notifications to vertically stack 2021-10-23 15:47:38 -02:30
Xjph
08a8aa3156 don't save empty fileinfo settings 2021-10-23 13:03:22 -02:30
Xjph
66eb0e5e95 use basic ssml in speech test button to ensure normal functionality 2021-10-23 12:34:48 -02:30
Xjph
908ea59b20 feat: update check 2021-10-22 22:42:44 -02:30
Xjph
a2261a5c6c feat: add plugin folder button 2021-10-18 10:33:42 -02:30
Xjph
5edb32e8c7 feat: save text fields on focus loss 2021-10-16 12:31:12 -02:30
Xjph
330f30c5e7 fix: string settings not saving 2021-10-16 11:59:42 -02:30
Xjph
5159500644 Notification overhaul and update to avaloniaui 0.10.7 2021-10-12 20:45:00 -02:30
Xjph
840ccad5bf add scale and timeout notification settings 2021-09-13 10:16:18 -02:30
Xjph
289df0751a prevent exception when testing with no voice 2021-09-13 09:48:16 -02:30
Xjph
14a3998311 improve icon handling 2021-09-06 18:27:19 -02:30
Xjph
cd28a49647 use friendlier names for display 2021-09-04 19:35:42 -02:30
Xjph
68e663c7f0 don't show notification window in taskbar 2021-09-04 18:40:18 -02:30
Xjph
c883821fb6 voice notifications and settings UI rework 2021-09-04 18:36:03 -02:30
Xjph
e68d8d0690 Save main window position/size. 2021-09-04 18:34:55 -02:30
Xjph
f644a56918 increase github and donate link sizes 2021-08-29 20:32:33 -02:30
Xjph
7d2cc417ba
feat: cosmetic overhaul of native notification popup (#13)
* feat: cosmetic overhaul of native notification popup

* fix: use correct screen default

* feat: move notification test from debug build type to button press

* fix: not debug anymore

* fix: rearrange native notification settings controls

* fix: account for display scaling when positioning notification

* fix: guard against a screen that no longer exists

* fix: safer way to get screens, in case control tree changes
2021-08-29 20:27:20 -02:30
F K
f7d5aa4bd2
Ensures notify-only plugin configuration UI is rendered (#12)
Switching the basic Announcer plugin to implement only `IObservatoryNotifier`, I noticed the config UI went missing. This PR fixes that.
2021-08-19 08:31:46 -02:30
Xjph
e9a4f873b5
Merge pull request #10 from fredjk-gh/PreReadAsReadAllSettingsUIFixes
Implement int settings; de-dupe plugin table and show types, etc
2021-08-17 10:59:55 -02:30
Fred Kuipers
453ff2f793 Make Pre-read act similarly to "Read All"
This has the effect of suppressing notifications when restoring current system context after initial click on "Start Monitor".
2021-08-15 17:19:13 -04:00
Fred Kuipers
e523dddfe3 Revert LogMonitor/CoreViewModel changes, implement Slider int setting
Also revert the PluginType enum.


Fix more whitespace
2021-08-15 17:02:35 -04:00
Fred Kuipers
73c9b94b0f Remove auto-generated method 2021-08-14 00:19:02 -04:00
Fred Kuipers
3c3aca8bfd Enclose pre-read with Read-all; de-dupe plugin table and show types, etc
A few changes in preparation for the upcoming Announcer plugin.
1) De-dupe entries in the plugin table in the core settings UI when a plugin implements both Worker and Notifier interfaces.
2) Also add a "Types" column to the plugin table indicating the set of implemented interfaces found.
3) Wrap the pre-reading logic in "Read-all" scope to properly suppress  a stampede of notifications (particularly audio ones) when starting the log monitor.
4) Fix the int setting UI. It rendered incorrectly, it didn't get the value from the settings class, nor wrote it back. Also implemented optional value bounding using the new setting attribute (see the related Framework PR). 
5) Applied similar fixes to string setting (addressed rendering, write-back although untested).
6) Minor visual fixes (height/vertical alignment) for non-boolean settings to address cut-off/overlapping inputs.

Sorry for the larger PR, but these *should* be all the loose ends before we could consider including Basic Announcer...
2021-08-14 00:14:13 -04:00
Fred Kuipers
13fecfa395 Add a setting to control pre-reading behavior
Also makes adding new rows to the settings grid a little more dynamic.
2021-07-20 19:35:33 -04:00