forked from qt-creator/qt-creator
Shortcut to enable/disable shortcuts routing to terminal
Fixes: QTCREATORBUG-29876 Change-Id: I8b04c09ce1de7dab968499773179f663c1c6fe7d Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
committed by
Xavier BESSON (Personal)
parent
218f346fcc
commit
223deb5968
@@ -15,5 +15,6 @@ constexpr char CLEARSELECTION[] = "Terminal.ClearSelection";
|
|||||||
constexpr char MOVECURSORWORDLEFT[] = "Terminal.MoveCursorWordLeft";
|
constexpr char MOVECURSORWORDLEFT[] = "Terminal.MoveCursorWordLeft";
|
||||||
constexpr char MOVECURSORWORDRIGHT[] = "Terminal.MoveCursorWordRight";
|
constexpr char MOVECURSORWORDRIGHT[] = "Terminal.MoveCursorWordRight";
|
||||||
constexpr char CLEAR_TERMINAL[] = "Terminal.ClearTerminal";
|
constexpr char CLEAR_TERMINAL[] = "Terminal.ClearTerminal";
|
||||||
|
constexpr char TOGGLE_KEYBOARD_LOCK[] = "Terminal.ToggleKeyboardLock";
|
||||||
|
|
||||||
} // namespace Terminal::Constants
|
} // namespace Terminal::Constants
|
||||||
|
@@ -125,6 +125,8 @@ TerminalPane::TerminalPane(QObject *parent)
|
|||||||
|
|
||||||
updateLockButton();
|
updateLockButton();
|
||||||
|
|
||||||
|
connect(&toggleKeyboardLock, &QAction::triggered, m_lockKeyboardButton, &QToolButton::toggle);
|
||||||
|
|
||||||
connect(m_lockKeyboardButton, &QToolButton::toggled, this, [this, updateLockButton] {
|
connect(m_lockKeyboardButton, &QToolButton::toggled, this, [this, updateLockButton] {
|
||||||
settings().lockKeyboard.setValue(m_lockKeyboardButton->isChecked());
|
settings().lockKeyboard.setValue(m_lockKeyboardButton->isChecked());
|
||||||
updateLockButton();
|
updateLockButton();
|
||||||
@@ -292,6 +294,8 @@ void TerminalPane::initActions()
|
|||||||
closeTerminal.setIcon(CLOSE_TERMINAL_ICON.icon());
|
closeTerminal.setIcon(CLOSE_TERMINAL_ICON.icon());
|
||||||
closeTerminal.setToolTip(Tr::tr("Close the current Terminal."));
|
closeTerminal.setToolTip(Tr::tr("Close the current Terminal."));
|
||||||
|
|
||||||
|
toggleKeyboardLock.setText(Tr::tr("Toggle Keyboard Lock"));
|
||||||
|
|
||||||
using namespace Constants;
|
using namespace Constants;
|
||||||
|
|
||||||
Command *cmd = ActionManager::registerAction(&newTerminal, NEWTERMINAL, m_selfContext);
|
Command *cmd = ActionManager::registerAction(&newTerminal, NEWTERMINAL, m_selfContext);
|
||||||
@@ -310,6 +314,10 @@ void TerminalPane::initActions()
|
|||||||
QKeySequence(HostOsInfo::isMacHost() ? QLatin1String("Ctrl+Shift+]")
|
QKeySequence(HostOsInfo::isMacHost() ? QLatin1String("Ctrl+Shift+]")
|
||||||
: QLatin1String("Ctrl+PgDown"))});
|
: QLatin1String("Ctrl+PgDown"))});
|
||||||
|
|
||||||
|
ActionManager::registerAction(&toggleKeyboardLock,
|
||||||
|
TOGGLE_KEYBOARD_LOCK,
|
||||||
|
m_selfContext);
|
||||||
|
|
||||||
connect(&newTerminal, &QAction::triggered, this, [this] { openTerminal({}); });
|
connect(&newTerminal, &QAction::triggered, this, [this] { openTerminal({}); });
|
||||||
connect(&closeTerminal, &QAction::triggered, this, [this] {
|
connect(&closeTerminal, &QAction::triggered, this, [this] {
|
||||||
removeTab(m_tabWidget.currentIndex());
|
removeTab(m_tabWidget.currentIndex());
|
||||||
|
@@ -66,6 +66,7 @@ private:
|
|||||||
QAction nextTerminal;
|
QAction nextTerminal;
|
||||||
QAction prevTerminal;
|
QAction prevTerminal;
|
||||||
QAction closeTerminal;
|
QAction closeTerminal;
|
||||||
|
QAction toggleKeyboardLock;
|
||||||
|
|
||||||
QMenu m_shellMenu;
|
QMenu m_shellMenu;
|
||||||
|
|
||||||
|
@@ -571,6 +571,12 @@ bool TerminalWidget::event(QEvent *event)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (settings().lockKeyboard()
|
||||||
|
&& QKeySequence(keyEvent->keyCombination())
|
||||||
|
== ActionManager::command(Constants::TOGGLE_KEYBOARD_LOCK)->keySequence()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (settings().lockKeyboard()) {
|
if (settings().lockKeyboard()) {
|
||||||
event->accept();
|
event->accept();
|
||||||
return true;
|
return true;
|
||||||
|
Reference in New Issue
Block a user