blocking_dialog/linux/
confirm.rs1use super::is_kdialog_available;
5use crate::{BlockingConfirmDialog, BlockingDialogError};
6use raw_window_handle::HasWindowHandle;
7use std::process::Command;
8
9impl<'a, W: HasWindowHandle> BlockingConfirmDialog<'a, W> {
10 pub fn show(&self) -> Result<bool, BlockingDialogError> {
11 let status = if is_kdialog_available() {
12 Command::new("kdialog")
13 .arg("--title")
14 .arg(self.title)
15 .arg("--warningcontinuecancel")
16 .arg(self.message)
17 .status()?
18 } else {
19 Command::new("zenity")
20 .arg("--question")
21 .arg("--title")
22 .arg(self.title)
23 .arg("--text")
24 .arg(self.message)
25 .status()?
26 };
27
28 Ok(status.success())
29 }
30}