From cab86ec3edda4c64b816b3a3f84aebd103093c67 Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Wed, 18 Sep 2013 16:10:49 +0000 Subject: Replace hardcoded shortcuts for X11 in QLineEdit with StandardKeys Added Ctrl+E to the X11 shortcuts for "move to end of line" Added new StandardKey DeleteCompleteLine bound to Ctrl+U Updated QLineEdit to use these standard keys Change-Id: I24e5dd3b4fed9f6c15f0d1a00be682734e2485a4 Reviewed-by: Frederik Gladhorn --- src/gui/kernel/qkeysequence.cpp | 4 +++- src/gui/kernel/qkeysequence.h | 3 ++- src/gui/kernel/qplatformtheme.cpp | 4 +++- src/widgets/widgets/qwidgetlinecontrol.cpp | 22 ++++++++-------------- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp index a2db939ace..9464d97932 100644 --- a/src/gui/kernel/qkeysequence.cpp +++ b/src/gui/kernel/qkeysequence.cpp @@ -270,7 +270,7 @@ void Q_GUI_EXPORT qt_set_sequence_auto_mnemonic(bool b) { qt_sequence_no_mnemoni \row \li MoveToNextPage \li PgDown \li PgDown, Alt+PgDown, Meta+Down, Meta+PgDown\li PgDown \li PgDown \row \li MoveToPreviousPage \li PgUp \li PgUp, Alt+PgUp, Meta+Up, Meta+PgUp \li PgUp \li PgUp \row \li MoveToStartOfLine \li Home \li Ctrl+Left, Meta+Left \li Home \li Home - \row \li MoveToEndOfLine \li End \li Ctrl+Right, Meta+Right \li End \li End + \row \li MoveToEndOfLine \li End \li Ctrl+Right, Meta+Right \li End, Ctrl+E \li End, Ctrl+E \row \li MoveToStartOfBlock \li (none) \li Alt+Up, Meta+A \li (none) \li (none) \row \li MoveToEndOfBlock \li (none) \li Alt+Down, Meta+E \li (none) \li (none) \row \li MoveToStartOfDocument\li Ctrl+Home \li Ctrl+Up, Home \li Ctrl+Home \li Ctrl+Home @@ -292,6 +292,7 @@ void Q_GUI_EXPORT qt_set_sequence_auto_mnemonic(bool b) { qt_sequence_no_mnemoni \row \li DeleteStartOfWord \li Ctrl+Backspace \li Alt+Backspace \li Ctrl+Backspace \li Ctrl+Backspace \row \li DeleteEndOfWord \li Ctrl+Del \li (none) \li Ctrl+Del \li Ctrl+Del \row \li DeleteEndOfLine \li (none) \li (none) \li Ctrl+K \li Ctrl+K + \row \li DeleteCompleteLine \li (none) \li (none) \li Ctrl+U \li Ctrl+U \row \li InsertParagraphSeparator \li Enter \li Enter \li Enter \li Enter \row \li InsertLineSeparator \li Shift+Enter \li Meta+Enter \li Shift+Enter \li Shift+Enter \endtable @@ -668,6 +669,7 @@ static const struct { \value DeleteEndOfLine Delete end of line. \value DeleteEndOfWord Delete word from the end of the cursor. \value DeleteStartOfWord Delete the beginning of a word up to the cursor. + \value DeleteCompleteLine Delete the entire line. \value Find Find in document. \value FindNext Find next result. \value FindPrevious Find previous result. diff --git a/src/gui/kernel/qkeysequence.h b/src/gui/kernel/qkeysequence.h index 8a989682d8..1c0ff6ca2c 100644 --- a/src/gui/kernel/qkeysequence.h +++ b/src/gui/kernel/qkeysequence.h @@ -141,7 +141,8 @@ public: Preferences, Quit, FullScreen, - Deselect + Deselect, + DeleteCompleteLine }; enum SequenceFormat { diff --git a/src/gui/kernel/qplatformtheme.cpp b/src/gui/kernel/qplatformtheme.cpp index c74b2d42a8..3fb4939b69 100644 --- a/src/gui/kernel/qplatformtheme.cpp +++ b/src/gui/kernel/qplatformtheme.cpp @@ -256,6 +256,7 @@ const QKeyBinding QPlatformThemePrivate::keyBindings[] = { {QKeySequence::MoveToEndOfLine, 0, Qt::META | Qt::Key_Right, KB_Mac}, {QKeySequence::MoveToEndOfLine, 0, Qt::CTRL | Qt::Key_Right, KB_Mac }, {QKeySequence::MoveToEndOfLine, 0, Qt::Key_End, KB_Win | KB_X11}, + {QKeySequence::MoveToEndOfLine, 0, Qt::CTRL + Qt::Key_E, KB_X11}, {QKeySequence::MoveToStartOfBlock, 0, Qt::META | Qt::Key_A, KB_Mac}, {QKeySequence::MoveToStartOfBlock, 0, Qt::ALT | Qt::Key_Up, KB_Mac}, //mac only {QKeySequence::MoveToEndOfBlock, 0, Qt::META | Qt::Key_E, KB_Mac}, @@ -311,7 +312,8 @@ const QKeyBinding QPlatformThemePrivate::keyBindings[] = { {QKeySequence::FullScreen, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_F, KB_KDE}, {QKeySequence::FullScreen, 1, Qt::CTRL | Qt::Key_F11, KB_Gnome}, {QKeySequence::FullScreen, 1, Qt::Key_F11, KB_Win | KB_KDE}, - {QKeySequence::Deselect, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_A, KB_X11} + {QKeySequence::Deselect, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_A, KB_X11}, + {QKeySequence::DeleteCompleteLine, 0, Qt::CTRL | Qt::Key_U, KB_X11} }; const uint QPlatformThemePrivate::numberOfKeyBindings = sizeof(QPlatformThemePrivate::keyBindings)/(sizeof(QKeyBinding)); diff --git a/src/widgets/widgets/qwidgetlinecontrol.cpp b/src/widgets/widgets/qwidgetlinecontrol.cpp index d10001a305..27048c1440 100644 --- a/src/widgets/widgets/qwidgetlinecontrol.cpp +++ b/src/widgets/widgets/qwidgetlinecontrol.cpp @@ -1773,6 +1773,14 @@ void QWidgetLineControl::processKeyEvent(QKeyEvent* event) cursorWordBackward(true); del(); } + } else if (event == QKeySequence::DeleteCompleteLine) { + if (!isReadOnly()) { + setSelection(0, text().size()); +#ifndef QT_NO_CLIPBOARD + copy(); +#endif + del(); + } } #endif // QT_NO_SHORTCUT else { @@ -1810,20 +1818,6 @@ void QWidgetLineControl::processKeyEvent(QKeyEvent* event) complete(event->key()); break; #endif - case Qt::Key_E: - if (m_keyboardScheme == QPlatformTheme::X11KeyboardScheme) - end(0); - break; - - case Qt::Key_U: - if (m_keyboardScheme == QPlatformTheme::X11KeyboardScheme && !isReadOnly()) { - setSelection(0, text().size()); -#ifndef QT_NO_CLIPBOARD - copy(); -#endif - del(); - } - break; default: if (!handled) unknown = true; -- cgit v1.2.3