summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRainer Keller <rainer.keller@theqtcompany.com>2015-04-15 10:28:24 +0200
committerRainer Keller <rainer.keller@theqtcompany.com>2015-04-20 15:05:23 +0300
commit1f4b424073ed89263ca69b782617b70207cbd7e2 (patch)
treeb2817cb8fc6383ad954092aa7081d11b9fc62411 /src
parentda66ed8ce7421506ddeb4e7feea13987c26620c7 (diff)
b2qt-flashing-wizard: Script standard error in red color
Change-Id: I40893222a5ea999eca3f73b05e39e7e1ab53a9a1 Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/b2qt-flashing-wizard/actor.h1
-rw-r--r--src/b2qt-flashing-wizard/progress_page.cpp23
-rw-r--r--src/b2qt-flashing-wizard/progress_page.h1
-rw-r--r--src/b2qt-flashing-wizard/scriptwriter.cpp12
-rw-r--r--src/b2qt-flashing-wizard/scriptwriter.h3
5 files changed, 34 insertions, 6 deletions
diff --git a/src/b2qt-flashing-wizard/actor.h b/src/b2qt-flashing-wizard/actor.h
index 51e856d..9af55fe 100644
--- a/src/b2qt-flashing-wizard/actor.h
+++ b/src/b2qt-flashing-wizard/actor.h
@@ -37,6 +37,7 @@ signals:
void finished();
void failed(const QString &message);
void details(const QByteArray &);
+ void errorDetails(const QByteArray &);
};
#endif // ACTOR_H
diff --git a/src/b2qt-flashing-wizard/progress_page.cpp b/src/b2qt-flashing-wizard/progress_page.cpp
index d518b44..e9203b3 100644
--- a/src/b2qt-flashing-wizard/progress_page.cpp
+++ b/src/b2qt-flashing-wizard/progress_page.cpp
@@ -111,13 +111,32 @@ void ProgressPage::setActor(Actor *actor)
connect(actor, &Actor::finished, this, &ProgressPage::finished);
connect(actor, &Actor::failed, this, &ProgressPage::failed);
connect(actor, &Actor::details, this, &ProgressPage::addDetails);
+ connect(actor, &Actor::errorDetails, this, &ProgressPage::addErrorDetails);
connect(actor, &Actor::progress, this, &ProgressPage::progress);
}
+static void commonDetailReplacements(QByteArray &data)
+{
+ data.replace(0x08 /* backspace */, ' ');
+}
+
void ProgressPage::addDetails(QByteArray newData)
{
- newData.replace(0x08 /* backspace */, ' ');
- mTextEdit->append(QString::fromLocal8Bit(newData));
+ commonDetailReplacements(newData);
+ mTextEdit->insertPlainText(QString::fromLocal8Bit(newData));
+}
+
+void ProgressPage::addErrorDetails(QByteArray newData)
+{
+ if (newData.startsWith('+')) {
+ addDetails(newData);
+ return;
+ }
+ commonDetailReplacements(newData);
+ QColor c = mTextEdit->textColor();
+ mTextEdit->setTextColor(Qt::red);
+ mTextEdit->insertPlainText(QString::fromLocal8Bit(newData));
+ mTextEdit->setTextColor(c);
}
void ProgressPage::showDetails()
diff --git a/src/b2qt-flashing-wizard/progress_page.h b/src/b2qt-flashing-wizard/progress_page.h
index c2e4c4c..393619d 100644
--- a/src/b2qt-flashing-wizard/progress_page.h
+++ b/src/b2qt-flashing-wizard/progress_page.h
@@ -42,6 +42,7 @@ public slots:
void finished();
void failed(const QString &step);
void addDetails(QByteArray newData);
+ void addErrorDetails(QByteArray newData);
void showDetails();
void hideDetails();
void toggleDetails();
diff --git a/src/b2qt-flashing-wizard/scriptwriter.cpp b/src/b2qt-flashing-wizard/scriptwriter.cpp
index 594aecc..4e38bdd 100644
--- a/src/b2qt-flashing-wizard/scriptwriter.cpp
+++ b/src/b2qt-flashing-wizard/scriptwriter.cpp
@@ -34,7 +34,6 @@ ScriptWriter::ScriptWriter(QObject *parent)
, mDebug(false)
, mRoot(false)
{
- mProcess.setProcessChannelMode(QProcess::MergedChannels);
mDebug = qEnvironmentVariableIsSet("DEBUG");
}
@@ -81,7 +80,8 @@ bool ScriptWriter::ready(QString &error) const
void ScriptWriter::start()
{
- connect(&mProcess, &QProcess::readyReadStandardOutput, this, &ScriptWriter::readOutput);
+ connect(&mProcess, &QProcess::readyReadStandardOutput, this, &ScriptWriter::readStandardOutput);
+ connect(&mProcess, &QProcess::readyReadStandardError, this, &ScriptWriter::readStandardError);
connect(&mProcess, (void (QProcess::*)(QProcess::ProcessError))&QProcess::error, this, &ScriptWriter::processError);
connect(&mProcess, (void (QProcess::*)(int, QProcess::ExitStatus))&QProcess::finished, this, &ScriptWriter::processFinished);
@@ -99,7 +99,7 @@ void ScriptWriter::start()
qFatal("Failed to start script");
}
-void ScriptWriter::readOutput()
+void ScriptWriter::readStandardOutput()
{
QByteArray ba = mProcess.readAllStandardOutput();
QList<QByteArray> baList = ba.split('\n');
@@ -112,6 +112,12 @@ void ScriptWriter::readOutput()
emit details(ba);
}
+void ScriptWriter::readStandardError()
+{
+ QByteArray ba = mProcess.readAllStandardError();
+ emit errorDetails(ba);
+}
+
void ScriptWriter::processFinished(int exitCode, QProcess::ExitStatus exitStatus)
{
if (exitStatus != QProcess::NormalExit || exitCode != 0) {
diff --git a/src/b2qt-flashing-wizard/scriptwriter.h b/src/b2qt-flashing-wizard/scriptwriter.h
index 68a7684..a984577 100644
--- a/src/b2qt-flashing-wizard/scriptwriter.h
+++ b/src/b2qt-flashing-wizard/scriptwriter.h
@@ -39,7 +39,8 @@ public:
void setRootFlag(bool);
private slots:
- void readOutput();
+ void readStandardOutput();
+ void readStandardError();
void processFinished(int, QProcess::ExitStatus);
void processError(QProcess::ProcessError);