diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/b2qt-flashing-wizard/actor.h | 1 | ||||
-rw-r--r-- | src/b2qt-flashing-wizard/progress_page.cpp | 46 | ||||
-rw-r--r-- | src/b2qt-flashing-wizard/progress_page.h | 6 | ||||
-rw-r--r-- | src/b2qt-flashing-wizard/scriptwriter.cpp | 9 |
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(); |