show confirmation dialog before deleting queue

fixes #227
This commit is contained in:
Henrik Friedrichsen
2021-01-03 23:12:38 +01:00
parent 3c66379cc6
commit 9639115f48

View File

@@ -10,6 +10,7 @@ use crate::traits::ViewExt;
use crate::ui::contextmenu::ContextMenu; use crate::ui::contextmenu::ContextMenu;
use crate::ui::help::HelpView; use crate::ui::help::HelpView;
use crate::ui::layout::Layout; use crate::ui::layout::Layout;
use crate::ui::modal::Modal;
use crate::UserData; use crate::UserData;
use crate::{ use crate::{
command::{ command::{
@@ -20,6 +21,7 @@ use crate::{
}; };
use cursive::event::{Event, Key}; use cursive::event::{Event, Key};
use cursive::traits::View; use cursive::traits::View;
use cursive::views::Dialog;
use cursive::Cursive; use cursive::Cursive;
use std::cell::RefCell; use std::cell::RefCell;
@@ -119,7 +121,14 @@ impl CommandManager {
Ok(None) Ok(None)
} }
Command::Clear => { Command::Clear => {
self.queue.clear(); let queue = self.queue.clone();
let confirmation = Dialog::text("Clear queue?")
.button("Yes", move |s| {
s.pop_layer();
queue.clear()
})
.dismiss_button("No");
s.add_layer(Modal::new(confirmation));
Ok(None) Ok(None)
} }
Command::UpdateLibrary => { Command::UpdateLibrary => {