diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2020-03-09 18:43:52 +0100 |
---|---|---|
committer | Tor Arne Vestbø <torarnv@gmail.com> | 2020-03-12 11:49:08 +0100 |
commit | bee3d0fc1310da6685dce9cf9b1334fb8295aa9a (patch) | |
tree | ec5965fda8d2285d42649a39162ca0b3704f1858 /src/plugins | |
parent | 52e9c8b4be6718bda1a46859d6b1c13664c57c2a (diff) |
macOS: Streamline QIcon to NSImage conversion
The conversion uses NSBitmapImageRep and correctly sets the display
pixel ratio and size of the resulting image, reducing the need for
clients to deal with this.
It also propagates the isMask property of the icon to the NSImage.
The function returns an auto-released object, as is customary for
class-functions like these.
Change-Id: If97f3d383959cd0f58a0d1249f5c26e52c1da9cd
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoamenuitem.mm | 8 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm | 7 |
2 files changed, 2 insertions, 13 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoamenuitem.mm b/src/plugins/platforms/cocoa/qcocoamenuitem.mm index c35cf6d799..5aa41eeb22 100644 --- a/src/plugins/platforms/cocoa/qcocoamenuitem.mm +++ b/src/plugins/platforms/cocoa/qcocoamenuitem.mm @@ -341,13 +341,7 @@ NSMenuItem *QCocoaMenuItem::sync() m_native.keyEquivalentModifierMask = NSEventModifierFlagCommand; } - NSImage *img = nil; - if (!m_icon.isNull()) { - img = qt_mac_create_nsimage(m_icon, m_iconSize); - img.size = CGSizeMake(m_iconSize, m_iconSize); - } - m_native.image = img; - [img release]; + m_native.image = [NSImage imageFromQIcon:m_icon withSize:m_iconSize]; m_native.state = m_checked ? NSOnState : NSOffState; return m_native; diff --git a/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm b/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm index d8caf92a5c..1d4b84ee5e 100644 --- a/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm +++ b/src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm @@ -272,12 +272,7 @@ void QCocoaSystemTrayIcon::showMessage(const QString &title, const QString &mess NSUserNotification *notification = [[NSUserNotification alloc] init]; notification.title = [NSString stringWithUTF8String:title.toUtf8().data()]; notification.informativeText = [NSString stringWithUTF8String:message.toUtf8().data()]; - - if (!icon.isNull()) { - auto *nsimage = qt_mac_create_nsimage(icon); - [nsimage setTemplate:icon.isMask()]; - notification.contentImage = [nsimage autorelease]; - } + notification.contentImage = [NSImage imageFromQIcon:icon]; NSUserNotificationCenter *center = NSUserNotificationCenter.defaultUserNotificationCenter; center.delegate = m_sys->item; |