forked from qt-creator/qt-creator
Terminal: Make ESC key behavior configurable
Change-Id: I806870c5dd7edbcd3ac2642849cca82f1939ce01 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -5,11 +5,13 @@
|
||||
|
||||
#include "shellmodel.h"
|
||||
#include "terminalcommands.h"
|
||||
#include "terminalsettings.h"
|
||||
#include "terminaltr.h"
|
||||
#include "terminalwidget.h"
|
||||
|
||||
#include <coreplugin/actionmanager/actionmanager.h>
|
||||
#include <coreplugin/icontext.h>
|
||||
#include <coreplugin/icore.h>
|
||||
|
||||
#include <projectexplorer/project.h>
|
||||
#include <projectexplorer/projectmanager.h>
|
||||
@@ -127,6 +129,30 @@ TerminalPane::TerminalPane(QObject *parent)
|
||||
connect(m_openSettingsButton, &QToolButton::clicked, m_openSettingsButton, []() {
|
||||
TerminalCommands::openSettingsAction()->trigger();
|
||||
});
|
||||
|
||||
auto updateEscButton = [this] {
|
||||
m_escSettingButton->setChecked(TerminalSettings::instance().sendEscapeToTerminal.value());
|
||||
if (TerminalSettings::instance().sendEscapeToTerminal.value()) {
|
||||
m_escSettingButton->setText("⎋");
|
||||
m_escSettingButton->setToolTip(Tr::tr("Sending ESC to terminal instead of Qt Creator"));
|
||||
} else {
|
||||
m_escSettingButton->setText("⇧+⎋");
|
||||
m_escSettingButton->setToolTip(Tr::tr("Press ⇧+⎋ to send ESC to terminal"));
|
||||
}
|
||||
};
|
||||
|
||||
m_escSettingButton = new QToolButton();
|
||||
m_escSettingButton->setCheckable(true);
|
||||
|
||||
updateEscButton();
|
||||
|
||||
connect(m_escSettingButton, &QToolButton::toggled, this, [this] {
|
||||
TerminalSettings::instance().sendEscapeToTerminal.setValue(m_escSettingButton->isChecked());
|
||||
TerminalSettings::instance().apply();
|
||||
TerminalSettings::instance().writeSettings(Core::ICore::settings());
|
||||
});
|
||||
|
||||
connect(&TerminalSettings::instance(), &TerminalSettings::applied, this, updateEscButton);
|
||||
}
|
||||
|
||||
TerminalPane::~TerminalPane()
|
||||
@@ -252,15 +278,15 @@ void TerminalPane::setupTerminalWidget(TerminalWidget *terminal)
|
||||
m_tabWidget->setTabText(index, exe + " - " + cwd.fileName());
|
||||
};
|
||||
|
||||
connect(terminal, &TerminalWidget::started, [setTabText, terminal](qint64 /*pid*/) {
|
||||
connect(terminal, &TerminalWidget::started, this, [setTabText, terminal](qint64 /*pid*/) {
|
||||
setTabText(terminal);
|
||||
});
|
||||
|
||||
connect(terminal, &TerminalWidget::cwdChanged, [setTabText, terminal]() {
|
||||
connect(terminal, &TerminalWidget::cwdChanged, this, [setTabText, terminal]() {
|
||||
setTabText(terminal);
|
||||
});
|
||||
|
||||
connect(terminal, &TerminalWidget::commandChanged, [setTabText, terminal]() {
|
||||
connect(terminal, &TerminalWidget::commandChanged, this, [setTabText, terminal]() {
|
||||
setTabText(terminal);
|
||||
});
|
||||
|
||||
@@ -274,7 +300,7 @@ QList<QWidget *> TerminalPane::toolBarWidgets() const
|
||||
widgets.prepend(m_newTerminalButton);
|
||||
widgets.prepend(m_closeTerminalButton);
|
||||
|
||||
return widgets << m_openSettingsButton;
|
||||
return widgets << m_openSettingsButton << m_escSettingButton;
|
||||
}
|
||||
|
||||
QString TerminalPane::displayName() const
|
||||
|
||||
Reference in New Issue
Block a user