summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/b2qt-flashing-wizard/progress_page.cpp43
-rw-r--r--src/b2qt-flashing-wizard/progress_page.h4
2 files changed, 35 insertions, 12 deletions
diff --git a/src/b2qt-flashing-wizard/progress_page.cpp b/src/b2qt-flashing-wizard/progress_page.cpp
index 567d986..d518b44 100644
--- a/src/b2qt-flashing-wizard/progress_page.cpp
+++ b/src/b2qt-flashing-wizard/progress_page.cpp
@@ -26,6 +26,7 @@
#include <QLayout>
#include <QProgressBar>
#include <QPushButton>
+#include <QScrollBar>
#include <QTextEdit>
#include <QTimer>
@@ -37,13 +38,14 @@ ProgressPage::ProgressPage(QWidget *parent)
, mTextEdit(new QTextEdit(this))
, mToggleDetailsButton(new QPushButton(this))
, mCopyToClipboardButton(new QPushButton(this))
+ , mProgressBar(0)
{
setTitle(tr("Disk Creation"));
setSubTitle(tr("Writing the hardware platform image to the disk"));
setLayout(new QVBoxLayout(this));
- QProgressBar *progressBar = new QProgressBar(this);
- progressBar->setRange(0, 0);
- layout()->addWidget(progressBar);
+ mProgressBar = new QProgressBar(this);
+ mProgressBar->setRange(0, 0);
+ layout()->addWidget(mProgressBar);
mProgress->setWordWrap(true);
mProgress->setText(tr("Preparing the disk device..."));
layout()->addWidget(mProgress);
@@ -91,6 +93,14 @@ void ProgressPage::failed(const QString &message)
{
mFinished = false;
emit completeChanged();
+ showDetails();
+ mProgressBar->setEnabled(false);
+ mProgressBar->setRange(0, 100);
+ mProgressBar->setValue(100);
+ mProgressBar->setFormat("");
+
+ // Scroll to bottom
+ mTextEdit->verticalScrollBar()->setValue(mTextEdit->verticalScrollBar()->maximum());
mProgress->setText(message);
}
@@ -110,17 +120,26 @@ void ProgressPage::addDetails(QByteArray newData)
mTextEdit->append(QString::fromLocal8Bit(newData));
}
+void ProgressPage::showDetails()
+{
+ mTextEdit->show();
+ mCopyToClipboardButton->show();
+ mToggleDetailsButton->setText(tr("Hide details"));
+}
+
+void ProgressPage::hideDetails()
+{
+ mTextEdit->hide();
+ mCopyToClipboardButton->hide();
+ mToggleDetailsButton->setText(tr("Show details"));
+}
+
void ProgressPage::toggleDetails()
{
- if (mTextEdit->isHidden()) {
- mTextEdit->show();
- mCopyToClipboardButton->show();
- mToggleDetailsButton->setText(tr("Hide details"));
- } else {
- mTextEdit->hide();
- mCopyToClipboardButton->hide();
- mToggleDetailsButton->setText(tr("Show details"));
- }
+ if (mTextEdit->isHidden())
+ showDetails();
+ else
+ hideDetails();
}
void ProgressPage::copyDetailsToClipboard()
diff --git a/src/b2qt-flashing-wizard/progress_page.h b/src/b2qt-flashing-wizard/progress_page.h
index f99f11b..c2e4c4c 100644
--- a/src/b2qt-flashing-wizard/progress_page.h
+++ b/src/b2qt-flashing-wizard/progress_page.h
@@ -25,6 +25,7 @@ class QLabel;
class Actor;
class QTextEdit;
class QPushButton;
+class QProgressBar;
class ProgressPage : public QWizardPage
{
@@ -41,6 +42,8 @@ public slots:
void finished();
void failed(const QString &step);
void addDetails(QByteArray newData);
+ void showDetails();
+ void hideDetails();
void toggleDetails();
void copyDetailsToClipboard();
@@ -51,6 +54,7 @@ private:
QTextEdit *mTextEdit;
QPushButton *mToggleDetailsButton;
QPushButton *mCopyToClipboardButton;
+ QProgressBar *mProgressBar;
};
#endif // PROGRESS_PAGE_H