forked from qt-creator/qt-creator
Utils: Allow different codec for Process stdout and stderr
Change-Id: Ie6a3fb74a447a599c492e38ec83a2330f3cb4cd8 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -847,7 +847,9 @@ public:
|
||||
qint64 m_applicationMainThreadId = 0;
|
||||
ProcessResultData m_resultData;
|
||||
|
||||
QTextCodec *m_codec = QTextCodec::codecForLocale();
|
||||
QTextCodec *m_stdOutCodec = QTextCodec::codecForLocale();
|
||||
QTextCodec *m_stdErrCodec = QTextCodec::codecForLocale();
|
||||
|
||||
ProcessResult m_result = ProcessResult::StartFailed;
|
||||
ChannelBuffer m_stdOut;
|
||||
ChannelBuffer m_stdErr;
|
||||
@@ -1102,9 +1104,9 @@ void ProcessPrivate::sendControlSignal(ControlSignal controlSignal)
|
||||
void ProcessPrivate::clearForRun()
|
||||
{
|
||||
m_stdOut.clearForRun();
|
||||
m_stdOut.codec = m_codec;
|
||||
m_stdOut.codec = m_stdOutCodec;
|
||||
m_stdErr.clearForRun();
|
||||
m_stdErr.codec = m_codec;
|
||||
m_stdErr.codec = m_stdErrCodec;
|
||||
m_result = ProcessResult::StartFailed;
|
||||
m_startTimestamp = {};
|
||||
m_doneTimestamp = {};
|
||||
@@ -1729,13 +1731,13 @@ QByteArray Process::rawStdErr() const
|
||||
QString Process::stdOut() const
|
||||
{
|
||||
QTC_CHECK(d->m_stdOut.keepRawData);
|
||||
return d->m_codec->toUnicode(d->m_stdOut.rawData);
|
||||
return d->m_stdOutCodec->toUnicode(d->m_stdOut.rawData);
|
||||
}
|
||||
|
||||
QString Process::stdErr() const
|
||||
{
|
||||
QTC_CHECK(d->m_stdErr.keepRawData);
|
||||
return d->m_codec->toUnicode(d->m_stdErr.rawData);
|
||||
return d->m_stdErrCodec->toUnicode(d->m_stdErr.rawData);
|
||||
}
|
||||
|
||||
QString Process::cleanedStdOut() const
|
||||
@@ -1850,7 +1852,20 @@ void ChannelBuffer::handleRest()
|
||||
void Process::setCodec(QTextCodec *c)
|
||||
{
|
||||
QTC_ASSERT(c, return);
|
||||
d->m_codec = c;
|
||||
d->m_stdOutCodec = c;
|
||||
d->m_stdErrCodec = c;
|
||||
}
|
||||
|
||||
void Process::setStdOutCodec(QTextCodec *c)
|
||||
{
|
||||
QTC_ASSERT(c, return);
|
||||
d->m_stdOutCodec = c;
|
||||
}
|
||||
|
||||
void Process::setStdErrCodec(QTextCodec *c)
|
||||
{
|
||||
QTC_ASSERT(c, return);
|
||||
d->m_stdErrCodec = c;
|
||||
}
|
||||
|
||||
void Process::setTimeOutMessageBoxEnabled(bool v)
|
||||
|
||||
Reference in New Issue
Block a user