Remove `App::on_open_files`, as it's a subset of `on_open_urls`

Antonio Scandurra and Nathan Sobo created

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Change summary

crates/gpui/src/app.rs                   | 14 -----------
crates/gpui/src/platform.rs              |  1 
crates/gpui/src/platform/mac/platform.rs | 31 --------------------------
crates/gpui/src/platform/test.rs         |  2 -
4 files changed, 48 deletions(-)

Detailed changes

crates/gpui/src/app.rs 🔗

@@ -274,20 +274,6 @@ impl App {
         self
     }
 
-    pub fn on_open_files<F>(&mut self, mut callback: F) -> &mut Self
-    where
-        F: 'static + FnMut(Vec<PathBuf>, &mut MutableAppContext),
-    {
-        let cx = self.0.clone();
-        self.0
-            .borrow_mut()
-            .foreground_platform
-            .on_open_files(Box::new(move |paths| {
-                callback(paths, &mut *cx.borrow_mut())
-            }));
-        self
-    }
-
     pub fn on_open_urls<F>(&mut self, mut callback: F) -> &mut Self
     where
         F: 'static + FnMut(Vec<String>, &mut MutableAppContext),

crates/gpui/src/platform.rs 🔗

@@ -62,7 +62,6 @@ pub(crate) trait ForegroundPlatform {
     fn on_resign_active(&self, callback: Box<dyn FnMut()>);
     fn on_quit(&self, callback: Box<dyn FnMut()>);
     fn on_event(&self, callback: Box<dyn FnMut(Event) -> bool>);
-    fn on_open_files(&self, callback: Box<dyn FnMut(Vec<PathBuf>)>);
     fn on_open_urls(&self, callback: Box<dyn FnMut(Vec<String>)>);
     fn run(&self, on_finish_launching: Box<dyn FnOnce() -> ()>);
 

crates/gpui/src/platform/mac/platform.rs 🔗

@@ -85,10 +85,6 @@ unsafe fn build_classes() {
             sel!(handleGPUIMenuItem:),
             handle_menu_item as extern "C" fn(&mut Object, Sel, id),
         );
-        decl.add_method(
-            sel!(application:openFiles:),
-            open_files as extern "C" fn(&mut Object, Sel, id, id),
-        );
         decl.add_method(
             sel!(application:openURLs:),
             open_urls as extern "C" fn(&mut Object, Sel, id, id),
@@ -107,7 +103,6 @@ pub struct MacForegroundPlatformState {
     quit: Option<Box<dyn FnMut()>>,
     event: Option<Box<dyn FnMut(crate::Event) -> bool>>,
     menu_command: Option<Box<dyn FnMut(&dyn Action)>>,
-    open_files: Option<Box<dyn FnMut(Vec<PathBuf>)>>,
     open_urls: Option<Box<dyn FnMut(Vec<String>)>>,
     finish_launching: Option<Box<dyn FnOnce() -> ()>>,
     menu_actions: Vec<Box<dyn Action>>,
@@ -210,10 +205,6 @@ impl platform::ForegroundPlatform for MacForegroundPlatform {
         self.0.borrow_mut().event = Some(callback);
     }
 
-    fn on_open_files(&self, callback: Box<dyn FnMut(Vec<PathBuf>)>) {
-        self.0.borrow_mut().open_files = Some(callback);
-    }
-
     fn on_open_urls(&self, callback: Box<dyn FnMut(Vec<String>)>) {
         self.0.borrow_mut().open_urls = Some(callback);
     }
@@ -673,28 +664,6 @@ extern "C" fn will_terminate(this: &mut Object, _: Sel, _: id) {
     }
 }
 
-extern "C" fn open_files(this: &mut Object, _: Sel, _: id, paths: id) {
-    let paths = unsafe {
-        (0..paths.count())
-            .into_iter()
-            .filter_map(|i| {
-                let path = paths.objectAtIndex(i);
-                match CStr::from_ptr(path.UTF8String() as *mut c_char).to_str() {
-                    Ok(string) => Some(PathBuf::from(string)),
-                    Err(err) => {
-                        log::error!("error converting path to string: {}", err);
-                        None
-                    }
-                }
-            })
-            .collect::<Vec<_>>()
-    };
-    let platform = unsafe { get_foreground_platform(this) };
-    if let Some(callback) = platform.0.borrow_mut().open_files.as_mut() {
-        callback(paths);
-    }
-}
-
 extern "C" fn open_urls(this: &mut Object, _: Sel, _: id, urls: id) {
     let urls = unsafe {
         (0..urls.count())

crates/gpui/src/platform/test.rs 🔗

@@ -66,8 +66,6 @@ impl super::ForegroundPlatform for ForegroundPlatform {
 
     fn on_event(&self, _: Box<dyn FnMut(crate::Event) -> bool>) {}
 
-    fn on_open_files(&self, _: Box<dyn FnMut(Vec<std::path::PathBuf>)>) {}
-
     fn on_open_urls(&self, _: Box<dyn FnMut(Vec<String>)>) {}
 
     fn run(&self, _on_finish_launching: Box<dyn FnOnce() -> ()>) {