diff options
| author | Robin Krahl <robin.krahl@ireas.org> | 2019-12-10 18:10:30 +0000 | 
|---|---|---|
| committer | Robin Krahl <robin.krahl@ireas.org> | 2019-12-10 19:56:19 +0100 | 
| commit | 1b50ae033b646db0efc8ea0917685a3a0c8bfc94 (patch) | |
| tree | d19e5cc9084b6718817c75220465db645876ff9a | |
| parent | 2f3e2b5474834e3d733edf09b831c5607d451f49 (diff) | |
| download | dialog-rs-1b50ae033b646db0efc8ea0917685a3a0c8bfc94.tar.gz dialog-rs-1b50ae033b646db0efc8ea0917685a3a0c8bfc94.tar.bz2 | |
Implement show_file_selection for kdialog backend
This patch adds an implementation of Backend’s show_file_selection
function to the KDialog backend, using KDialog’s --getopenfilename
option.
| -rw-r--r-- | src/backends/kdialog.rs | 9 | 
1 files changed, 8 insertions, 1 deletions
| diff --git a/src/backends/kdialog.rs b/src/backends/kdialog.rs index c2ddcd0..e556ddf 100644 --- a/src/backends/kdialog.rs +++ b/src/backends/kdialog.rs @@ -4,7 +4,7 @@  use std::process; -use crate::{Choice, Error, Input, Message, Password, Question, Result}; +use crate::{Choice, Error, FileSelection, Input, Message, Password, Question, Result};  /// Subprocess exit codes  /// @@ -136,4 +136,11 @@ impl super::Backend for KDialog {          self.execute(args, &question.title)              .and_then(|output| get_choice(output.status))      } + +    fn show_file_selection(&self, file_selection: &FileSelection) -> Result<Option<String>> { +        let dir = file_selection.path_to_string().ok_or("path not valid")?; +        let args = vec!["--getopenfilename", &dir]; +        self.execute(args, &file_selection.title) +            .and_then(get_stdout) +    }  } | 
