diff options
Diffstat (limited to 'src/b2qt-flashing-wizard/scriptwriter.cpp')
-rw-r--r-- | src/b2qt-flashing-wizard/scriptwriter.cpp | 84 |
1 files changed, 2 insertions, 82 deletions
diff --git a/src/b2qt-flashing-wizard/scriptwriter.cpp b/src/b2qt-flashing-wizard/scriptwriter.cpp index 59996ed..dfe554e 100644 --- a/src/b2qt-flashing-wizard/scriptwriter.cpp +++ b/src/b2qt-flashing-wizard/scriptwriter.cpp @@ -31,7 +31,6 @@ ScriptWriter::ScriptWriter(QObject *parent) : Actor(parent) - , mElapsed(new QElapsedTimer) , mDebug(false) { mProcess.setProcessChannelMode(QProcess::MergedChannels); @@ -40,7 +39,6 @@ ScriptWriter::ScriptWriter(QObject *parent) ScriptWriter::~ScriptWriter() { - delete mElapsed; } void ScriptWriter::setScriptFile(const QString &fileName) @@ -102,7 +100,6 @@ void ScriptWriter::start() mProcess.start(args.takeFirst(), args); if (!mProcess.waitForStarted()) qFatal("Failed to start script"); - mElapsed->start(); mProcess.write("y\n"); } @@ -111,56 +108,11 @@ void ScriptWriter::readOutput() QByteArray ba = mProcess.readAllStandardOutput(); QList<QByteArray> baList = ba.split('\n'); - static unsigned int currentProgress = 0; - unsigned int nextProgress = 0; - unsigned int milliseconds = 0; - - unsigned int whole = 0; - if (!mTimings.isEmpty()) - whole = mTimings.last().second; - foreach (const QByteArray &line, baList) { - if (line.startsWith("+")) { - // Command line - while (!mTimings.isEmpty() && !mTimings.first().first) - mTimings.removeFirst(); - - // Should not happen - if (mTimings.isEmpty()) - break; - - currentProgress = mTimings.takeFirst().second; - } else { - // Output line - if (!mTimings.isEmpty() && !mTimings.first().first) - currentProgress = mTimings.takeFirst().second; - } + if (line.startsWith("-- STEP -- ")) + emit progress(QString::fromLocal8Bit(line.mid(11).trimmed())); } - if (!mTimings.isEmpty()) { - nextProgress = mTimings.first().second; - milliseconds = mTimings.last().second / 100 * (nextProgress - currentProgress); - } else { - nextProgress = currentProgress; - } - - double slowness = ((double)currentProgress / mElapsed->elapsed()) * (whole/100.0); -// if (slowness == 0) - slowness = 1; - - if (mDebug) { - qDebug() << ba; - qDebug() << "slowness:" << slowness << "currentProgress:" << currentProgress << "elapsed:" << mElapsed->elapsed() << "milliseconds:" << milliseconds << "nextProgress:" << nextProgress << "whole:" << whole << "stack:" << mTimings.size(); - } - - if (currentProgress > 100) - currentProgress = 100; - if (nextProgress > 100) - nextProgress = 100; - - if (currentProgress || nextProgress) - emit progress(currentProgress, nextProgress, milliseconds/slowness); - emit details(ba); } @@ -190,38 +142,6 @@ void ScriptWriter::setEnvironment(const QString &key, const QString &value) mProcess.setProcessEnvironment(env); } -void ScriptWriter::setProgressFile(const QString &fileName) -{ - mTimings.clear(); - - QFile f(fileName); - if (!f.open(QFile::ReadOnly)) { - qWarning() << "Could not open progress file"; - return; - } - - bool ok; - - while (!f.atEnd()) { - QByteArray line = f.readLine().simplified(); - - int i = line.toInt(&ok); - if (!ok) { - qWarning() << "Could not parse progress file:" << line; - mTimings.clear(); - return; - } - if (i < 0) - mTimings += qMakePair(true, -i); - else if (i == 0) - mTimings += qMakePair(line.startsWith('-'), 0); - else - mTimings += qMakePair(false, i); - } - - qDebug() << "steps" << mTimings.size(); -} - void ScriptWriter::setAdditionalArgs(const QStringList &args) { mAdditionalArgs = args; |