summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoaintegration.mm
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@digia.com>2014-01-20 12:08:49 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-10 12:49:06 +0100
commit3d08681169b5194cdc9e61fbf6fac9c4346147d8 (patch)
treeed8d0c83e7171b94f8ddb75df41df9288633b0bd /src/plugins/platforms/cocoa/qcocoaintegration.mm
parentdf86721bb4028ae09c5ce7d71a89808b8f2ccdcd (diff)
Cocoa: Add setNSToolbar(QWindow *, NSToolBar *)
Calling this function associates the given native toolbar with the QWindow. QWindow will then set it on the native NSWindow at the appropriate time during window creation. Change-Id: I2a50f79b2a0453cc739f8d68e965e37b95998083 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoaintegration.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaintegration.mm25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.mm b/src/plugins/platforms/cocoa/qcocoaintegration.mm
index e8cf5ca69b..0c1ddf9ad8 100644
--- a/src/plugins/platforms/cocoa/qcocoaintegration.mm
+++ b/src/plugins/platforms/cocoa/qcocoaintegration.mm
@@ -301,6 +301,8 @@ QCocoaIntegration::~QCocoaIntegration()
while (!mScreens.isEmpty()) {
delete mScreens.takeLast();
}
+
+ clearToolbars();
}
QCocoaIntegration *QCocoaIntegration::instance()
@@ -466,4 +468,27 @@ QList<int> QCocoaIntegration::possibleKeys(const QKeyEvent *event) const
return mKeyboardMapper->possibleKeys(event);
}
+void QCocoaIntegration::setToolbar(QWindow *window, NSToolbar *toolbar)
+{
+ if (NSToolbar *prevToolbar = mToolbars.value(window))
+ [prevToolbar release];
+
+ [toolbar retain];
+ mToolbars.insert(window, toolbar);
+}
+
+NSToolbar *QCocoaIntegration::toolbar(QWindow *window) const
+{
+ return mToolbars.value(window);
+}
+
+void QCocoaIntegration::clearToolbars()
+{
+ QHash<QWindow *, NSToolbar *>::const_iterator it = mToolbars.constBegin();
+ while (it != mToolbars.constEnd()) {
+ [it.value() release];
+ }
+ mToolbars.clear();
+}
+
QT_END_NAMESPACE