forked from qt-creator/qt-creator
TerminalImpl: Drop ProcessImpl and Terminal mode from c'tor
Change-Id: I0571eabb1a20389055a8e98dd942776b3d054981 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -218,8 +218,7 @@ public:
|
|||||||
class TerminalImpl : public ProcessInterface
|
class TerminalImpl : public ProcessInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TerminalImpl(ProcessImpl processImpl, TerminalMode terminalMode)
|
TerminalImpl() : m_terminal(this)
|
||||||
: m_terminal(this, processImpl, terminalMode)
|
|
||||||
{
|
{
|
||||||
connect(&m_terminal, &Internal::TerminalProcess::started,
|
connect(&m_terminal, &Internal::TerminalProcess::started,
|
||||||
this, &ProcessInterface::started);
|
this, &ProcessInterface::started);
|
||||||
@@ -237,6 +236,8 @@ public:
|
|||||||
|
|
||||||
void start() override
|
void start() override
|
||||||
{
|
{
|
||||||
|
m_terminal.setProcessImpl(m_setup.m_processImpl);
|
||||||
|
m_terminal.setTerminalMode(m_setup.m_terminalMode);
|
||||||
m_terminal.setAbortOnMetaChars(m_setup.m_abortOnMetaChars);
|
m_terminal.setAbortOnMetaChars(m_setup.m_abortOnMetaChars);
|
||||||
m_terminal.setCommand(m_setup.m_commandLine);
|
m_terminal.setCommand(m_setup.m_commandLine);
|
||||||
m_terminal.setWorkingDirectory(m_setup.m_workingDirectory);
|
m_terminal.setWorkingDirectory(m_setup.m_workingDirectory);
|
||||||
@@ -451,12 +452,12 @@ public:
|
|||||||
|
|
||||||
ProcessInterface *createProcessInterface()
|
ProcessInterface *createProcessInterface()
|
||||||
{
|
{
|
||||||
|
if (m_setup.m_terminalMode != TerminalMode::Off)
|
||||||
|
return new TerminalImpl();
|
||||||
|
|
||||||
const ProcessImpl impl = m_setup.m_processImpl == ProcessImpl::Default
|
const ProcessImpl impl = m_setup.m_processImpl == ProcessImpl::Default
|
||||||
? defaultProcessImpl() : m_setup.m_processImpl;
|
? defaultProcessImpl() : m_setup.m_processImpl;
|
||||||
|
if (impl == ProcessImpl::QProcess)
|
||||||
if (m_setup.m_terminalMode != TerminalMode::Off)
|
|
||||||
return new TerminalImpl(impl, m_setup.m_terminalMode);
|
|
||||||
else if (impl == ProcessImpl::QProcess)
|
|
||||||
return new QProcessImpl();
|
return new QProcessImpl();
|
||||||
return new ProcessLauncherImpl();
|
return new ProcessLauncherImpl();
|
||||||
}
|
}
|
||||||
|
@@ -123,14 +123,10 @@ static QString msgCannotExecute(const QString & p, const QString &why)
|
|||||||
class TerminalProcessPrivate
|
class TerminalProcessPrivate
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TerminalProcessPrivate(QObject *parent, ProcessImpl processImpl, TerminalMode terminalMode)
|
TerminalProcessPrivate(QObject *parent)
|
||||||
: m_terminalMode(terminalMode)
|
: m_process(parent) {}
|
||||||
, m_process(parent)
|
|
||||||
{
|
|
||||||
m_process.setProcessImpl(processImpl);
|
|
||||||
}
|
|
||||||
|
|
||||||
const TerminalMode m_terminalMode;
|
TerminalMode m_terminalMode = TerminalMode::On;
|
||||||
FilePath m_workingDir;
|
FilePath m_workingDir;
|
||||||
Environment m_environment;
|
Environment m_environment;
|
||||||
qint64 m_processId = 0;
|
qint64 m_processId = 0;
|
||||||
@@ -160,9 +156,8 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
TerminalProcess::TerminalProcess(QObject *parent, ProcessImpl processImpl,
|
TerminalProcess::TerminalProcess(QObject *parent)
|
||||||
TerminalMode terminalMode)
|
: QObject(parent), d(new TerminalProcessPrivate(this))
|
||||||
: QObject(parent), d(new TerminalProcessPrivate(this, processImpl, terminalMode))
|
|
||||||
{
|
{
|
||||||
connect(&d->m_stubServer, &QLocalServer::newConnection,
|
connect(&d->m_stubServer, &QLocalServer::newConnection,
|
||||||
this, &TerminalProcess::stubConnectionAvailable);
|
this, &TerminalProcess::stubConnectionAvailable);
|
||||||
@@ -176,6 +171,17 @@ TerminalProcess::~TerminalProcess()
|
|||||||
delete d;
|
delete d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TerminalProcess::setProcessImpl(ProcessImpl processImpl)
|
||||||
|
{
|
||||||
|
d->m_process.setProcessImpl(processImpl);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TerminalProcess::setTerminalMode(TerminalMode mode)
|
||||||
|
{
|
||||||
|
QTC_ASSERT(mode != TerminalMode::Off, return);
|
||||||
|
d->m_terminalMode = mode;
|
||||||
|
}
|
||||||
|
|
||||||
void TerminalProcess::setCommand(const CommandLine &command)
|
void TerminalProcess::setCommand(const CommandLine &command)
|
||||||
{
|
{
|
||||||
d->m_commandLine = command;
|
d->m_commandLine = command;
|
||||||
|
@@ -41,9 +41,12 @@ class TerminalProcess : public QObject
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit TerminalProcess(QObject *parent, ProcessImpl processImpl, TerminalMode terminalMode);
|
explicit TerminalProcess(QObject *parent);
|
||||||
~TerminalProcess() override;
|
~TerminalProcess() override;
|
||||||
|
|
||||||
|
void setProcessImpl(ProcessImpl processImpl);
|
||||||
|
void setTerminalMode(TerminalMode mode);
|
||||||
|
|
||||||
void setCommand(const CommandLine &command);
|
void setCommand(const CommandLine &command);
|
||||||
const CommandLine &commandLine() const;
|
const CommandLine &commandLine() const;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user