diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2024-02-12 21:11:34 +0100 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2024-02-19 18:03:11 +0100 |
commit | 2a2a30155719d9175f92467a42e0deac5aad3767 (patch) | |
tree | f47bdd66f7171c4aafbf6084f50b85612fda7da9 | |
parent | d311af49636a7f976b804bc92b1431d8d96ebc61 (diff) |
Apple: Fix a few deprecation warnings after bumping deployment targets
- kIOMasterPortDefault -> kIOMainPortDefault
- Use UTType instead of Carbon Core functions/constants
- NSWorkspace iconForFileType -> iconForContentType
- Removed obsoleted kUTTypeInkText pasteboard type
There are still a few more, but these will be fixed in follow ups.
Change-Id: Ibbca226d578b4ba64bd9c8c5d0addc1870114a20
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
-rw-r--r-- | src/corelib/CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/corelib/global/qsysinfo.cpp | 3 | ||||
-rw-r--r-- | src/corelib/io/qfilesystemengine_unix.cpp | 21 | ||||
-rw-r--r-- | src/corelib/kernel/qcore_mac.mm | 2 | ||||
-rw-r--r-- | src/gui/platform/darwin/qutimimeconverter.mm | 3 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoadrag.mm | 4 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoaintegration.mm | 5 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoascreen.mm | 2 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qnsview.mm | 3 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qnsview_dragging.mm | 4 | ||||
-rw-r--r-- | src/tools/bootstrap/CMakeLists.txt | 6 |
11 files changed, 34 insertions, 25 deletions
diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt index e03863e069..2a6c807a89 100644 --- a/src/corelib/CMakeLists.txt +++ b/src/corelib/CMakeLists.txt @@ -674,6 +674,12 @@ qt_internal_extend_target(Core CONDITION UNIX kernel/qtimerinfo_unix.cpp kernel/qtimerinfo_unix_p.h thread/qthread_unix.cpp ) +if(APPLE) + set_source_files_properties(io/qfilesystemengine_unix.cpp PROPERTIES LANGUAGE OBJCXX) + qt_internal_extend_target(Core CONDITION + PUBLIC_LIBRARIES ${FWUniformTypeIdentifiers} + ) +endif() qt_internal_extend_target(Core CONDITION UNIX AND NOT WASM SOURCES diff --git a/src/corelib/global/qsysinfo.cpp b/src/corelib/global/qsysinfo.cpp index 40d75b11a1..803d447d2c 100644 --- a/src/corelib/global/qsysinfo.cpp +++ b/src/corelib/global/qsysinfo.cpp @@ -992,8 +992,7 @@ QByteArray QSysInfo::machineUniqueId() { #if defined(Q_OS_DARWIN) && __has_include(<IOKit/IOKitLib.h>) char uuid[UuidStringLen + 1]; - static const mach_port_t defaultPort = 0; // Effectively kIOMasterPortDefault/kIOMainPortDefault - io_service_t service = IOServiceGetMatchingService(defaultPort, IOServiceMatching("IOPlatformExpertDevice")); + io_service_t service = IOServiceGetMatchingService(kIOMainPortDefault, IOServiceMatching("IOPlatformExpertDevice")); QCFString stringRef = (CFStringRef)IORegistryEntryCreateCFProperty(service, CFSTR(kIOPlatformUUIDKey), kCFAllocatorDefault, 0); CFStringGetCString(stringRef, uuid, sizeof(uuid), kCFStringEncodingMacRoman); return QByteArray(uuid); diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 7d7f74c88a..5dbe7f3e9b 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -39,6 +39,11 @@ #if defined(Q_OS_DARWIN) # include <QtCore/private/qcore_mac_p.h> # include <CoreFoundation/CFBundle.h> +# include <UniformTypeIdentifiers/UTType.h> +# include <UniformTypeIdentifiers/UTCoreTypes.h> +# include <Foundation/Foundation.h> +# include <sys/clonefile.h> +# include <copyfile.h> #endif #ifdef Q_OS_MACOS @@ -49,15 +54,6 @@ #include <MobileCoreServices/MobileCoreServices.h> #endif -#if defined(Q_OS_DARWIN) -# include <sys/clonefile.h> -# include <copyfile.h> -// We cannot include <Foundation/Foundation.h> (it's an Objective-C header), but -// we need these declarations: -Q_FORWARD_DECLARE_OBJC_CLASS(NSString); -extern "C" NSString *NSTemporaryDirectory(); -#endif - #if defined(Q_OS_LINUX) # include <sys/ioctl.h> # include <sys/sendfile.h> @@ -127,10 +123,9 @@ static bool isPackage(const QFileSystemMetaData &data, const QFileSystemEntry &e QString suffix = info.suffix(); if (suffix.length() > 0) { - // First step: is the extension known ? - QCFType<CFStringRef> extensionRef = suffix.toCFString(); - QCFType<CFStringRef> uniformTypeIdentifier = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, extensionRef, NULL); - if (UTTypeConformsTo(uniformTypeIdentifier, kUTTypeBundle)) + // First step: is it a bundle? + const auto *utType = [UTType typeWithFilenameExtension:suffix.toNSString()]; + if ([utType conformsToType:UTTypeBundle]) return true; // Second step: check if an application knows the package type diff --git a/src/corelib/kernel/qcore_mac.mm b/src/corelib/kernel/qcore_mac.mm index 8ec0464399..d3c57e44f5 100644 --- a/src/corelib/kernel/qcore_mac.mm +++ b/src/corelib/kernel/qcore_mac.mm @@ -346,7 +346,7 @@ std::optional<uint32_t> qt_mac_sipConfiguration() return config; #endif - QIOType<io_registry_entry_t> nvram = IORegistryEntryFromPath(kIOMasterPortDefault, "IODeviceTree:/options"); + QIOType<io_registry_entry_t> nvram = IORegistryEntryFromPath(kIOMainPortDefault, "IODeviceTree:/options"); if (!nvram) { qWarning("Failed to locate NVRAM entry in IO registry"); return {}; diff --git a/src/gui/platform/darwin/qutimimeconverter.mm b/src/gui/platform/darwin/qutimimeconverter.mm index 6a4f80a8d7..ee643fd0c6 100644 --- a/src/gui/platform/darwin/qutimimeconverter.mm +++ b/src/gui/platform/darwin/qutimimeconverter.mm @@ -3,6 +3,7 @@ #include <ImageIO/ImageIO.h> #include <CoreFoundation/CoreFoundation.h> +#include <UniformTypeIdentifiers/UTCoreTypes.h> #include <QtCore/qsystemdetection.h> #include <QtCore/qurl.h> @@ -779,7 +780,7 @@ QList<QByteArray> QMacMimeTiff::convertFromMime(const QString &mime, QCFType<CFMutableDataRef> data = CFDataCreateMutable(0, 0); QCFType<CGImageDestinationRef> imageDestination = CGImageDestinationCreateWithData(data, - kUTTypeTIFF, 1, 0); + (CFStringRef)UTTypeTIFF.identifier, 1, 0); if (!imageDestination) return QList<QByteArray>(); diff --git a/src/plugins/platforms/cocoa/qcocoadrag.mm b/src/plugins/platforms/cocoa/qcocoadrag.mm index 5089b4a44b..a8404889e9 100644 --- a/src/plugins/platforms/cocoa/qcocoadrag.mm +++ b/src/plugins/platforms/cocoa/qcocoadrag.mm @@ -2,6 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #include <AppKit/AppKit.h> +#include <UniformTypeIdentifiers/UTCoreTypes.h> #include "qcocoadrag.h" #include "qmacclipboard.h" @@ -161,8 +162,7 @@ bool QCocoaDrag::maybeDragMultipleItems() for (NSPasteboardItem *item in dragBoard.pasteboardItems) { bool isUrl = false; for (NSPasteboardType type in item.types) { - using NSStringRef = NSString *; - if ([type isEqualToString:NSStringRef(kUTTypeFileURL)]) { + if ([type isEqualToString:UTTypeFileURL.identifier]) { isUrl = true; break; } diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.mm b/src/plugins/platforms/cocoa/qcocoaintegration.mm index f21e683c00..ed2ab672b6 100644 --- a/src/plugins/platforms/cocoa/qcocoaintegration.mm +++ b/src/plugins/platforms/cocoa/qcocoaintegration.mm @@ -40,6 +40,7 @@ #include <QtGui/private/qfontengine_coretext_p.h> #include <IOKit/graphics/IOGraphicsLib.h> +#include <UniformTypeIdentifiers/UTCoreTypes.h> #include <inttypes.h> @@ -437,8 +438,8 @@ void QCocoaIntegration::focusWindowChanged(QWindow *focusWindow) return; static bool hasDefaultApplicationIcon = [](){ - NSImage *genericApplicationIcon = [[NSWorkspace sharedWorkspace] - iconForFileType:NSFileTypeForHFSTypeCode(kGenericApplicationIcon)]; + NSImage *genericApplicationIcon = [NSWorkspace.sharedWorkspace + iconForContentType:UTTypeApplicationBundle]; NSImage *applicationIcon = [NSImage imageNamed:NSImageNameApplicationIcon]; NSRect rect = NSMakeRect(0, 0, 32, 32); diff --git a/src/plugins/platforms/cocoa/qcocoascreen.mm b/src/plugins/platforms/cocoa/qcocoascreen.mm index c2b6f895ca..be562e5455 100644 --- a/src/plugins/platforms/cocoa/qcocoascreen.mm +++ b/src/plugins/platforms/cocoa/qcocoascreen.mm @@ -200,7 +200,7 @@ QCocoaScreen::~QCocoaScreen() static QString displayName(CGDirectDisplayID displayID) { QIOType<io_iterator_t> iterator; - if (IOServiceGetMatchingServices(kIOMasterPortDefault, + if (IOServiceGetMatchingServices(kIOMainPortDefault, IOServiceMatching("IODisplayConnect"), &iterator)) return QString(); diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm index 1286e8e382..48ffa5c1cc 100644 --- a/src/plugins/platforms/cocoa/qnsview.mm +++ b/src/plugins/platforms/cocoa/qnsview.mm @@ -5,6 +5,7 @@ #include <AppKit/AppKit.h> #include <MetalKit/MetalKit.h> +#include <UniformTypeIdentifiers/UTCoreTypes.h> #include "qnsview.h" #include "qcocoawindow.h" @@ -411,7 +412,7 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSViewMenuHelper); - (QCocoaWindow*)platformWindow { - return m_platformWindow.data(); + return m_platformWindow.data();; } @end diff --git a/src/plugins/platforms/cocoa/qnsview_dragging.mm b/src/plugins/platforms/cocoa/qnsview_dragging.mm index f5bb25c300..4f7d35a0d6 100644 --- a/src/plugins/platforms/cocoa/qnsview_dragging.mm +++ b/src/plugins/platforms/cocoa/qnsview_dragging.mm @@ -16,8 +16,8 @@ NSPasteboardTypeRTF, NSPasteboardTypeTabularText, NSPasteboardTypeFont, NSPasteboardTypeRuler, NSFileContentsPboardType, NSPasteboardTypeRTFD , NSPasteboardTypeHTML, - NSPasteboardTypeURL, NSPasteboardTypePDF, (NSString *)kUTTypeVCard, - (NSString *)kPasteboardTypeFileURLPromise, (NSString *)kUTTypeInkText, + NSPasteboardTypeURL, NSPasteboardTypePDF, UTTypeVCard.identifier, + (NSString *)kPasteboardTypeFileURLPromise, NSPasteboardTypeMultipleTextSelection, mimeTypeGeneric]]; // Add custom types supported by the application diff --git a/src/tools/bootstrap/CMakeLists.txt b/src/tools/bootstrap/CMakeLists.txt index 76fe346b46..ecfe59b7a0 100644 --- a/src/tools/bootstrap/CMakeLists.txt +++ b/src/tools/bootstrap/CMakeLists.txt @@ -120,6 +120,12 @@ qt_internal_extend_target(Bootstrap CONDITION UNIX ../../corelib/io/qfsfileengine_unix.cpp ../../corelib/kernel/qcore_unix.cpp ) +if(APPLE) + set_source_files_properties(../../corelib/io/qfilesystemengine_unix.cpp PROPERTIES LANGUAGE OBJCXX) + qt_internal_extend_target(Bootstrap CONDITION + PUBLIC_LIBRARIES ${FWUniformTypeIdentifiers} + ) +endif() qt_internal_extend_target(Bootstrap CONDITION WIN32 SOURCES |