feat: dnd to trash
This commit is contained in:
parent
50ca5316f9
commit
11a2d0deef
3 changed files with 25 additions and 7 deletions
23
src/app.rs
23
src/app.rs
|
|
@ -1366,6 +1366,9 @@ impl Application for App {
|
||||||
},
|
},
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
tab::Command::MoveToTrash(paths) => {
|
||||||
|
self.operation(Operation::Delete { paths });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Command::batch(commands);
|
return Command::batch(commands);
|
||||||
|
|
@ -1436,9 +1439,13 @@ impl Application for App {
|
||||||
paths: data.paths,
|
paths: data.paths,
|
||||||
},
|
},
|
||||||
)),
|
)),
|
||||||
Location::Trash => {
|
Location::Trash if matches!(action, DndAction::Move) => {
|
||||||
// TODO move to trash if action is cut
|
self.operation(Operation::Delete { paths: data.paths });
|
||||||
return Command::none();
|
Command::none()
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
log::warn!("Copy to trash is not supported.");
|
||||||
|
Command::none()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return ret;
|
return ret;
|
||||||
|
|
@ -1485,9 +1492,13 @@ impl Application for App {
|
||||||
paths: data.paths,
|
paths: data.paths,
|
||||||
},
|
},
|
||||||
)),
|
)),
|
||||||
Location::Trash => {
|
Location::Trash if matches!(action, DndAction::Move) => {
|
||||||
// TODO move to trash if action is cut
|
self.operation(Operation::Delete { paths: data.paths });
|
||||||
return Command::none();
|
Command::none()
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
log::warn!("Copy to trash is not supported.");
|
||||||
|
Command::none()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
||||||
|
|
@ -637,6 +637,9 @@ impl Application for App {
|
||||||
tab::Command::Timeout(_, _) => {
|
tab::Command::Timeout(_, _) => {
|
||||||
log::warn!("Timeout not supported in dialog");
|
log::warn!("Timeout not supported in dialog");
|
||||||
}
|
}
|
||||||
|
tab::Command::MoveToTrash(_) => {
|
||||||
|
log::warn!("MoveToTrash not supported in dialog");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Command::batch(commands);
|
return Command::batch(commands);
|
||||||
|
|
|
||||||
|
|
@ -435,6 +435,7 @@ pub enum Command {
|
||||||
Scroll(widget::Id, AbsoluteOffset),
|
Scroll(widget::Id, AbsoluteOffset),
|
||||||
DropFiles(PathBuf, ClipboardPaste),
|
DropFiles(PathBuf, ClipboardPaste),
|
||||||
Timeout(Duration, Message),
|
Timeout(Duration, Message),
|
||||||
|
MoveToTrash(Vec<PathBuf>),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
|
|
@ -1322,8 +1323,11 @@ impl Tab {
|
||||||
}
|
}
|
||||||
commands.push(Command::DropFiles(to, from))
|
commands.push(Command::DropFiles(to, from))
|
||||||
}
|
}
|
||||||
|
Location::Trash if matches!(from.kind, ClipboardKind::Cut) => {
|
||||||
|
commands.push(Command::MoveToTrash(from.paths))
|
||||||
|
}
|
||||||
Location::Trash => {
|
Location::Trash => {
|
||||||
// TODO
|
log::warn!("Copy to trash is not supported.");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue