Michael Bucari-Tovo
df531de255
Update Avalonia to v12
...
Avalonia 12 uses compiled bindings by default. Converted all remaining reflection bindings into compiled bindings,
Fixed binding errors
2026-05-04 21:08:26 -06:00
Michael Bucari-Tovo
3ab1edc076
Code Cleanup
...
Make fields readonly
Remove unnecessary casts
Format document
Remove unnecessary usings
Sort usings
Use file-level namespaces
Order modifiers
2026-02-05 12:48:44 -07:00
Michael Bucari-Tovo
d67692355f
Enable project-wide nullable reference types
...
Added DB migration for nullable types.
2026-02-05 12:43:05 -07:00
Michael Bucari-Tovo
bb8b435810
Improve Find Better Quality Audiobooks scanner
...
Try to load best audio format from actual liberated audiobook files
Allow re-scanning after completing scanning.
2025-12-30 14:49:58 -07:00
MBucari
e850465ec1
Add more null safety
...
Enable project-wide nullable on LibationUiBase and LibationAvalonia
Explicitly parallelize unit tests
2025-12-30 13:17:11 -07:00
MBucari
29a5c943cb
Auto-scroll process queue
2025-12-29 21:52:36 -07:00
MBucari
4c5fdf05f5
Add "Download split by chapters" context menu item ( #1436 )
...
All processables are now created with an instance of Configuration, and they use that instance's settings.
Added Configuration.CreateEphemeralCopy() to clone Configuration without persistence.
2025-12-01 23:23:47 -07:00
Michael Bucari-Tovo
69a8eaad4a
Add mock LibraryBook and Configuration capabilities
...
- Added `MockLibraryBook` which contains factories for easily creating mock LibraryBooks and Books
- Added mock Configuration
- New `IPersistentDictionary` interface
- New `MockPersistentDictionary` class which uses a `JObject` as its data store
- Added `public static Configuration CreateMockInstance()`
- This method returns a mock Configuration instance **and also sets the `Configuration.Instance` property**
- Throws an exception if not in debug
- Updated all chardonnay controls to use the mocks in design mode. Previously I was using my actual database and settings file, but that approach is fragile and is unfriendly towards anyone else trying to work on it.
2025-11-05 13:28:49 -07:00
Michael Bucari-Tovo
db588629c0
Null safety and minor UI bugfix
...
Properly cancel the Locate Audiobooks when the dialog window closes before scanning is finished.
2025-08-04 17:15:37 -06:00
Michael Bucari-Tovo
80b86086ca
Consolidate process queue view models
...
Remove classic and chardonnay-specific implementations
Refactor TrackedQueue into an IList with INotifyCollectionChanged
2025-07-21 15:56:30 -06:00
MBucari
4dab16837e
Move ProcessQueueViewModel logic into LibationUiBase
...
Fix UI bug in classic when queue is in popped-out mode.
2025-07-15 22:31:17 -06:00
MBucari
1cf889eed7
Move ProcessBookViewModel logic into LiationUiBase
2025-07-15 15:05:33 -06:00
Michael Bucari-Tovo
b34970bd47
Add support for custom themes in chardonnay
2025-03-13 16:05:32 -06:00
Mbucari
98bb06378a
Update Avalonia to v11.0.0-preview8
2023-05-15 10:54:56 -06:00
Michael Bucari-Tovo
090871f50d
More migrations to Avalonia 11.0.0-preview6
2023-03-27 11:14:54 -06:00
Mbucari
7289459170
Migrate to Avalonia 11.0.0-preview6
2023-03-22 13:44:25 -06:00
Mbucari
df224cc7f3
Move TrackedQueue to LibationUiBase
2023-03-01 09:33:17 -07:00
Michael Bucari-Tovo
00c8be1f7e
Create LibationUiBase for shared UI code
2023-02-08 09:30:13 -07:00
Mbucari
e3c9f70dff
Move shared GUI code into AppScaffolding
2023-02-06 16:04:58 -07:00
Michael Bucari-Tovo
9ec877999e
Add download speed limit
2023-01-02 02:46:46 -07:00
Michael Bucari-Tovo
8dd59cb08a
Refactor
2022-07-23 20:54:02 -06:00