forked from qt-creator/qt-creator
QtcProcess: Introduce PtyData
That's going to be used by PtyProcessImpl. Change-Id: Ifc1a7886ceed73272c9e415414db49452175a334 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
committed by
Marcus Tillmanns
parent
81748fa00b
commit
8b09ad8898
@@ -7,6 +7,17 @@
|
||||
|
||||
namespace Utils {
|
||||
|
||||
namespace Pty {
|
||||
|
||||
void Data::resize(const QSize &size)
|
||||
{
|
||||
m_size = size;
|
||||
if (m_data->m_handler)
|
||||
m_data->m_handler(size);
|
||||
}
|
||||
|
||||
} // namespace Pty
|
||||
|
||||
/*!
|
||||
* \brief controlSignalToInt
|
||||
* \param controlSignal
|
||||
|
@@ -10,11 +10,39 @@
|
||||
#include "processenums.h"
|
||||
|
||||
#include <QProcess>
|
||||
#include <QSize>
|
||||
|
||||
namespace Utils {
|
||||
|
||||
namespace Internal { class QtcProcessPrivate; }
|
||||
|
||||
namespace Pty {
|
||||
|
||||
using ResizeHandler = std::function<void(const QSize &)>;
|
||||
|
||||
class QTCREATOR_UTILS_EXPORT SharedData
|
||||
{
|
||||
public:
|
||||
ResizeHandler m_handler;
|
||||
};
|
||||
|
||||
class QTCREATOR_UTILS_EXPORT Data
|
||||
{
|
||||
public:
|
||||
Data() : m_data(new SharedData) {}
|
||||
|
||||
void setResizeHandler(const ResizeHandler &handler) { m_data->m_handler = handler; }
|
||||
|
||||
QSize size() const { return m_size; }
|
||||
void resize(const QSize &size);
|
||||
|
||||
private:
|
||||
QSize m_size{80, 60};
|
||||
QSharedPointer<SharedData> m_data;
|
||||
};
|
||||
|
||||
} // namespace Pty
|
||||
|
||||
class QTCREATOR_UTILS_EXPORT ProcessSetupData
|
||||
{
|
||||
public:
|
||||
@@ -22,6 +50,7 @@ public:
|
||||
ProcessMode m_processMode = ProcessMode::Reader;
|
||||
TerminalMode m_terminalMode = TerminalMode::Off;
|
||||
|
||||
Pty::Data m_ptyData;
|
||||
CommandLine m_commandLine;
|
||||
FilePath m_workingDirectory;
|
||||
Environment m_environment;
|
||||
|
@@ -13,7 +13,6 @@
|
||||
#include "processutils.h"
|
||||
#include "stringutils.h"
|
||||
#include "terminalhooks.h"
|
||||
#include "terminalprocess_p.h"
|
||||
#include "threadutils.h"
|
||||
#include "utilstr.h"
|
||||
|
||||
@@ -1026,6 +1025,16 @@ void QtcProcess::setProcessImpl(ProcessImpl processImpl)
|
||||
d->m_setup.m_processImpl = processImpl;
|
||||
}
|
||||
|
||||
void QtcProcess::setPtyData(const Pty::Data &data)
|
||||
{
|
||||
d->m_setup.m_ptyData = data;
|
||||
}
|
||||
|
||||
Pty::Data QtcProcess::ptyData() const
|
||||
{
|
||||
return d->m_setup.m_ptyData;
|
||||
}
|
||||
|
||||
ProcessMode QtcProcess::processMode() const
|
||||
{
|
||||
return d->m_setup.m_processMode;
|
||||
|
@@ -21,6 +21,7 @@ class tst_QtcProcess;
|
||||
namespace Utils {
|
||||
|
||||
namespace Internal { class QtcProcessPrivate; }
|
||||
namespace Pty { class Data; }
|
||||
|
||||
class Environment;
|
||||
class DeviceProcessHooks;
|
||||
@@ -76,6 +77,9 @@ public:
|
||||
|
||||
void setProcessImpl(ProcessImpl processImpl);
|
||||
|
||||
void setPtyData(const Pty::Data &data);
|
||||
Pty::Data ptyData() const;
|
||||
|
||||
void setTerminalMode(TerminalMode mode);
|
||||
TerminalMode terminalMode() const;
|
||||
bool usesTerminal() const { return terminalMode() != TerminalMode::Off; }
|
||||
|
@@ -284,6 +284,7 @@ void DockerProcessImpl::start()
|
||||
m_process.setProcessImpl(m_setup.m_processImpl);
|
||||
m_process.setProcessMode(m_setup.m_processMode);
|
||||
m_process.setTerminalMode(m_setup.m_terminalMode);
|
||||
m_process.setPtyData(m_setup.m_ptyData);
|
||||
m_process.setReaperTimeout(m_setup.m_reaperTimeout);
|
||||
m_process.setWriteData(m_setup.m_writeData);
|
||||
m_process.setProcessChannelMode(m_setup.m_processChannelMode);
|
||||
|
@@ -785,6 +785,7 @@ void SshProcessInterfacePrivate::doStart()
|
||||
m_process.setProcessImpl(q->m_setup.m_processImpl);
|
||||
m_process.setProcessMode(q->m_setup.m_processMode);
|
||||
m_process.setTerminalMode(q->m_setup.m_terminalMode);
|
||||
m_process.setPtyData(q->m_setup.m_ptyData);
|
||||
m_process.setReaperTimeout(q->m_setup.m_reaperTimeout);
|
||||
m_process.setWriteData(q->m_setup.m_writeData);
|
||||
// TODO: what about other fields from m_setup?
|
||||
|
@@ -12,6 +12,7 @@
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/environment.h>
|
||||
#include <utils/hostosinfo.h>
|
||||
#include <utils/processinterface.h>
|
||||
#include <utils/stringutils.h>
|
||||
|
||||
#include <ptyqt.h>
|
||||
|
Reference in New Issue
Block a user