diff mbox series

ui/cocoa: Fix openFile: deprecation on Big Sur

Message ID 20210102125154.41182-1-r.bolshakov@yadro.com (mailing list archive)
State New, archived
Headers show
Series ui/cocoa: Fix openFile: deprecation on Big Sur | expand

Commit Message

Roman Bolshakov Jan. 2, 2021, 12:51 p.m. UTC
ui/cocoa.m:1188:44: warning: 'openFile:' is deprecated: first deprecated in macOS 11.0 - Use -[NSWorkspace openURL:] instead.
      [-Wdeprecated-declarations]
        if ([[NSWorkspace sharedWorkspace] openFile: full_file_path] == YES) {
                                           ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWorkspace.h:350:1: note:
      'openFile:' has been explicitly marked deprecated here
- (BOOL)openFile:(NSString *)fullPath API_DEPRECATED("Use -[NSWorkspace openURL:] instead.", macos(10.0, 11.0));
^

Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
---
 ui/cocoa.m | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Peter Maydell Jan. 2, 2021, 1:16 p.m. UTC | #1
On Sat, 2 Jan 2021 at 12:52, Roman Bolshakov <r.bolshakov@yadro.com> wrote:
>
> ui/cocoa.m:1188:44: warning: 'openFile:' is deprecated: first deprecated in macOS 11.0 - Use -[NSWorkspace openURL:] instead.
>       [-Wdeprecated-declarations]
>         if ([[NSWorkspace sharedWorkspace] openFile: full_file_path] == YES) {
>                                            ^
> /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWorkspace.h:350:1: note:
>       'openFile:' has been explicitly marked deprecated here
> - (BOOL)openFile:(NSString *)fullPath API_DEPRECATED("Use -[NSWorkspace openURL:] instead.", macos(10.0, 11.0));
> ^
>
> Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
> ---
>  ui/cocoa.m | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/ui/cocoa.m b/ui/cocoa.m
> index f32adc3074..5909758a09 100644
> --- a/ui/cocoa.m
> +++ b/ui/cocoa.m
> @@ -1178,6 +1178,7 @@ QemuCocoaView *cocoaView;
>      /* Where to look for local files */
>      NSString *path_array[] = {@"../share/doc/qemu/", @"../doc/qemu/", @"../docs/"};
>      NSString *full_file_path;
> +    NSURL *full_file_url;
>
>      /* iterate thru the possible paths until the file is found */
>      int index;
> @@ -1186,7 +1187,8 @@ QemuCocoaView *cocoaView;
>          full_file_path = [full_file_path stringByDeletingLastPathComponent];
>          full_file_path = [NSString stringWithFormat: @"%@/%@%@", full_file_path,
>                            path_array[index], filename];
> -        if ([[NSWorkspace sharedWorkspace] openFile: full_file_path] == YES) {
> +        full_file_url = [NSURL URLWithString: full_file_path];
> +        if ([[NSWorkspace sharedWorkspace] openURL: full_file_url] == YES) {
>              return;
>          }

The NSURL URLWithString method documentation:
https://developer.apple.com/documentation/foundation/nsurl/1572047-urlwithstring
says:
# Important
# To create NSURL objects for file system paths, use
fileURLWithPath:isDirectory:
# instead.

Should we be doing that instead ?

thanks
-- PMM
Roman Bolshakov Jan. 2, 2021, 2:20 p.m. UTC | #2
On Sat, Jan 02, 2021 at 01:16:48PM +0000, Peter Maydell wrote:
> On Sat, 2 Jan 2021 at 12:52, Roman Bolshakov <r.bolshakov@yadro.com> wrote:
> >
> > ui/cocoa.m:1188:44: warning: 'openFile:' is deprecated: first deprecated in macOS 11.0 - Use -[NSWorkspace openURL:] instead.
> >       [-Wdeprecated-declarations]
> >         if ([[NSWorkspace sharedWorkspace] openFile: full_file_path] == YES) {
> >                                            ^
> > /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSWorkspace.h:350:1: note:
> >       'openFile:' has been explicitly marked deprecated here
> > - (BOOL)openFile:(NSString *)fullPath API_DEPRECATED("Use -[NSWorkspace openURL:] instead.", macos(10.0, 11.0));
> > ^
> >
> > Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
> > ---
> >  ui/cocoa.m | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/ui/cocoa.m b/ui/cocoa.m
> > index f32adc3074..5909758a09 100644
> > --- a/ui/cocoa.m
> > +++ b/ui/cocoa.m
> > @@ -1178,6 +1178,7 @@ QemuCocoaView *cocoaView;
> >      /* Where to look for local files */
> >      NSString *path_array[] = {@"../share/doc/qemu/", @"../doc/qemu/", @"../docs/"};
> >      NSString *full_file_path;
> > +    NSURL *full_file_url;
> >
> >      /* iterate thru the possible paths until the file is found */
> >      int index;
> > @@ -1186,7 +1187,8 @@ QemuCocoaView *cocoaView;
> >          full_file_path = [full_file_path stringByDeletingLastPathComponent];
> >          full_file_path = [NSString stringWithFormat: @"%@/%@%@", full_file_path,
> >                            path_array[index], filename];
> > -        if ([[NSWorkspace sharedWorkspace] openFile: full_file_path] == YES) {
> > +        full_file_url = [NSURL URLWithString: full_file_path];
> > +        if ([[NSWorkspace sharedWorkspace] openURL: full_file_url] == YES) {
> >              return;
> >          }
> 
> The NSURL URLWithString method documentation:
> https://developer.apple.com/documentation/foundation/nsurl/1572047-urlwithstring
> says:
> # Important
> # To create NSURL objects for file system paths, use
> fileURLWithPath:isDirectory:
> # instead.
> 
> Should we be doing that instead ?
> 

Sure, Peter. I'll update it.

Thanks,
Roman

> thanks
> -- PMM
diff mbox series

Patch

diff --git a/ui/cocoa.m b/ui/cocoa.m
index f32adc3074..5909758a09 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -1178,6 +1178,7 @@  QemuCocoaView *cocoaView;
     /* Where to look for local files */
     NSString *path_array[] = {@"../share/doc/qemu/", @"../doc/qemu/", @"../docs/"};
     NSString *full_file_path;
+    NSURL *full_file_url;
 
     /* iterate thru the possible paths until the file is found */
     int index;
@@ -1186,7 +1187,8 @@  QemuCocoaView *cocoaView;
         full_file_path = [full_file_path stringByDeletingLastPathComponent];
         full_file_path = [NSString stringWithFormat: @"%@/%@%@", full_file_path,
                           path_array[index], filename];
-        if ([[NSWorkspace sharedWorkspace] openFile: full_file_path] == YES) {
+        full_file_url = [NSURL URLWithString: full_file_path];
+        if ([[NSWorkspace sharedWorkspace] openURL: full_file_url] == YES) {
             return;
         }
     }