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>),
|
PickedDb(Option<FileHandle>),
|
||||||
|
|
||||||
ChangePassword(String),
|
ChangePassword(String),
|
||||||
ChangeSecurity(bool),
|
ToggleSecurity,
|
||||||
OpenDb,
|
OpenDb,
|
||||||
DbOpened(Result<keepass::Database, String>),
|
DbOpened(Result<keepass::Database, String>),
|
||||||
|
|
||||||
|
|
@ -104,7 +104,7 @@ impl State {
|
||||||
Message::PickedDb(None) => eprintln!("no path received from picker"),
|
Message::PickedDb(None) => eprintln!("no path received from picker"),
|
||||||
|
|
||||||
Message::ChangePassword(password) => self.password = password,
|
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::OpenDb => return self.open_db(),
|
||||||
|
|
||||||
Message::DbOpened(result) => {
|
Message::DbOpened(result) => {
|
||||||
|
|
@ -273,7 +273,7 @@ impl State {
|
||||||
.into(),
|
.into(),
|
||||||
widget::checkbox(self.is_secure)
|
widget::checkbox(self.is_secure)
|
||||||
.label("security")
|
.label("security")
|
||||||
.on_toggle(Message::ChangeSecurity)
|
.on_toggle(|_| Message::ToggleSecurity)
|
||||||
.into(),
|
.into(),
|
||||||
])
|
])
|
||||||
.spacing(10)
|
.spacing(10)
|
||||||
|
|
@ -322,17 +322,19 @@ impl State {
|
||||||
.filter_map(move |((db_loaded, db_path_exists), event)| match event {
|
.filter_map(move |((db_loaded, db_path_exists), event)| match event {
|
||||||
iced::Event::Keyboard(keyboard::Event::KeyPressed { key, modifiers, .. }) => {
|
iced::Event::Keyboard(keyboard::Event::KeyPressed { key, modifiers, .. }) => {
|
||||||
match key.as_ref() {
|
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() {
|
Key::Named(key::Named::Tab) => Some(if modifiers.shift() {
|
||||||
Message::FocusPrevious
|
Message::FocusPrevious
|
||||||
} else {
|
} else {
|
||||||
Message::FocusNext
|
Message::FocusNext
|
||||||
}),
|
}),
|
||||||
Key::Character("/") => Some(Message::FocusSearch),
|
Key::Character("/" | "f") => 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("h") | Key::Named(key::Named::ArrowLeft) => {
|
Key::Character("h") | Key::Named(key::Named::ArrowLeft) => {
|
||||||
Some(Message::SelectionLeft)
|
Some(Message::SelectionLeft)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue