Add scan button, sort dropdown, and improved empty state to library view
This commit is contained in:
@@ -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);
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user