Merge: collection ordering, and a range that says where it ends
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> # Conflicts: # docs/traceability.md # ui/dr-ui/src/collections_ui.rs # ui/dr-ui/src/library.rs # ui/dr-ui/ui/app.slint # ui/dr-ui/ui/library.slint # ui/dr-ui/ui/widgets.slint
This commit is contained in:
@@ -2245,6 +2245,23 @@ fn load_window(window: &AppWindow, ctl: &Rc<LibraryController>) {
|
||||
refresh_timeline(window, catalog, ctl);
|
||||
}
|
||||
|
||||
// TRACES: FR-CAT-7
|
||||
// Whether this scope has an order a drag can change, which is what lets the
|
||||
// grid draw an insertion caret and accept a drop.
|
||||
//
|
||||
// Answered here because this is the one place that runs on every re-read —
|
||||
// a scope change, a reorder, a collection gaining a child that turns it
|
||||
// into a set — so the caret cannot outlive the scope that justified it.
|
||||
//
|
||||
// The trash is never reorderable. It is a view of what was deleted, ordered
|
||||
// by when, and it is not a collection at all.
|
||||
window.set_library_manual_order(
|
||||
!trash
|
||||
&& scope.is_some_and(|c| {
|
||||
dr_catalog::collections::orders_manually(catalog.connection(), c).unwrap_or(false)
|
||||
}),
|
||||
);
|
||||
|
||||
let cells = if trash {
|
||||
library::read_trashed_cells(catalog, offset, window_size)
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user