summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoamenubar.mm
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@digia.com>2012-10-03 11:45:49 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-10-03 12:12:15 +0200
commitc79f0f0fbaf9a1a177d771dc39eb209270c280ba (patch)
treeadc181ea274b4184b66774a6dcec01fc3d029cd1 /src/plugins/platforms/cocoa/qcocoamenubar.mm
parent32b72283d0badb2e74b96896081fe11ad5b5a7b4 (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.mm15
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()];