diff options
author | Marcus Tillmanns <[email protected]> | 2023-03-21 10:15:54 +0100 |
---|---|---|
committer | Marcus Tillmanns <[email protected]> | 2023-03-21 13:50:18 +0000 |
commit | 80fa3339e06236bebeb1894deeb4cf7e648c2888 (patch) | |
tree | bbd069f76799742fc40e8f2114ccb1c2e95ce5df /src/libs/utils/terminalinterface.cpp | |
parent | 129562ea6f7260f2db71be28d94ca9606899a7ae (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.cpp | 17 |
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); |