Add scan button, sort dropdown, and improved empty state to library view

This commit is contained in:
2026-02-28 01:36:47 +02:00
parent cbc3463643
commit 1cde1e63d9
3 changed files with 116 additions and 14 deletions

View File

@@ -649,6 +649,31 @@ impl DriftwoodWindow {
show_drop_hint_action,
]);
// Sort library action (parameterized with sort mode string)
let sort_action = gio::SimpleAction::new("sort-library", Some(glib::VariantTy::STRING));
{
let window_weak = self.downgrade();
sort_action.connect_activate(move |_, param| {
let Some(window) = window_weak.upgrade() else { return };
let Some(mode_str) = param.and_then(|p| p.get::<String>()) else { return };
let lib_view = window.imp().library_view.get().unwrap();
let sort_mode = match mode_str.as_str() {
"recent" => crate::ui::library_view::SortMode::RecentlyAdded,
"size" => crate::ui::library_view::SortMode::Size,
_ => crate::ui::library_view::SortMode::NameAsc,
};
lib_view.set_sort_mode(sort_mode);
let settings_key = match mode_str.as_str() {
"recent" => "recently-added",
"size" => "size",
_ => "name",
};
let settings = gio::Settings::new(APP_ID);
settings.set_string("sort-mode", settings_key).ok();
});
}
self.add_action(&sort_action);
// --- Batch actions ---
let batch_integrate_action = gio::SimpleAction::new("batch-integrate", None);
{