From 0c8ae843c6cd2516e4394cd102eeec254d9d4ac2 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 11 May 2023 15:47:25 +0200 Subject: Terminal: Switch Mode to ensure visible Change-Id: I6d92ac07b7f6e7d5ed3fa4d27531d1cb8ec1a36f Reviewed-by: Cristian Adam --- src/plugins/terminal/terminalpane.cpp | 6 +++--- src/plugins/terminal/terminalprocessimpl.cpp | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/plugins/terminal/terminalpane.cpp b/src/plugins/terminal/terminalpane.cpp index f5c4046f92..92ad595191 100644 --- a/src/plugins/terminal/terminalpane.cpp +++ b/src/plugins/terminal/terminalpane.cpp @@ -175,7 +175,7 @@ void TerminalPane::openTerminal(const OpenTerminalParameters ¶meters) { OpenTerminalParameters parametersCopy{parameters}; if (!m_isVisible) - emit showPage(0); + emit showPage(IOutputPane::ModeSwitch); if (!parametersCopy.workingDirectory) { const std::optional projectDir = startupProjectDirectory(); @@ -199,7 +199,7 @@ void TerminalPane::openTerminal(const OpenTerminalParameters ¶meters) void TerminalPane::addTerminal(TerminalWidget *terminal, const QString &title) { if (!m_isVisible) - emit showPage(0); + emit showPage(IOutputPane::ModeSwitch); m_tabWidget->setCurrentIndex(m_tabWidget->addTab(terminal, title)); setupTerminalWidget(terminal); @@ -209,7 +209,7 @@ void TerminalPane::addTerminal(TerminalWidget *terminal, const QString &title) void TerminalPane::ensureVisible(TerminalWidget *terminal) { if (!m_isVisible) - emit showPage(0); + emit showPage(IOutputPane::ModeSwitch); m_tabWidget->setCurrentWidget(terminal); terminal->setFocus(); } diff --git a/src/plugins/terminal/terminalprocessimpl.cpp b/src/plugins/terminal/terminalprocessimpl.cpp index ef3c4acf64..d2b76e51a6 100644 --- a/src/plugins/terminal/terminalprocessimpl.cpp +++ b/src/plugins/terminal/terminalprocessimpl.cpp @@ -44,10 +44,11 @@ public: terminal->setShellName(setup.m_commandLine.executable().fileName()); m_terminalPane->addTerminal(terminal, "App"); } else { - m_terminalPane->ensureVisible(terminal); terminal->restart(openParameters); } + m_terminalPane->ensureVisible(terminal); + connect(terminal, &TerminalWidget::destroyed, m_process, [process = m_process] { if (process->inferiorProcessId()) process->emitFinished(-1, QProcess::CrashExit); -- cgit v1.2.1