From 2dbb9373af3d5cb0d395d99bad285d195ae9fa5c Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 29 Apr 2010 13:42:37 +0300 Subject: Fix long menu item texts causing crash Symbian uses buffer of CEikMenuPaneItem::SData::ENominalTextLength characters for menu item texts, so truncate any text that is longer than that. Task-number: QTBUG-10207 Reviewed-by: Janne Anttila --- src/gui/widgets/qmenu_symbian.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gui/widgets/qmenu_symbian.cpp b/src/gui/widgets/qmenu_symbian.cpp index 7224768..d4b1250 100644 --- a/src/gui/widgets/qmenu_symbian.cpp +++ b/src/gui/widgets/qmenu_symbian.cpp @@ -149,8 +149,12 @@ static void qt_symbian_insert_action(QSymbianMenuAction* action, QListstyleHint(QStyle::SH_UnderlineShortcut); - QString iconText = action->action->iconText(); - TPtrC menuItemText = qt_QString2TPtrC( underlineShortCut ? action->action->text() : iconText); + QString actionText; + if (underlineShortCut) + actionText = action->action->text().left(CEikMenuPaneItem::SData::ENominalTextLength); + else + actionText = action->action->iconText().left(CEikMenuPaneItem::SData::ENominalTextLength); + TPtrC menuItemText = qt_QString2TPtrC(actionText); if (action->action->menu()) { SymbianMenuItem* menuItem = new SymbianMenuItem(); menuItem->menuItemData.iCascadeId = action->command; -- cgit v0.12