mirror of
https://github.com/tauri-apps/plugins-workspace.git
synced 2026-06-10 14:13:55 +02:00
feat(dialog): allow setting canCreateDirectories on macOS (#978)
* feat(dialog): allow setting `canCreateDirectories` on macOS closes #949 * Discard changes to plugins/log/src/api-iife.js * Discard changes to plugins/store/src/api-iife.js * Discard changes to plugins/window-state/src/api-iife.js * Update plugins/dialog/src/commands.rs Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de> * Update plugins/dialog/src/commands.rs Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de> * Update plugins/dialog/src/lib.rs Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de> * Update plugins/dialog/guest-js/index.ts Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de> * Update plugins/dialog/guest-js/index.ts Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de> --------- Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
This commit is contained in:
@@ -51,6 +51,8 @@ pub struct OpenDialogOptions {
|
||||
#[serde(default)]
|
||||
#[cfg_attr(mobile, allow(dead_code))]
|
||||
recursive: bool,
|
||||
/// Whether to allow creating directories in the dialog **macOS Only**
|
||||
can_create_directories: Option<bool>,
|
||||
}
|
||||
|
||||
/// The options for the save dialog API.
|
||||
@@ -65,6 +67,8 @@ pub struct SaveDialogOptions {
|
||||
filters: Vec<DialogFilter>,
|
||||
/// The initial path of the dialog.
|
||||
default_path: Option<PathBuf>,
|
||||
/// Whether to allow creating directories in the dialog **macOS Only**
|
||||
can_create_directories: Option<bool>,
|
||||
}
|
||||
|
||||
fn set_default_path<R: Runtime>(
|
||||
@@ -105,6 +109,9 @@ pub(crate) async fn open<R: Runtime>(
|
||||
if let Some(default_path) = options.default_path {
|
||||
dialog_builder = set_default_path(dialog_builder, default_path);
|
||||
}
|
||||
if let Some(can) = options.can_create_directories {
|
||||
dialog_builder = dialog_builder.set_can_create_directories(can);
|
||||
}
|
||||
for filter in options.filters {
|
||||
let extensions: Vec<&str> = filter.extensions.iter().map(|s| &**s).collect();
|
||||
dialog_builder = dialog_builder.add_filter(filter.name, &extensions);
|
||||
@@ -185,6 +192,9 @@ pub(crate) async fn save<R: Runtime>(
|
||||
if let Some(default_path) = options.default_path {
|
||||
dialog_builder = set_default_path(dialog_builder, default_path);
|
||||
}
|
||||
if let Some(can) = options.can_create_directories {
|
||||
dialog_builder = dialog_builder.set_can_create_directories(can);
|
||||
}
|
||||
for filter in options.filters {
|
||||
let extensions: Vec<&str> = filter.extensions.iter().map(|s| &**s).collect();
|
||||
dialog_builder = dialog_builder.add_filter(filter.name, &extensions);
|
||||
|
||||
Reference in New Issue
Block a user