Terminal: Don't always open default terminals

If a "Run in Terminal" app is started, or the user
selects "Open Terminal here" we don't want to
open another terminal when the pane becomes visible.
So we move the check after we added the terminal.

Change-Id: Idd90d6e9dbba513dd020d91ffebb594fd90d688a
Reviewed-by: Artem Sokolovskii <artem.sokolovskii@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-06-08 15:10:21 +02:00
parent 335b70de5d
commit 1647968b92

View File

@@ -114,8 +114,6 @@ static std::optional<FilePath> startupProjectDirectory()
void TerminalPane::openTerminal(const OpenTerminalParameters &parameters) void TerminalPane::openTerminal(const OpenTerminalParameters &parameters)
{ {
OpenTerminalParameters parametersCopy{parameters}; OpenTerminalParameters parametersCopy{parameters};
if (!m_isVisible)
emit showPage(IOutputPane::ModeSwitch);
if (!parametersCopy.workingDirectory) { if (!parametersCopy.workingDirectory) {
const std::optional<FilePath> projectDir = startupProjectDirectory(); const std::optional<FilePath> projectDir = startupProjectDirectory();
@@ -139,6 +137,9 @@ void TerminalPane::openTerminal(const OpenTerminalParameters &parameters)
m_tabWidget.setCurrentIndex(m_tabWidget.addTab(terminalWidget, Tr::tr("Terminal"))); m_tabWidget.setCurrentIndex(m_tabWidget.addTab(terminalWidget, Tr::tr("Terminal")));
setupTerminalWidget(terminalWidget); setupTerminalWidget(terminalWidget);
if (!m_isVisible)
emit showPage(IOutputPane::ModeSwitch);
m_tabWidget.currentWidget()->setFocus(); m_tabWidget.currentWidget()->setFocus();
emit navigateStateUpdate(); emit navigateStateUpdate();
@@ -146,11 +147,14 @@ void TerminalPane::openTerminal(const OpenTerminalParameters &parameters)
void TerminalPane::addTerminal(TerminalWidget *terminal, const QString &title) void TerminalPane::addTerminal(TerminalWidget *terminal, const QString &title)
{ {
if (!m_isVisible)
emit showPage(IOutputPane::ModeSwitch);
m_tabWidget.setCurrentIndex(m_tabWidget.addTab(terminal, title)); m_tabWidget.setCurrentIndex(m_tabWidget.addTab(terminal, title));
setupTerminalWidget(terminal); setupTerminalWidget(terminal);
if (!m_isVisible)
emit showPage(IOutputPane::ModeSwitch);
terminal->setFocus();
emit navigateStateUpdate(); emit navigateStateUpdate();
} }