diff options
author | Morten Johan Sørvig <morten.sorvig@digia.com> | 2014-01-20 12:08:49 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-10 12:49:06 +0100 |
commit | 3d08681169b5194cdc9e61fbf6fac9c4346147d8 (patch) | |
tree | ed8d0c83e7171b94f8ddb75df41df9288633b0bd /src/plugins/platforms/cocoa/qcocoaintegration.mm | |
parent | df86721bb4028ae09c5ce7d71a89808b8f2ccdcd (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.mm | 25 |
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 |