From a84d893bae6b282381f9e1c55a34cd223d7351ed Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Tue, 17 Jan 2012 14:40:35 +0100 Subject: Add "nswindow" resource to the Cocoa native interface implementation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This will return the NSWindow* for the given QWindow*. Port the QWidget autotest helper to use the native interface and the "nswindow" resource. Change-Id: I754b7e9288690ac3c99c3ec65c5526d5fe121234 Reviewed-by: João Abecasis Reviewed-by: Morten Johan Sørvig --- src/plugins/platforms/cocoa/qcocoanativeinterface.mm | 2 ++ .../widgets/kernel/qwidget/tst_qwidget_mac_helpers.mm | 17 +++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm index 426ac1e494..2f393cb1b9 100644 --- a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm +++ b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm @@ -61,6 +61,8 @@ void *QCocoaNativeInterface::nativeResourceForWindow(const QByteArray &resourceS return static_cast(window->handle())->currentContext()->nsOpenGLContext(); } else if (resourceString == "nsview") { return static_cast(window->handle())->m_contentView; + } else if (resourceString == "nswindow") { + return static_cast(window->handle())->m_nsWindow; } return 0; } diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget_mac_helpers.mm b/tests/auto/widgets/kernel/qwidget/tst_qwidget_mac_helpers.mm index 8d828dd5a7..0d93f7528b 100644 --- a/tests/auto/widgets/kernel/qwidget/tst_qwidget_mac_helpers.mm +++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget_mac_helpers.mm @@ -40,23 +40,28 @@ ****************************************************************************/ #include "tst_qwidget_mac_helpers.h" -#include -#include +#include +#include +#include +#include QString nativeWindowTitle(QWidget *window, Qt::WindowState state) { - OSWindowRef windowRef = qt_mac_window_for(window); + QWindow *qwindow = window->windowHandle(); + NSWindow *nswindow = (NSWindow *) qApp->platformNativeInterface()->nativeResourceForWindow("nswindow", qwindow); QCFString macTitle; if (state == Qt::WindowMinimized) { - macTitle = reinterpret_cast([[windowRef miniwindowTitle] retain]); + macTitle = reinterpret_cast([[nswindow miniwindowTitle] retain]); } else { - macTitle = reinterpret_cast([[windowRef title] retain]); + macTitle = reinterpret_cast([[nswindow title] retain]); } return macTitle; } bool nativeWindowModified(QWidget *widget) { - return [qt_mac_window_for(widget) isDocumentEdited]; + QWindow *qwindow = widget->windowHandle(); + NSWindow *nswindow = (NSWindow *) qApp->platformNativeInterface()->nativeResourceForWindow("nswindow", qwindow); + return [nswindow isDocumentEdited]; } -- cgit v1.2.3