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 |
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
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 --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; } }
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(-)