diff options
author | Andy Shaw <andy.shaw@digia.com> | 2012-10-03 11:45:49 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-10-03 12:12:15 +0200 |
commit | c79f0f0fbaf9a1a177d771dc39eb209270c280ba (patch) | |
tree | adc181ea274b4184b66774a6dcec01fc3d029cd1 /src/plugins/platforms/cocoa/qcocoamenubar.mm | |
parent | 32b72283d0badb2e74b96896081fe11ad5b5a7b4 (diff) |
Change Q_ASSERT to warnings and returns for the menu classes
On Mac usually release frameworks are used during development so asserts
don't tend to get fired. Since the menu code did not crash in Qt 4.8,
it was decided that we should ensure that the same code does not crash
now so instead we warn instead of asserting for those cases.
Change-Id: I923e5591202cb2ad801074ce3ad2a11d7190cee8
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoamenubar.mm')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoamenubar.mm | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoamenubar.mm b/src/plugins/platforms/cocoa/qcocoamenubar.mm index c1072df87d..8434cb75e9 100644 --- a/src/plugins/platforms/cocoa/qcocoamenubar.mm +++ b/src/plugins/platforms/cocoa/qcocoamenubar.mm @@ -90,9 +90,15 @@ void QCocoaMenuBar::insertMenu(QPlatformMenu *platformMenu, QPlatformMenu *befor qDebug() << "QCocoaMenuBar" << this << "insertMenu" << menu << "before" << before; #endif - Q_ASSERT(!m_menus.contains(menu)); + if (m_menus.contains(menu)) { + qWarning() << Q_FUNC_INFO << "This menu already belongs to the menubar, remove it first"; + return; + } if (beforeMenu) { - Q_ASSERT(m_menus.contains(beforeMenu)); + if (!m_menus.contains(beforeMenu)) { + qWarning() << Q_FUNC_INFO << "The before menu does not belong to the menubar"; + return; + } m_menus.insert(m_menus.indexOf(beforeMenu), menu); NSUInteger nativeIndex = [m_nativeMenu indexOfItem:beforeMenu->nsMenuItem()]; [m_nativeMenu insertItem: menu->nsMenuItem() atIndex: nativeIndex]; @@ -107,7 +113,10 @@ void QCocoaMenuBar::insertMenu(QPlatformMenu *platformMenu, QPlatformMenu *befor void QCocoaMenuBar::removeMenu(QPlatformMenu *platformMenu) { QCocoaMenu *menu = static_cast<QCocoaMenu *>(platformMenu); - Q_ASSERT(m_menus.contains(menu)); + if (!m_menus.contains(menu)) { + qWarning() << Q_FUNC_INFO << "Trying to remove a menu that does not belong to the menubar"; + return; + } m_menus.removeOne(menu); NSUInteger realIndex = [m_nativeMenu indexOfItem:menu->nsMenuItem()]; |