KMenu weirdness with accelerator char
Michael Jansen
kde at michael-jansen.biz
Sat Aug 29 15:58:13 BST 2009
Accelerator Manager is the problem. Have a look at commit 1012027 for one
solution (KGlobal::locale()->removeAcceleratorMarker()).
There is also the possibility to exclude your widget from the accelerator
manager but i don't remember how.
Mike
On Saturday 29 August 2009 15:49:00 you wrote:
> Hi,
>
> I've got a problem with KMenu (in kmail) in trunk:
> It inserts a list of strings for some actions (in this case each string is
> an email address). Whenever the result of menu.exec() is asked for its
> text(), the text contains an "&" accelerator character.
>
> Using the same code but just QMenu instead, does not show this behavior.
> I looked through KMenu's code but couldn't find the problem (as
> setKeyboardShortcutsEnabled is OFF by default)
>
> Code:
>
> KMenu menu( this );
> menu.setObjectName( "Addresschooser" );
> for ( QStringList::const_iterator it = emails.begin(), end = emails.end()
> ; it != end; ++it ) {
> kDebug() << *it;
> menu.addAction( *it );
> }
> const QAction *result = menu.exec( QCursor::pos() );
> if ( !result )
> return;
> kDebug() << "result:" << result->text();
>
>
> The debug output:
> kmail(7045) KMLineEdit::insertEmails: "martin.koller at etm.at"
> kmail(7045) KMLineEdit::insertEmails: "koller at etm.at"
> kmail(7045) KMLineEdit::insertEmails: "martin.b.koller at siemens.com"
> kmail(7045) KMLineEdit::insertEmails: result: "&koller at etm.at"
>
More information about the kde-core-devel
mailing list