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>
This commit is contained in:
Joerg Bornemann 2012-10-04 13:19:32 +02:00 committed by The Qt Project
parent 08748f147b
commit 77308b4678
2 changed files with 21 additions and 0 deletions

View File

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

View File

@ -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;