iOS: compose key events from QKeySequences

Instead of hard-coding the key and modifier that should trigger a
shortcut, we read it out from the QKeySequence that corresponds to
a StandardKey instead.

Change-Id: I6325534d3ff91c788d7e660d9009954e437b8534
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
bb10
Richard Moe Gustavsen 2015-08-28 15:46:07 +02:00
parent 69e1b1de93
commit d4799d0238
1 changed files with 18 additions and 10 deletions

View File

@ -333,65 +333,73 @@
#ifndef QT_NO_SHORTCUT
- (void)sendShortcut:(QKeySequence::StandardKey)standardKey
{
const int keys = QKeySequence(standardKey)[0];
Qt::Key key = Qt::Key(keys & 0x0000FFFF);
Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(keys & 0xFFFF0000);
[self sendKeyPressRelease:key modifiers:modifiers];
}
- (void)cut:(id)sender
{
Q_UNUSED(sender);
[self sendKeyPressRelease:Qt::Key_X modifiers:Qt::ControlModifier];
[self sendShortcut:QKeySequence::Cut];
}
- (void)copy:(id)sender
{
Q_UNUSED(sender);
[self sendKeyPressRelease:Qt::Key_C modifiers:Qt::ControlModifier];
[self sendShortcut:QKeySequence::Copy];
}
- (void)paste:(id)sender
{
Q_UNUSED(sender);
[self sendKeyPressRelease:Qt::Key_V modifiers:Qt::ControlModifier];
[self sendShortcut:QKeySequence::Paste];
}
- (void)selectAll:(id)sender
{
Q_UNUSED(sender);
[self sendKeyPressRelease:Qt::Key_A modifiers:Qt::ControlModifier];
[self sendShortcut:QKeySequence::SelectAll];
}
- (void)delete:(id)sender
{
Q_UNUSED(sender);
[self sendKeyPressRelease:Qt::Key_Delete modifiers:Qt::ControlModifier];
[self sendShortcut:QKeySequence::Delete];
}
- (void)toggleBoldface:(id)sender
{
Q_UNUSED(sender);
[self sendKeyPressRelease:Qt::Key_B modifiers:Qt::ControlModifier];
[self sendShortcut:QKeySequence::Bold];
}
- (void)toggleItalics:(id)sender
{
Q_UNUSED(sender);
[self sendKeyPressRelease:Qt::Key_I modifiers:Qt::ControlModifier];
[self sendShortcut:QKeySequence::Italic];
}
- (void)toggleUnderline:(id)sender
{
Q_UNUSED(sender);
[self sendKeyPressRelease:Qt::Key_U modifiers:Qt::ControlModifier];
[self sendShortcut:QKeySequence::Underline];
}
// -------------------------------------------------------------------------
- (void)undo
{
[self sendKeyPressRelease:Qt::Key_Z modifiers:Qt::ControlModifier];
[self sendShortcut:QKeySequence::Undo];
[self rebuildUndoStack];
}
- (void)redo
{
[self sendKeyPressRelease:Qt::Key_Z modifiers:Qt::ControlModifier|Qt::ShiftModifier];
[self sendShortcut:QKeySequence::Redo];
[self rebuildUndoStack];
}