summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/b2qt-flashing-wizard/progress_page.cpp38
-rw-r--r--src/b2qt-flashing-wizard/progress_page.h5
2 files changed, 37 insertions, 6 deletions
diff --git a/src/b2qt-flashing-wizard/progress_page.cpp b/src/b2qt-flashing-wizard/progress_page.cpp
index 7986df9..9c87d2d 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()
@@ -88,3 +96,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..3169e3f 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
{
@@ -39,12 +40,16 @@ public slots:
void progress(const QString &step);
void finished();
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