diff options
| author | Mason Reed <mason@vector35.com> | 2025-10-06 19:06:44 -0400 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2025-10-07 14:11:02 -0400 |
| commit | bbda2672f57de2f432222cf64b47f1f2631d3df7 (patch) | |
| tree | 5a1b6a4d7e1309cc0cdc3c918469b50c925719c6 /rust | |
| parent | c92e768dc938e8d9a9a5822222cef6fa52c454c9 (diff) | |
[Rust] Fix save file dialog not respecting default file path
Fixes https://github.com/Vector35/binaryninja-api/issues/7268
Diffstat (limited to 'rust')
| -rw-r--r-- | rust/src/interaction/form.rs | 13 | ||||
| -rw-r--r-- | rust/src/interaction/handler.rs | 10 | ||||
| -rw-r--r-- | rust/tests/interaction.rs | 10 |
3 files changed, 10 insertions, 23 deletions
diff --git a/rust/src/interaction/form.rs b/rust/src/interaction/form.rs index 534aed74..4cf9f863 100644 --- a/rust/src/interaction/form.rs +++ b/rust/src/interaction/form.rs @@ -101,14 +101,11 @@ pub enum FormInputField { prompt: String, /// File extension to filter on. extension: Option<String>, - /// Default file name to fill. - default_name: Option<String>, default: Option<String>, value: Option<String>, }, DirectoryName { prompt: String, - default_name: Option<String>, default: Option<String>, value: Option<String>, }, @@ -182,14 +179,12 @@ impl FormInputField { BNFormInputFieldType::SaveFileNameFormField => Self::SaveFileName { prompt, extension, - default_name: name_default, - default: string_default, + default: name_default, value: string_result, }, BNFormInputFieldType::DirectoryNameFormField => Self::DirectoryName { prompt, - default_name: name_default, - default: string_default, + default: name_default, value: string_result, }, BNFormInputFieldType::CheckboxFormField => Self::Checkbox { @@ -345,8 +340,8 @@ impl FormInputField { /// Mapping to the [`BNFormInputField::defaultName`] field. pub fn try_default_name(&self) -> Option<String> { match self { - Self::SaveFileName { default_name, .. } => default_name.clone(), - Self::DirectoryName { default_name, .. } => default_name.clone(), + Self::SaveFileName { default, .. } => default.clone(), + Self::DirectoryName { default, .. } => default.clone(), _ => None, } } diff --git a/rust/src/interaction/handler.rs b/rust/src/interaction/handler.rs index 2af63eb1..d4734d34 100644 --- a/rust/src/interaction/handler.rs +++ b/rust/src/interaction/handler.rs @@ -211,15 +211,14 @@ pub trait InteractionHandler: Sync + Send + 'static { &mut self, prompt: &str, extension: Option<String>, - default_name: Option<String>, + default: Option<String>, ) -> Option<String> { let mut form = Form::new(prompt.to_owned()); form.add_field(FormInputField::SaveFileName { prompt: prompt.to_string(), extension, - default: None, + default, value: None, - default_name, }); if !self.get_form_input(&mut form) { return None; @@ -231,13 +230,12 @@ pub trait InteractionHandler: Sync + Send + 'static { fn get_directory_name_input( &mut self, prompt: &str, - default_name: Option<String>, + default: Option<String>, ) -> Option<String> { let mut form = Form::new(prompt.to_owned()); form.add_field(FormInputField::DirectoryName { prompt: prompt.to_string(), - default_name, - default: None, + default, value: None, }); if !self.get_form_input(&mut form) { diff --git a/rust/tests/interaction.rs b/rust/tests/interaction.rs index 5b59a436..2f38241c 100644 --- a/rust/tests/interaction.rs +++ b/rust/tests/interaction.rs @@ -94,14 +94,9 @@ impl InteractionHandler for MyInteractionHandler { FormInputField::DirectoryName { ref mut value, default, - default_name, .. } => { - let new_value = format!( - "example{}{}", - default.clone().unwrap_or_default(), - default_name.clone().unwrap_or_default() - ); + let new_value = format!("example{}", default.clone().unwrap_or_default(),); *value = Some(new_value); true } @@ -134,7 +129,6 @@ fn test_get_directory_default() { let mut my_form = Form::new("get_dir_default"); my_form.add_field(FormInputField::DirectoryName { prompt: "get_dir_default".to_string(), - default_name: Some("_default_name".to_string()), default: Some("_default".to_string()), value: None, }); @@ -142,7 +136,7 @@ fn test_get_directory_default() { assert_eq!(my_form.prompt(), true); assert_eq!( my_form.fields[0].try_value_string(), - Some("example_default_default_name".to_string()) + Some("example_default".to_string()) ) } |
