QtcProcess: Remove TerminalMode::Pty enum value

Make Pty::Data optional. When set, the PtyProcessImpl
implementation is implied.

Change-Id: I7990e9d9016223e6597d876a5d0c4ed177365874
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
Jarek Kobus
2023-03-14 12:10:59 +01:00
parent 666f3258ba
commit a43c20969c
7 changed files with 22 additions and 22 deletions

View File

@@ -310,7 +310,7 @@ private:
class PtyProcessImpl final : public DefaultImpl
{
public:
~PtyProcessImpl() { m_setup.m_ptyData.setResizeHandler({}); }
~PtyProcessImpl() { QTC_CHECK(m_setup.m_ptyData); m_setup.m_ptyData->setResizeHandler({}); }
qint64 write(const QByteArray &data) final
{
@@ -338,7 +338,8 @@ public:
void doDefaultStart(const QString &program, const QStringList &arguments) final
{
m_setup.m_ptyData.setResizeHandler([this](const QSize &size) {
QTC_CHECK(m_setup.m_ptyData);
m_setup.m_ptyData->setResizeHandler([this](const QSize &size) {
if (m_ptyProcess)
m_ptyProcess->resize(size.width(), size.height());
});
@@ -357,8 +358,8 @@ public:
arguments,
m_setup.m_workingDirectory.path(),
m_setup.m_environment.toProcessEnvironment().toStringList(),
m_setup.m_ptyData.size().width(),
m_setup.m_ptyData.size().height());
m_setup.m_ptyData->size().width(),
m_setup.m_ptyData->size().height());
if (!startResult) {
const ProcessResultData result = {-1,
@@ -725,16 +726,16 @@ public:
ProcessInterface *createProcessInterface()
{
if (m_setup.m_terminalMode == TerminalMode::Pty)
return new PtyProcessImpl();
if (m_setup.m_ptyData)
return new PtyProcessImpl;
if (m_setup.m_terminalMode != TerminalMode::Off)
return Terminal::Hooks::instance().createTerminalProcessInterfaceHook()();
const ProcessImpl impl = m_setup.m_processImpl == ProcessImpl::Default
? defaultProcessImpl() : m_setup.m_processImpl;
if (impl == ProcessImpl::QProcess)
return new QProcessImpl();
return new ProcessLauncherImpl();
return new QProcessImpl;
return new ProcessLauncherImpl;
}
void setProcessInterface(ProcessInterface *process)
@@ -1123,12 +1124,12 @@ void QtcProcess::setProcessImpl(ProcessImpl processImpl)
d->m_setup.m_processImpl = processImpl;
}
void QtcProcess::setPtyData(const Pty::Data &data)
void QtcProcess::setPtyData(const std::optional<Pty::Data> &data)
{
d->m_setup.m_ptyData = data;
}
Pty::Data QtcProcess::ptyData() const
std::optional<Pty::Data> QtcProcess::ptyData() const
{
return d->m_setup.m_ptyData;
}