Migrate read-only tables to UI.Adaptive TableGrid (1.32.0)
Details
Migrate 4 read-only table types (dataset-backed, view-backed, plugin-query,
source-backed) from inline rendering in TableBlockEditor to the new shared
TableGrid component in PrivStack.UI.Adaptive.
Each table type now has a dedicated ITableGridDataSource adapter:
- DatasetTableSource: queries IDataObjectProvider with sort/filter/page
- ViewTableSource: wraps inline SQL with WHERE/ORDER BY clauses
- PluginQueryTableSource: resolves cross-plugin providers via ICapabilityBroker
- SourceBackedTableSource: reads paged CSV/TSV via TableImportService
TableBlockEditor changes:
- 4 async rebuild methods reduced from ~700 lines total to ~45 lines each
- Added ReadOnlyTableGrid XAML element alongside existing manual Grid
- Visibility toggling between ReadOnlyTableGrid and manual Grid based on type
- Cached data source to preserve sort state across filter/page changes
- Syncs _datasetColumns from adapters for column visibility flyout
- Manual/entity tables remain unchanged (Phase 2)
Net reduction: 537 lines from TableBlockEditor.axaml.cs (3,808 -> 3,271).
Bumps Notes plugin from 1.31.1 to 1.32.0.
Migrate sidebar to PluginSidebar
Details
Replace manual sidebar Border, collapse button, and resize handle with
PluginSidebar control using IsContentScrollable=False to preserve tree
virtualization. CollapsedContent slot provides icon-only new page and data
sources buttons when collapsed. Remove BoolToGridLengthConverter,
BoolToWidthConverter, BoolToStringConverter, BoolToPathIconConverter, and
~60 lines of sidebar resize code-behind. Data sources vertical resize
handlers retained (separate concern). Grid simplified to Auto,*. Version 1.31.0.
Migrate sidebar to PluginSidebar
Details
Replace manual sidebar Border, collapse button, and resize handle with
PluginSidebar control from UI.Adaptive. Remove BoolToWidthConverter and
BoolToPathIconConverter (no longer needed). Sidebar resize is now handled
internally by PluginSidebar with WidthChanged event for VM persistence.
Grid column defs simplified from Auto,Auto,* to Auto,*. Version 1.7.0.
Migrate toolbar to PluginToolbar
Details
Replace inline toolbar XAML with PluginToolbar from PrivStack.UI.Adaptive.
Simple/Detailed mode toggle and view mode buttons (List/Kanban/GTD/Calendar)
placed in Actions slot. Sidebar migration deferred (ListBox with
virtualization would break inside PluginSidebar's ScrollViewer wrapper).
Version bump: 1.5.4 → 1.6.0
Migrate toolbar to PluginToolbar + InsertLinkDialog + editor improvements
Details
Toolbar: Replace inline toolbar XAML with PluginToolbar from
PrivStack.UI.Adaptive. View mode toggle (Pages/Stickies/Canvas), settings
flyout, and refresh button placed in Actions slot. Import progress bar
extracted to its own grid row. Sidebar migration deferred (complex data
sources panel with vertical resize handle doesn't fit PluginSidebar's
ScrollViewer model).
Also includes: InsertLinkDialog control, Avalonia.AvaloniaEdit integration,
BlockWrapper/BlockquoteEditor/CalloutBlock/CodeBlock control improvements,
EditableFormattedText and FormattedTextBlock enhancements, TextColorPicker
updates, NotesService and NotesViewModel updates.
Version bump: 1.25.4 → 1.30.0
Get notified about new releases