From 73959f5d9a3b11d1484cc2017c200f010a205e6e Mon Sep 17 00:00:00 2001 From: amrbashir Date: Thu, 7 Nov 2024 22:06:51 +0200 Subject: [PATCH] macos impl --- Cargo.lock | 2 ++ plugins/opener/Cargo.toml | 8 ++++++++ plugins/opener/src/reveal_item_in_dir.rs | 13 ++++++++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index ef81c04c..ad48616d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6585,6 +6585,8 @@ name = "tauri-plugin-opener" version = "2.0.0" dependencies = [ "dunce", + "objc2-app-kit", + "objc2-foundation", "open", "regex", "schemars", diff --git a/plugins/opener/Cargo.toml b/plugins/opener/Cargo.toml index 0045fb95..6c6f0919 100644 --- a/plugins/opener/Cargo.toml +++ b/plugins/opener/Cargo.toml @@ -54,3 +54,11 @@ features = [ [target."cfg(any(target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"netbsd\", target_os = \"openbsd\"))".dependencies] zbus = { workspace = true } + +[target."cfg(target_os = \"macos\")".dependencies.objc2-app-kit] +version = "0.2" +features = ["NSWorkspace"] + +[target."cfg(target_os = \"macos\")".dependencies.objc2-foundation] +version = "0.2" +features = ["NSURL", "NSArray", "NSString"] diff --git a/plugins/opener/src/reveal_item_in_dir.rs b/plugins/opener/src/reveal_item_in_dir.rs index 5b3cc5bc..89ce1492 100644 --- a/plugins/opener/src/reveal_item_in_dir.rs +++ b/plugins/opener/src/reveal_item_in_dir.rs @@ -167,6 +167,17 @@ mod imp { #[cfg(target_os = "macos")] mod imp { use super::*; + use objc2_app_kit::NSWorkspace; + use objc2_foundation::{NSArray, NSString, NSURL}; + pub fn reveal_item_in_dir(path: &Path) -> crate::Result<()> { + unsafe { + let path = path.to_string_lossy(); + let path = NSString::from_str(&path); + let urls = vec![NSURL::fileURLWithPath(&path)]; + let urls = NSArray::from_vec(urls); - pub fn reveal_item_in_dir(path: &Path) -> crate::Result<()> {} + let workspace = NSWorkspace::new(); + workspace.activateFileViewerSelectingURLs(&urls); + } + } }