From d755b0186a1aca420425a8f74ce1803d47ddc7a1 Mon Sep 17 00:00:00 2001 From: "drake.aren" Date: Sun, 28 Apr 2019 11:42:45 +0600 Subject: [PATCH 1/2] select all features --- src/widgets/view/client.rs | 4 ++++ src/widgets/view/view.rs | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/widgets/view/client.rs b/src/widgets/view/client.rs index 8c09ce0..b878427 100644 --- a/src/widgets/view/client.rs +++ b/src/widgets/view/client.rs @@ -85,6 +85,10 @@ impl Client { spawn(f); } + pub fn select_all(&mut self) { + let f = self.inner.select_all(self.view_id).map_err(|_| ()); + spawn(f); + } pub fn save(&mut self, file: &str) { let f = self.inner.save(self.view_id, file).map_err(|_| ()); spawn(f); diff --git a/src/widgets/view/view.rs b/src/widgets/view/view.rs index c2fe1f7..05fd4b5 100644 --- a/src/widgets/view/view.rs +++ b/src/widgets/view/view.rs @@ -95,6 +95,9 @@ impl View { self.client.backspace() } + pub fn select_all(&mut self) { + self.client.select_all() + } pub fn delete(&mut self) { self.client.delete() } @@ -193,6 +196,7 @@ impl View { Key::Ctrl(c) => match c { 'w' => self.save(), 'h' => self.back(), + 'a' => self.select_all(), _ => error!("un-handled input ctrl+{}", c), }, Key::Backspace => self.back(), From a5ca773761085f87c11064a1296f7e98f6b8f0b1 Mon Sep 17 00:00:00 2001 From: "drake.aren" Date: Sun, 28 Apr 2019 11:43:42 +0600 Subject: [PATCH 2/2] undo redo features --- src/widgets/view/client.rs | 10 ++++++++++ src/widgets/view/view.rs | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/widgets/view/client.rs b/src/widgets/view/client.rs index b878427..e75df10 100644 --- a/src/widgets/view/client.rs +++ b/src/widgets/view/client.rs @@ -85,6 +85,16 @@ impl Client { spawn(f); } + pub fn undo(&mut self) { + let f = self.inner.undo(self.view_id).map_err(|_| ()); + spawn(f); + } + + pub fn redo(&mut self) { + let f = self.inner.redo(self.view_id).map_err(|_| ()); + spawn(f); + } + pub fn select_all(&mut self) { let f = self.inner.select_all(self.view_id).map_err(|_| ()); spawn(f); diff --git a/src/widgets/view/view.rs b/src/widgets/view/view.rs index 05fd4b5..8f94071 100644 --- a/src/widgets/view/view.rs +++ b/src/widgets/view/view.rs @@ -98,6 +98,15 @@ impl View { pub fn select_all(&mut self) { self.client.select_all() } + + pub fn undo(&mut self) { + self.client.undo() + } + + pub fn redo(&mut self) { + self.client.redo() + } + pub fn delete(&mut self) { self.client.delete() } @@ -196,6 +205,8 @@ impl View { Key::Ctrl(c) => match c { 'w' => self.save(), 'h' => self.back(), + 'z' => self.undo(), + 'y' => self.redo(), 'a' => self.select_all(), _ => error!("un-handled input ctrl+{}", c), },