Terminal: Add mouse support

Change-Id: Ibeb8e13b5f8f75f16ec86f64536235587c844ffc
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-07-25 09:16:48 +02:00
parent 75d9dc2d31
commit 79e839b29f
17 changed files with 211 additions and 112 deletions

View File

@@ -54,9 +54,6 @@ TerminalPane::TerminalPane(QObject *parent)
initActions();
m_lockKeyboardButton = new QToolButton();
m_lockKeyboardButton->setDefaultAction(&lockKeyboard);
m_newTerminalButton = new QToolButton();
m_newTerminalButton->setDefaultAction(&newTerminal);
@@ -94,11 +91,34 @@ TerminalPane::TerminalPane(QObject *parent)
connect(m_escSettingButton, &QToolButton::toggled, this, [this, updateEscButton] {
settings().sendEscapeToTerminal.setValue(m_escSettingButton->isChecked());
settings().writeSettings();
updateEscButton();
});
connect(&settings(), &TerminalSettings::applied, this, updateEscButton);
const auto updateLockButton = [this] {
m_lockKeyboardButton->setChecked(settings().lockKeyboard());
if (settings().lockKeyboard()) {
m_lockKeyboardButton->setIcon(LOCK_KEYBOARD_ICON.icon());
m_lockKeyboardButton->setToolTip(
Tr::tr("Qt Creator shortcuts are blocked when focus is inside the terminal."));
} else {
m_lockKeyboardButton->setIcon(UNLOCK_KEYBOARD_ICON.icon());
m_lockKeyboardButton->setToolTip(Tr::tr("Qt Creator shortcuts take precedence."));
}
};
m_lockKeyboardButton = new QToolButton();
m_lockKeyboardButton->setCheckable(true);
updateLockButton();
connect(m_lockKeyboardButton, &QToolButton::toggled, this, [this, updateLockButton] {
settings().lockKeyboard.setValue(m_lockKeyboardButton->isChecked());
updateLockButton();
});
connect(&settings(), &TerminalSettings::applied, this, updateLockButton);
}
TerminalPane::~TerminalPane() {}
@@ -249,23 +269,6 @@ void TerminalPane::initActions()
{
createShellMenu();
lockKeyboard.setCheckable(true);
lockKeyboard.setChecked(settings().lockKeyboard());
auto updateLockKeyboard = [this](bool locked) {
settings().lockKeyboard.setValue(locked);
if (locked) {
lockKeyboard.setIcon(LOCK_KEYBOARD_ICON.icon());
lockKeyboard.setToolTip(Tr::tr("Sends keyboard shortcuts to Terminal."));
} else {
lockKeyboard.setIcon(UNLOCK_KEYBOARD_ICON.icon());
lockKeyboard.setToolTip(Tr::tr("Sends keyboard shortcuts to Qt Creator."));
}
};
updateLockKeyboard(settings().lockKeyboard());
connect(&lockKeyboard, &QAction::toggled, this, updateLockKeyboard);
newTerminal.setText(Tr::tr("New Terminal"));
newTerminal.setIcon(NEW_TERMINAL_ICON.icon());
newTerminal.setToolTip(Tr::tr("Create a new Terminal."));