Terminal: Add shell integration

Change-Id: Ic1e226b56f0103e5a6e7764073ab7ab241b67baa
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-03-10 13:55:17 +01:00
parent 3507229a00
commit bd52e53dbf
22 changed files with 1129 additions and 15 deletions

View File

@@ -188,13 +188,29 @@ void TerminalPane::setupTerminalWidget(TerminalWidget *terminal)
auto setTabText = [this](TerminalWidget * terminal) {
auto index = m_tabWidget->indexOf(terminal);
m_tabWidget->setTabText(index, terminal->shellName());
const FilePath cwd = terminal->cwd();
const QString exe = terminal->currentCommand().isEmpty() ? terminal->shellName()
: terminal->currentCommand().executable().fileName();
if (cwd.isEmpty())
m_tabWidget->setTabText(index, exe);
else
m_tabWidget->setTabText(index, exe + " - " + cwd.fileName());
};
connect(terminal, &TerminalWidget::started, [setTabText, terminal](qint64 /*pid*/) {
setTabText(terminal);
});
connect(terminal, &TerminalWidget::cwdChanged, [setTabText, terminal]() {
setTabText(terminal);
});
connect(terminal, &TerminalWidget::commandChanged, [setTabText, terminal]() {
setTabText(terminal);
});
if (!terminal->shellName().isEmpty())
setTabText(terminal);