forked from qt-creator/qt-creator
Terminal: Add keyboard shortcuts for backspace
Adds Keyboard shortcuts to delete a word to the left and the full line to the left. Fixes: QTCREATORBUG-30635 Change-Id: I73681728af9662d104a24d43a73794e33a4a961c Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -18,5 +18,7 @@ constexpr char MOVECURSORWORDRIGHT[] = "Terminal.MoveCursorWordRight";
|
|||||||
constexpr char CLEAR_TERMINAL[] = "Terminal.ClearTerminal";
|
constexpr char CLEAR_TERMINAL[] = "Terminal.ClearTerminal";
|
||||||
constexpr char TOGGLE_KEYBOARD_LOCK[] = "Terminal.ToggleKeyboardLock";
|
constexpr char TOGGLE_KEYBOARD_LOCK[] = "Terminal.ToggleKeyboardLock";
|
||||||
constexpr char SELECTALL[] = "Terminal.SelectAll";
|
constexpr char SELECTALL[] = "Terminal.SelectAll";
|
||||||
|
constexpr char DELETE_WORD_LEFT[] = "Terminal.DeleteWordLeft";
|
||||||
|
constexpr char DELETE_LINE_LEFT[] = "Terminal.DeleteLineLeft";
|
||||||
|
|
||||||
} // namespace Terminal::Constants
|
} // namespace Terminal::Constants
|
||||||
|
@@ -313,6 +313,16 @@ void TerminalWidget::setupActions()
|
|||||||
selectAllAction.addOnTriggered(this, &TerminalWidget::selectAll);
|
selectAllAction.addOnTriggered(this, &TerminalWidget::selectAll);
|
||||||
m_selectAll = make_registered(selectAllAction);
|
m_selectAll = make_registered(selectAllAction);
|
||||||
|
|
||||||
|
ActionBuilder deleteWordLeft(this, Constants::DELETE_WORD_LEFT);
|
||||||
|
deleteWordLeft.setContext(m_context);
|
||||||
|
deleteWordLeft.addOnTriggered(this, [this]() { writeToPty("\x17"); });
|
||||||
|
m_deleteWordLeft = make_registered(deleteWordLeft);
|
||||||
|
|
||||||
|
ActionBuilder deleteLineLeft(this, Constants::DELETE_LINE_LEFT);
|
||||||
|
deleteLineLeft.setContext(m_context);
|
||||||
|
deleteLineLeft.addOnTriggered(this, [this]() { writeToPty("\x15"); });
|
||||||
|
m_deleteLineLeft = make_registered(deleteLineLeft);
|
||||||
|
|
||||||
// Ctrl+Q, the default "Quit" shortcut, is a useful key combination in a shell.
|
// Ctrl+Q, the default "Quit" shortcut, is a useful key combination in a shell.
|
||||||
// It can be used in combination with Ctrl+S to pause a program, and resume it with Ctrl+Q.
|
// It can be used in combination with Ctrl+S to pause a program, and resume it with Ctrl+Q.
|
||||||
// So we unlock the EXIT command only for macOS where the default is Cmd+Q to quit.
|
// So we unlock the EXIT command only for macOS where the default is Cmd+Q to quit.
|
||||||
@@ -692,6 +702,16 @@ void TerminalWidget::initActions(QObject *parent)
|
|||||||
moveCursorWordRightAction.setText(Tr::tr("Move Cursor Word Right"));
|
moveCursorWordRightAction.setText(Tr::tr("Move Cursor Word Right"));
|
||||||
moveCursorWordRightAction.setContext(context);
|
moveCursorWordRightAction.setContext(context);
|
||||||
moveCursorWordRightAction.setDefaultKeySequence({QKeySequence("Alt+Right")});
|
moveCursorWordRightAction.setDefaultKeySequence({QKeySequence("Alt+Right")});
|
||||||
|
|
||||||
|
ActionBuilder deleteWordLeft(parent, Constants::DELETE_WORD_LEFT);
|
||||||
|
deleteWordLeft.setText(Tr::tr("Delete Word Left"));
|
||||||
|
deleteWordLeft.setContext(context);
|
||||||
|
deleteWordLeft.setDefaultKeySequence({QKeySequence("Alt+Backspace")});
|
||||||
|
|
||||||
|
ActionBuilder deleteLineLeft(parent, Constants::DELETE_LINE_LEFT);
|
||||||
|
deleteLineLeft.setText(Tr::tr("Delete Line Left"));
|
||||||
|
deleteLineLeft.setContext(context);
|
||||||
|
deleteLineLeft.setDefaultKeySequence({QKeySequence("Ctrl+Backspace")});
|
||||||
}
|
}
|
||||||
|
|
||||||
void TerminalWidget::unlockGlobalAction(const Utils::Id &commandId)
|
void TerminalWidget::unlockGlobalAction(const Utils::Id &commandId)
|
||||||
|
@@ -107,6 +107,8 @@ private:
|
|||||||
RegisteredAction m_selectAll;
|
RegisteredAction m_selectAll;
|
||||||
RegisteredAction m_moveCursorWordLeft;
|
RegisteredAction m_moveCursorWordLeft;
|
||||||
RegisteredAction m_moveCursorWordRight;
|
RegisteredAction m_moveCursorWordRight;
|
||||||
|
RegisteredAction m_deleteWordLeft;
|
||||||
|
RegisteredAction m_deleteLineLeft;
|
||||||
|
|
||||||
Internal::ShortcutMap m_shortcutMap;
|
Internal::ShortcutMap m_shortcutMap;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user