feat: improve keyboard shortcuts
This commit is contained in:
parent
2b41e36362
commit
f7340ffcb9
1 changed files with 11 additions and 9 deletions
|
|
@ -18,7 +18,7 @@ enum Message {
|
|||
PickedDb(Option<FileHandle>),
|
||||
|
||||
ChangePassword(String),
|
||||
ChangeSecurity(bool),
|
||||
ToggleSecurity,
|
||||
OpenDb,
|
||||
DbOpened(Result<keepass::Database, String>),
|
||||
|
||||
|
|
@ -104,7 +104,7 @@ impl State {
|
|||
Message::PickedDb(None) => eprintln!("no path received from picker"),
|
||||
|
||||
Message::ChangePassword(password) => self.password = password,
|
||||
Message::ChangeSecurity(bool) => self.is_secure = bool,
|
||||
Message::ToggleSecurity => self.is_secure = !self.is_secure,
|
||||
Message::OpenDb => return self.open_db(),
|
||||
|
||||
Message::DbOpened(result) => {
|
||||
|
|
@ -273,7 +273,7 @@ impl State {
|
|||
.into(),
|
||||
widget::checkbox(self.is_secure)
|
||||
.label("security")
|
||||
.on_toggle(Message::ChangeSecurity)
|
||||
.on_toggle(|_| Message::ToggleSecurity)
|
||||
.into(),
|
||||
])
|
||||
.spacing(10)
|
||||
|
|
@ -322,17 +322,19 @@ impl State {
|
|||
.filter_map(move |((db_loaded, db_path_exists), event)| match event {
|
||||
iced::Event::Keyboard(keyboard::Event::KeyPressed { key, modifiers, .. }) => {
|
||||
match key.as_ref() {
|
||||
Key::Character("p" | "f" | "i") if !db_loaded => Some(Message::PickDb),
|
||||
Key::Character("v" | "s") if !db_loaded => Some(Message::ToggleSecurity),
|
||||
|
||||
Key::Named(key::Named::Enter) if !db_loaded && db_path_exists => {
|
||||
Some(Message::OpenDb)
|
||||
}
|
||||
|
||||
Key::Named(key::Named::Tab) => Some(if modifiers.shift() {
|
||||
Message::FocusPrevious
|
||||
} else {
|
||||
Message::FocusNext
|
||||
}),
|
||||
Key::Character("/") => Some(Message::FocusSearch),
|
||||
|
||||
Key::Named(key::Named::Enter) if !db_loaded && db_path_exists => {
|
||||
Some(Message::OpenDb)
|
||||
}
|
||||
Key::Character("p" | "f" | "i") if !db_loaded => Some(Message::PickDb),
|
||||
Key::Character("/" | "f") => Some(Message::FocusSearch),
|
||||
|
||||
Key::Character("h") | Key::Named(key::Named::ArrowLeft) => {
|
||||
Some(Message::SelectionLeft)
|
||||
|
|
|
|||
Loading…
Reference in a new issue