diff options
author | Robin Krahl <robin.krahl@ireas.org> | 2019-12-10 20:02:59 +0100 |
---|---|---|
committer | Robin Krahl <robin.krahl@ireas.org> | 2019-12-10 20:02:59 +0100 |
commit | e152b4f4b6aa274774d1c750c3106528ebd4f1d4 (patch) | |
tree | f23e994a66ec562685ca44caa6ba939de34acdf1 /src/backends/zenity.rs | |
parent | 3b76a0a46ce38eef7fe3e5a969cec6ffee47f227 (diff) | |
parent | 89afcb4844dd484f0c9cdfef7e5ff8d751647c43 (diff) | |
download | dialog-rs-e152b4f4b6aa274774d1c750c3106528ebd4f1d4.tar.gz dialog-rs-e152b4f4b6aa274774d1c750c3106528ebd4f1d4.tar.bz2 |
Merge branch 'file-selection' into next
This patch series introduces a new FileSelection dialog type, see [0].
[0] https://lists.sr.ht/~ireas/dialog-rs-dev/%3C20191203122011.GA64086%40kunshan.atexit.net%3E
Diffstat (limited to 'src/backends/zenity.rs')
-rw-r--r-- | src/backends/zenity.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/backends/zenity.rs b/src/backends/zenity.rs index 0deca0a..ac0f98f 100644 --- a/src/backends/zenity.rs +++ b/src/backends/zenity.rs @@ -3,7 +3,9 @@ use std::process; -use crate::{Choice, Error, Input, Message, Password, Question, Result}; +use crate::{ + Choice, Error, FileSelection, FileSelectionMode, Input, Message, Password, Question, Result, +}; /// The `zenity` backend. /// @@ -163,4 +165,14 @@ impl super::Backend for Zenity { 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 mut args = vec!["--file-selection", "--filename", &dir]; + if file_selection.mode == FileSelectionMode::Save { + args.push("--save"); + } + self.execute(args, &file_selection.title) + .and_then(get_stdout) + } } |