diff options
author | 2023-09-22 06:00:51 +0200 | |
---|---|---|
committer | 2023-09-22 06:00:51 +0200 | |
commit | 8cc19de254c37d3123d5ea1b6513f1f34d35c7c8 (patch) | |
tree | 51b92985af24169acf6949ae7bf4e1ac957ca24a | |
parent | af21cf82492bf7ffa1241cebae182c5916fc07d1 (diff) | |
download | iced-8cc19de254c37d3123d5ea1b6513f1f34d35c7c8.tar.gz iced-8cc19de254c37d3123d5ea1b6513f1f34d35c7c8.tar.bz2 iced-8cc19de254c37d3123d5ea1b6513f1f34d35c7c8.zip |
Add `text` helper method for `text_editor::Content`
-rw-r--r-- | examples/editor/src/main.rs | 19 | ||||
-rw-r--r-- | widget/src/text_editor.rs | 21 |
2 files changed, 22 insertions, 18 deletions
diff --git a/examples/editor/src/main.rs b/examples/editor/src/main.rs index f49ca6e8..a69e1f54 100644 --- a/examples/editor/src/main.rs +++ b/examples/editor/src/main.rs @@ -114,25 +114,8 @@ impl Application for Editor { } else { self.is_loading = true; - let mut contents = self.content.lines().enumerate().fold( - String::new(), - |mut contents, (i, line)| { - if i > 0 { - contents.push('\n'); - } - - contents.push_str(&line); - - contents - }, - ); - - if !contents.ends_with('\n') { - contents.push('\n'); - } - Command::perform( - save_file(self.file.clone(), contents), + save_file(self.file.clone(), self.content.text()), Message::FileSaved, ) } diff --git a/widget/src/text_editor.rs b/widget/src/text_editor.rs index c142c22d..6d25967e 100644 --- a/widget/src/text_editor.rs +++ b/widget/src/text_editor.rs @@ -190,6 +190,27 @@ where } } + pub fn text(&self) -> String { + let mut text = self.lines().enumerate().fold( + String::new(), + |mut contents, (i, line)| { + if i > 0 { + contents.push('\n'); + } + + contents.push_str(&line); + + contents + }, + ); + + if !text.ends_with('\n') { + text.push('\n'); + } + + text + } + pub fn selection(&self) -> Option<String> { self.0.borrow().editor.selection() } |