Message ID | 20220211163434.58423-13-f4bug@amsat.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | host: Support macOS 12 | expand |
On Freitag, 11. Februar 2022 17:34:33 CET Philippe Mathieu-Daudé via wrote: > setAllowedFileTypes is deprecated in macOS 12. > > Per Akihiko Odaki [*]: > > An image file, which is being chosen by the panel, can be a > raw file and have a variety of file extensions and many are not > covered by the provided list (e.g. "udf"). Other platforms like > GTK can provide an option to open a file with an extension not > listed, but Cocoa can't. It forces the user to rename the file > to give an extension in the list. Moreover, Cocoa does not tell > which extensions are in the list so the user needs to read the > source code, which is pretty bad. > > Since this code is harming the usability rather than improving it, > simply remove the [NSSavePanel allowedFileTypes:] call, fixing: > > [2789/6622] Compiling Objective-C object libcommon.fa.p/ui_cocoa.m.o > ui/cocoa.m:1411:16: error: 'setAllowedFileTypes:' is deprecated: first > deprecated in macOS 12.0 - Use -allowedContentTypes instead > [-Werror,-Wdeprecated-declarations] [openPanel setAllowedFileTypes: > supportedImageFileTypes]; > ^ > > /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Framewor > ks/AppKit.framework/Headers/NSSavePanel.h:215:49: note: property > 'allowedFileTypes' is declared deprecated here @property (nullable, copy) > NSArray<NSString *> *allowedFileTypes API_DEPRECATED("Use > -allowedContentTypes instead", macos(10.3,12.0)); ^ > > /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Framewor > ks/AppKit.framework/Headers/NSSavePanel.h:215:49: note: > 'setAllowedFileTypes:' has been explicitly marked deprecated here FAILED: > libcommon.fa.p/ui_cocoa.m.o > > [*] > https://lore.kernel.org/qemu-devel/4dde2e66-63cb-4390-9538-c032310db3e3@gma > il.com/ > > Suggested-by: Akihiko Odaki <akihiko.odaki@gmail.com> > Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com> > Tested-by: Roman Bolshakov <r.bolshakov@yadro.com> > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- Reviewed-by: Christian Schoenebeck <qemu_oss@crudebyte.com> > ui/cocoa.m | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/ui/cocoa.m b/ui/cocoa.m > index ac18e14ce0..7a1ddd4075 100644 > --- a/ui/cocoa.m > +++ b/ui/cocoa.m > @@ -100,7 +100,6 @@ static int gArgc; > static char **gArgv; > static bool stretch_video; > static NSTextField *pauseLabel; > -static NSArray * supportedImageFileTypes; > > static QemuSemaphore display_init_sem; > static QemuSemaphore app_started_sem; > @@ -1168,10 +1167,6 @@ QemuCocoaView *cocoaView; > [pauseLabel setTextColor: [NSColor blackColor]]; > [pauseLabel sizeToFit]; > > - // set the supported image file types that can be opened > - supportedImageFileTypes = [NSArray arrayWithObjects: @"img", > @"iso", @"dmg", - @"qcow", @"qcow2", > @"cloop", @"vmdk", @"cdr", - @"toast", > nil]; > [self make_about_window]; > } > return self; > @@ -1414,7 +1409,6 @@ QemuCocoaView *cocoaView; > openPanel = [NSOpenPanel openPanel]; > [openPanel setCanChooseFiles: YES]; > [openPanel setAllowsMultipleSelection: NO]; > - [openPanel setAllowedFileTypes: supportedImageFileTypes]; > if([openPanel runModal] == NSModalResponseOK) { > NSString * file = [[[openPanel URLs] objectAtIndex: 0] path]; > if(file == nil) {
Reviewed-by: Cameron Esfahani <dirty@apple.com <mailto:dirty@apple.com>> > On Feb 11, 2022, at 8:34 AM, Philippe Mathieu-Daudé via <qemu-devel@nongnu.org> wrote: > > setAllowedFileTypes is deprecated in macOS 12. > > Per Akihiko Odaki [*]: > > An image file, which is being chosen by the panel, can be a > raw file and have a variety of file extensions and many are not > covered by the provided list (e.g. "udf"). Other platforms like > GTK can provide an option to open a file with an extension not > listed, but Cocoa can't. It forces the user to rename the file > to give an extension in the list. Moreover, Cocoa does not tell > which extensions are in the list so the user needs to read the > source code, which is pretty bad. > > Since this code is harming the usability rather than improving it, > simply remove the [NSSavePanel allowedFileTypes:] call, fixing: > > [2789/6622] Compiling Objective-C object libcommon.fa.p/ui_cocoa.m.o > ui/cocoa.m:1411:16: error: 'setAllowedFileTypes:' is deprecated: first deprecated in macOS 12.0 - Use -allowedContentTypes instead [-Werror,-Wdeprecated-declarations] > [openPanel setAllowedFileTypes: supportedImageFileTypes]; > ^ > /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSavePanel.h:215:49: note: property 'allowedFileTypes' is declared deprecated here > @property (nullable, copy) NSArray<NSString *> *allowedFileTypes API_DEPRECATED("Use -allowedContentTypes instead", macos(10.3,12.0)); > ^ > /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSSavePanel.h:215:49: note: 'setAllowedFileTypes:' has been explicitly marked deprecated here > FAILED: libcommon.fa.p/ui_cocoa.m.o > > [*] https://lore.kernel.org/qemu-devel/4dde2e66-63cb-4390-9538-c032310db3e3@gmail.com/ > > Suggested-by: Akihiko Odaki <akihiko.odaki@gmail.com> > Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com> > Tested-by: Roman Bolshakov <r.bolshakov@yadro.com> > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > ui/cocoa.m | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/ui/cocoa.m b/ui/cocoa.m > index ac18e14ce0..7a1ddd4075 100644 > --- a/ui/cocoa.m > +++ b/ui/cocoa.m > @@ -100,7 +100,6 @@ static int gArgc; > static char **gArgv; > static bool stretch_video; > static NSTextField *pauseLabel; > -static NSArray * supportedImageFileTypes; > > static QemuSemaphore display_init_sem; > static QemuSemaphore app_started_sem; > @@ -1168,10 +1167,6 @@ QemuCocoaView *cocoaView; > [pauseLabel setTextColor: [NSColor blackColor]]; > [pauseLabel sizeToFit]; > > - // set the supported image file types that can be opened > - supportedImageFileTypes = [NSArray arrayWithObjects: @"img", @"iso", @"dmg", > - @"qcow", @"qcow2", @"cloop", @"vmdk", @"cdr", > - @"toast", nil]; > [self make_about_window]; > } > return self; > @@ -1414,7 +1409,6 @@ QemuCocoaView *cocoaView; > openPanel = [NSOpenPanel openPanel]; > [openPanel setCanChooseFiles: YES]; > [openPanel setAllowsMultipleSelection: NO]; > - [openPanel setAllowedFileTypes: supportedImageFileTypes]; > if([openPanel runModal] == NSModalResponseOK) { > NSString * file = [[[openPanel URLs] objectAtIndex: 0] path]; > if(file == nil) { > -- > 2.34.1 > >
diff --git a/ui/cocoa.m b/ui/cocoa.m index ac18e14ce0..7a1ddd4075 100644 --- a/ui/cocoa.m +++ b/ui/cocoa.m @@ -100,7 +100,6 @@ static int gArgc; static char **gArgv; static bool stretch_video; static NSTextField *pauseLabel; -static NSArray * supportedImageFileTypes; static QemuSemaphore display_init_sem; static QemuSemaphore app_started_sem; @@ -1168,10 +1167,6 @@ QemuCocoaView *cocoaView; [pauseLabel setTextColor: [NSColor blackColor]]; [pauseLabel sizeToFit]; - // set the supported image file types that can be opened - supportedImageFileTypes = [NSArray arrayWithObjects: @"img", @"iso", @"dmg", - @"qcow", @"qcow2", @"cloop", @"vmdk", @"cdr", - @"toast", nil]; [self make_about_window]; } return self; @@ -1414,7 +1409,6 @@ QemuCocoaView *cocoaView; openPanel = [NSOpenPanel openPanel]; [openPanel setCanChooseFiles: YES]; [openPanel setAllowsMultipleSelection: NO]; - [openPanel setAllowedFileTypes: supportedImageFileTypes]; if([openPanel runModal] == NSModalResponseOK) { NSString * file = [[[openPanel URLs] objectAtIndex: 0] path]; if(file == nil) {