diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2012-10-04 13:19:32 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-10-16 17:31:31 +0200 |
commit | 77308b46784310028b1210f5c85727f90803e409 (patch) | |
tree | 84cce5adc79a7e2870f8bcfd45267bc238c19f77 /src/plugins/platforms | |
parent | 08748f147b44983d9155baa420b84423aec43e1d (diff) |
implement QCocoaWindow::setWindowIcon
Code taken from Qt 4.8.
Task-number: QTBUG-27175
Change-Id: I0f7a1add3ea63761c956e43d591cd1b26f25760e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoawindow.h | 1 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoawindow.mm | 20 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.h b/src/plugins/platforms/cocoa/qcocoawindow.h index 014db378e7..3c6dd96424 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.h +++ b/src/plugins/platforms/cocoa/qcocoawindow.h @@ -102,6 +102,7 @@ public: Qt::WindowState setWindowState(Qt::WindowState state); void setWindowTitle(const QString &title); void setWindowFilePath(const QString &filePath); + void setWindowIcon(const QIcon &icon); void raise(); void lower(); void propagateSizeHints(); diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index f4a4936c28..c658a8d777 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -429,6 +429,26 @@ void QCocoaWindow::setWindowFilePath(const QString &filePath) [m_nsWindow setRepresentedFilename: fi.exists() ? QCFString::toNSString(filePath) : @""]; } +void QCocoaWindow::setWindowIcon(const QIcon &icon) +{ + QCocoaAutoReleasePool pool; + + NSButton *iconButton = [m_nsWindow standardWindowButton:NSWindowDocumentIconButton]; + if (iconButton == nil) { + NSString *title = QCFString::toNSString(window()->windowTitle()); + [m_nsWindow setRepresentedURL:[NSURL fileURLWithPath:title]]; + iconButton = [m_nsWindow standardWindowButton:NSWindowDocumentIconButton]; + } + if (icon.isNull()) { + [iconButton setImage:nil]; + } else { + QPixmap pixmap = icon.pixmap(QSize(22, 22)); + NSImage *image = static_cast<NSImage *>(qt_mac_create_nsimage(pixmap)); + [iconButton setImage:image]; + [image release]; + } +} + void QCocoaWindow::raise() { //qDebug() << "raise" << this; |