aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2016-08-06 02:20:43 -0400
committerTeddy Wing2016-08-06 02:20:43 -0400
commita090a72139ae0d1466859758b57408b4de49c14a (patch)
treeffe94a305dbb8c68c97d7144b7fc1ef5a142133a
parentbcddc44e2f034c1b7ef0dfb2037184b96080a1ae (diff)
downloadPassextract-a090a72139ae0d1466859758b57408b4de49c14a.tar.bz2
Handle `Result` on clipboard `set_contents`
Change the colour of the selection arrow to red if there's an error and green if the clipboard was written to successfully. The colour only lasts for 100 milliseconds because that's the refresh rate of the loop. This seems to be a nice way to briefly offer a visual notification and automatically return the interface to normal right afterward.
-rw-r--r--src/main.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs
index f0a452a..ee06d29 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -23,6 +23,8 @@ fn main() {
term.swap_buffers().unwrap();
let knockout_cell = Cell::with_style(Color::White, Color::Black, Attr::Default);
+ let red_cell = Cell::with_style(Color::White, Color::Red, Attr::Default);
+ let green_cell = Cell::with_style(Color::White, Color::Green, Attr::Default);
let mut selection = Point { x: 0, y: 2 };
@@ -73,7 +75,14 @@ fn main() {
}
}
'\x0D' => {
- clipboard_ctx.set_contents(strip_key(options[selection.y - 3]).to_owned()).unwrap()
+ match clipboard_ctx.set_contents(strip_key(options[selection.y - 3]).to_owned()) {
+ Ok(_) => {
+ term.printline_with_cell(selection.x, selection.y, "->", green_cell);
+ },
+ Err(_) => {
+ term.printline_with_cell(selection.x, selection.y, "->", red_cell);
+ }
+ }
}
c @ _ => {
}