aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/terminalinterface.cpp
diff options
context:
space:
mode:
authorMarcus Tillmanns <[email protected]>2023-03-21 10:15:54 +0100
committerMarcus Tillmanns <[email protected]>2023-03-21 13:50:18 +0000
commit80fa3339e06236bebeb1894deeb4cf7e648c2888 (patch)
treebbd069f76799742fc40e8f2114ccb1c2e95ce5df /src/libs/utils/terminalinterface.cpp
parent129562ea6f7260f2db71be28d94ca9606899a7ae (diff)
Utils: Re-add "press enter to continue" to stub
To keep the terminal from closing immediately, ask the user to press enter after the inferior exited. Make it configurable as the terminal plugin does not need this. Change-Id: I1949895f022a54539a6139be9f92fdc698f6534e Reviewed-by: <[email protected]> Reviewed-by: Eike Ziller <[email protected]>
Diffstat (limited to 'src/libs/utils/terminalinterface.cpp')
-rw-r--r--src/libs/utils/terminalinterface.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/libs/utils/terminalinterface.cpp b/src/libs/utils/terminalinterface.cpp
index 04468ddab7c..7ec7c755fd3 100644
--- a/src/libs/utils/terminalinterface.cpp
+++ b/src/libs/utils/terminalinterface.cpp
@@ -53,12 +53,19 @@ static QString msgCannotExecute(const QString &p, const QString &why)
return Tr::tr("Cannot execute \"%1\": %2").arg(p, why);
}
+static QString msgPromptToClose()
+{
+ // Shown in a terminal which might have a different character set on Windows.
+ return Tr::tr("Press <RETURN> to close this window...");
+}
+
class TerminalInterfacePrivate : public QObject
{
Q_OBJECT
public:
- TerminalInterfacePrivate(TerminalInterface *p)
+ TerminalInterfacePrivate(TerminalInterface *p, bool waitOnExit)
: q(p)
+ , waitOnExit(waitOnExit)
{
connect(&stubServer,
&QLocalServer::newConnection,
@@ -83,10 +90,12 @@ public:
TerminalInterface *q;
StubCreator *stubCreator{nullptr};
+
+ const bool waitOnExit;
};
-TerminalInterface::TerminalInterface()
- : d(new TerminalInterfacePrivate(this))
+TerminalInterface::TerminalInterface(bool waitOnExit)
+ : d(new TerminalInterfacePrivate(this, waitOnExit))
{}
TerminalInterface::~TerminalInterface()
@@ -349,6 +358,8 @@ void TerminalInterface::start()
if (d->envListFile)
cmd.addArgs({"-e", d->envListFile->fileName()});
+ cmd.addArgs({"--wait", d->waitOnExit ? msgPromptToClose() : ""});
+
cmd.addArgs({"--", m_setup.m_commandLine.executable().nativePath()});
cmd.addArgs(m_setup.m_commandLine.arguments(), CommandLine::Raw);