summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/b2qt-flashing-wizard/actor.h1
-rw-r--r--src/b2qt-flashing-wizard/progress_page.cpp46
-rw-r--r--src/b2qt-flashing-wizard/progress_page.h6
-rw-r--r--src/b2qt-flashing-wizard/scriptwriter.cpp9
4 files changed, 49 insertions, 13 deletions
diff --git a/src/b2qt-flashing-wizard/actor.h b/src/b2qt-flashing-wizard/actor.h
index f310f0b..51e856d 100644
--- a/src/b2qt-flashing-wizard/actor.h
+++ b/src/b2qt-flashing-wizard/actor.h
@@ -35,6 +35,7 @@ public:
signals:
void progress(const QString &step);
void finished();
+ void failed(const QString &message);
void details(const QByteArray &);
};
diff --git a/src/b2qt-flashing-wizard/progress_page.cpp b/src/b2qt-flashing-wizard/progress_page.cpp
index 7986df9..01a8691 100644
--- a/src/b2qt-flashing-wizard/progress_page.cpp
+++ b/src/b2qt-flashing-wizard/progress_page.cpp
@@ -19,6 +19,8 @@
#include "progress_page.h"
#include "actor.h"
+#include <QApplication>
+#include <QClipboard>
#include <QDebug>
#include <QLabel>
#include <QLayout>
@@ -32,19 +34,25 @@ ProgressPage::ProgressPage(QWidget *parent)
, mActor(0)
, mFinished(false)
, mTextEdit(new QTextEdit(this))
+ , mToggleDetailsButton(new QPushButton(this))
+ , mCopyToClipboardButton(new QPushButton(this))
{
setTitle("Disk creation");
setSubTitle("Progress of writing the disk");
setLayout(new QVBoxLayout(this));
mProgress->setText(tr("Starting"));
layout()->addWidget(mProgress);
- QPushButton *button = new QPushButton(this);
- button->setText("Show details");
- layout()->addWidget(button);
+ mToggleDetailsButton->setText("Show details");
+ layout()->addWidget(mToggleDetailsButton);
layout()->addWidget(mTextEdit);
- QPushButton *copy = new QPushButton(this);
- copy->setText("Copy to clipboard");
- layout()->addWidget(copy);
+ mCopyToClipboardButton->setText("Copy to clipboard");
+ layout()->addWidget(mCopyToClipboardButton);
+
+ mTextEdit->hide();
+ mCopyToClipboardButton->hide();
+
+ connect(mToggleDetailsButton, &QPushButton::clicked, this, &ProgressPage::toggleDetails);
+ connect(mCopyToClipboardButton, &QPushButton::clicked, this, &ProgressPage::copyDetailsToClipboard);
}
ProgressPage::~ProgressPage()
@@ -74,11 +82,19 @@ void ProgressPage::finished()
wizard()->next(); // progress to next page automatically
}
+void ProgressPage::failed(const QString &message)
+{
+ mFinished = false;
+ emit completeChanged();
+ mProgress->setText(message);
+}
+
void ProgressPage::setActor(Actor *actor)
{
Q_ASSERT(actor);
mActor = 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::progress, this, &ProgressPage::progress);
}
@@ -88,3 +104,21 @@ void ProgressPage::addDetails(QByteArray newData)
newData.replace(0x08 /* backspace */, ' ');
mTextEdit->append(QString::fromLocal8Bit(newData));
}
+
+void ProgressPage::toggleDetails()
+{
+ if (mTextEdit->isHidden()) {
+ mTextEdit->show();
+ mCopyToClipboardButton->show();
+ mToggleDetailsButton->setText("Hide details");
+ } else {
+ mTextEdit->hide();
+ mCopyToClipboardButton->hide();
+ mToggleDetailsButton->setText("Show details");
+ }
+}
+
+void ProgressPage::copyDetailsToClipboard()
+{
+ QApplication::clipboard()->setText(mTextEdit->toPlainText());
+}
diff --git a/src/b2qt-flashing-wizard/progress_page.h b/src/b2qt-flashing-wizard/progress_page.h
index d0a3b79..f99f11b 100644
--- a/src/b2qt-flashing-wizard/progress_page.h
+++ b/src/b2qt-flashing-wizard/progress_page.h
@@ -24,6 +24,7 @@
class QLabel;
class Actor;
class QTextEdit;
+class QPushButton;
class ProgressPage : public QWizardPage
{
@@ -38,13 +39,18 @@ public:
public slots:
void progress(const QString &step);
void finished();
+ void failed(const QString &step);
void addDetails(QByteArray newData);
+ void toggleDetails();
+ void copyDetailsToClipboard();
private:
QLabel *mProgress;
Actor *mActor;
bool mFinished;
QTextEdit *mTextEdit;
+ QPushButton *mToggleDetailsButton;
+ QPushButton *mCopyToClipboardButton;
};
#endif // PROGRESS_PAGE_H
diff --git a/src/b2qt-flashing-wizard/scriptwriter.cpp b/src/b2qt-flashing-wizard/scriptwriter.cpp
index dfe554e..063c35a 100644
--- a/src/b2qt-flashing-wizard/scriptwriter.cpp
+++ b/src/b2qt-flashing-wizard/scriptwriter.cpp
@@ -118,13 +118,8 @@ void ScriptWriter::readOutput()
void ScriptWriter::processFinished(int exitCode, QProcess::ExitStatus exitStatus)
{
- if (exitStatus != QProcess::NormalExit) {
- qWarning("process crashed");
- return;
- }
-
- if (exitCode != 0) {
- qWarning("process failed");
+ if (exitStatus != QProcess::NormalExit || exitCode != 0) {
+ emit failed("Image creation failed");
return;
}
emit finished();