diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/b2qt-flashing-wizard/actor.h | 1 | ||||
-rw-r--r-- | src/b2qt-flashing-wizard/platform_page.cpp | 17 | ||||
-rw-r--r-- | src/b2qt-flashing-wizard/progress_page.cpp | 66 | ||||
-rw-r--r-- | src/b2qt-flashing-wizard/progress_page.h | 5 | ||||
-rw-r--r-- | src/b2qt-flashing-wizard/scriptwriter.cpp | 12 | ||||
-rw-r--r-- | src/b2qt-flashing-wizard/scriptwriter.h | 3 | ||||
-rw-r--r-- | src/doc/src/devices/qtee-supported-devices.qdoc | 7 | ||||
-rw-r--r-- | src/doc/src/devices/qtee-toradex-colibri-vf.qdoc | 7 | ||||
-rw-r--r-- | src/doc/src/qtee-changelog.qdoc | 25 | ||||
-rw-r--r-- | src/doc/src/qtee-index.qdoc | 16 |
10 files changed, 121 insertions, 38 deletions
diff --git a/src/b2qt-flashing-wizard/actor.h b/src/b2qt-flashing-wizard/actor.h index 51e856d..9af55fe 100644 --- a/src/b2qt-flashing-wizard/actor.h +++ b/src/b2qt-flashing-wizard/actor.h @@ -37,6 +37,7 @@ signals: void finished(); void failed(const QString &message); void details(const QByteArray &); + void errorDetails(const QByteArray &); }; #endif // ACTOR_H diff --git a/src/b2qt-flashing-wizard/platform_page.cpp b/src/b2qt-flashing-wizard/platform_page.cpp index 609a5aa..ea51966 100644 --- a/src/b2qt-flashing-wizard/platform_page.cpp +++ b/src/b2qt-flashing-wizard/platform_page.cpp @@ -66,6 +66,8 @@ PlatformPage::~PlatformPage() bool PlatformPage::isComplete() const { + if (mButtons.isEmpty() || buttonData().name.isEmpty()) + return false; return true; } @@ -125,16 +127,19 @@ void PlatformPage::initializePage() QDir dir(G_SDKDIR); foreach (const QString i, dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) { - if (!i.startsWith("Boot2Qt-")) - continue; - QDir dir2(dir.absoluteFilePath(i)); + + if (i.startsWith("Boot2Qt-")) { + // nothing + } else if (dir2.exists("Boot2Qt")) { + dir2 = dir2.absoluteFilePath("Boot2Qt"); + } else { + continue; + } + foreach (const QString j, dir2.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) { if (j.startsWith("emulator-")) continue; - QStringList token = j.split('-'); - QString os = token.takeLast(); - QString name = token.join("-"); loadDeployConfig(dir2.absoluteFilePath(j) + "/images/deploy.conf", i); } diff --git a/src/b2qt-flashing-wizard/progress_page.cpp b/src/b2qt-flashing-wizard/progress_page.cpp index 567d986..e9203b3 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); } @@ -101,26 +111,54 @@ void ProgressPage::setActor(Actor *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::errorDetails, this, &ProgressPage::addErrorDetails); connect(actor, &Actor::progress, this, &ProgressPage::progress); } +static void commonDetailReplacements(QByteArray &data) +{ + data.replace(0x08 /* backspace */, ' '); +} + void ProgressPage::addDetails(QByteArray newData) { - newData.replace(0x08 /* backspace */, ' '); - mTextEdit->append(QString::fromLocal8Bit(newData)); + commonDetailReplacements(newData); + mTextEdit->insertPlainText(QString::fromLocal8Bit(newData)); } -void ProgressPage::toggleDetails() +void ProgressPage::addErrorDetails(QByteArray newData) { - if (mTextEdit->isHidden()) { - mTextEdit->show(); - mCopyToClipboardButton->show(); - mToggleDetailsButton->setText(tr("Hide details")); - } else { - mTextEdit->hide(); - mCopyToClipboardButton->hide(); - mToggleDetailsButton->setText(tr("Show details")); + if (newData.startsWith('+')) { + addDetails(newData); + return; } + commonDetailReplacements(newData); + QColor c = mTextEdit->textColor(); + mTextEdit->setTextColor(Qt::red); + mTextEdit->insertPlainText(QString::fromLocal8Bit(newData)); + mTextEdit->setTextColor(c); +} + +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()) + 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..393619d 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,9 @@ public slots: void finished(); void failed(const QString &step); void addDetails(QByteArray newData); + void addErrorDetails(QByteArray newData); + void showDetails(); + void hideDetails(); void toggleDetails(); void copyDetailsToClipboard(); @@ -51,6 +55,7 @@ private: QTextEdit *mTextEdit; QPushButton *mToggleDetailsButton; QPushButton *mCopyToClipboardButton; + QProgressBar *mProgressBar; }; #endif // PROGRESS_PAGE_H diff --git a/src/b2qt-flashing-wizard/scriptwriter.cpp b/src/b2qt-flashing-wizard/scriptwriter.cpp index 594aecc..4e38bdd 100644 --- a/src/b2qt-flashing-wizard/scriptwriter.cpp +++ b/src/b2qt-flashing-wizard/scriptwriter.cpp @@ -34,7 +34,6 @@ ScriptWriter::ScriptWriter(QObject *parent) , mDebug(false) , mRoot(false) { - mProcess.setProcessChannelMode(QProcess::MergedChannels); mDebug = qEnvironmentVariableIsSet("DEBUG"); } @@ -81,7 +80,8 @@ bool ScriptWriter::ready(QString &error) const void ScriptWriter::start() { - connect(&mProcess, &QProcess::readyReadStandardOutput, this, &ScriptWriter::readOutput); + connect(&mProcess, &QProcess::readyReadStandardOutput, this, &ScriptWriter::readStandardOutput); + connect(&mProcess, &QProcess::readyReadStandardError, this, &ScriptWriter::readStandardError); connect(&mProcess, (void (QProcess::*)(QProcess::ProcessError))&QProcess::error, this, &ScriptWriter::processError); connect(&mProcess, (void (QProcess::*)(int, QProcess::ExitStatus))&QProcess::finished, this, &ScriptWriter::processFinished); @@ -99,7 +99,7 @@ void ScriptWriter::start() qFatal("Failed to start script"); } -void ScriptWriter::readOutput() +void ScriptWriter::readStandardOutput() { QByteArray ba = mProcess.readAllStandardOutput(); QList<QByteArray> baList = ba.split('\n'); @@ -112,6 +112,12 @@ void ScriptWriter::readOutput() emit details(ba); } +void ScriptWriter::readStandardError() +{ + QByteArray ba = mProcess.readAllStandardError(); + emit errorDetails(ba); +} + void ScriptWriter::processFinished(int exitCode, QProcess::ExitStatus exitStatus) { if (exitStatus != QProcess::NormalExit || exitCode != 0) { diff --git a/src/b2qt-flashing-wizard/scriptwriter.h b/src/b2qt-flashing-wizard/scriptwriter.h index 68a7684..a984577 100644 --- a/src/b2qt-flashing-wizard/scriptwriter.h +++ b/src/b2qt-flashing-wizard/scriptwriter.h @@ -39,7 +39,8 @@ public: void setRootFlag(bool); private slots: - void readOutput(); + void readStandardOutput(); + void readStandardError(); void processFinished(int, QProcess::ExitStatus); void processError(QProcess::ProcessError); diff --git a/src/doc/src/devices/qtee-supported-devices.qdoc b/src/doc/src/devices/qtee-supported-devices.qdoc index 1b4cd4f..c11fd73 100644 --- a/src/doc/src/devices/qtee-supported-devices.qdoc +++ b/src/doc/src/devices/qtee-supported-devices.qdoc @@ -60,9 +60,12 @@ \list \li 256 MB of RAM \li 500 MHz CPU, 1 GHz preferred for 60-FPS velvet-smooth UI - \li OpenGL ES 2.0 support + \li OpenGL ES 2.0 support * \endlist + * On GPU-less hardware, \l {Qt Quick 2D Renderer} can replace the + OpenGL ES 2.0 requirement (with some limitations on graphics capabilities). + \section1 Supported Device Groups The reference devices are divided into three groups, based on level @@ -186,7 +189,7 @@ \li HDMI \li HW Accelerated \br Video Playback \li Virtual Keyboard - \li Qt WiFi Module + \li B2Qt WiFi Module \li B2Qt Utils Module \li OpenGL ES 2.0 \li Qt Quick \br 2D Renderer diff --git a/src/doc/src/devices/qtee-toradex-colibri-vf.qdoc b/src/doc/src/devices/qtee-toradex-colibri-vf.qdoc index 5c01753..5753256 100644 --- a/src/doc/src/devices/qtee-toradex-colibri-vf.qdoc +++ b/src/doc/src/devices/qtee-toradex-colibri-vf.qdoc @@ -56,15 +56,14 @@ sudo Boot2Qt-4.x/colibri-vf-eLinux/images/deploy.sh /dev/<device_name> \endcode - By default, the Toradex Colibri-VF devices boot from their internal eMMC. In order to boot from + By default, the Toradex Colibri VF devices boot from their internal NAND memory. In order to boot from an external SD card, the U-Boot needs to be modified. Connect a serial cable to the device and enter into the U-Boot environment by pressing any key before the autoboot. Enter following commands into U-Boot: \badcode - set bootcmd 'run sdboot; run ubiboot; run nfsboot;' - set sdboot 'run setup; setenv bootargs ${defargs} ${mmcargs} ${mtdparts} ${setupargs} ${vidargs}; echo Booting from MMC/SD card...; mmc part 0; fatload mmc 0:1 ${loadaddr} zImage && bootz' - save + run setupdate + run update_uboot \endcode Reset or power cycle the device to continue. diff --git a/src/doc/src/qtee-changelog.qdoc b/src/doc/src/qtee-changelog.qdoc index 8f90948..bfaa919 100644 --- a/src/doc/src/qtee-changelog.qdoc +++ b/src/doc/src/qtee-changelog.qdoc @@ -23,9 +23,32 @@ \previouspage qtee-customization.html \nextpage qtee-troubleshooting.html + \section1 Boot to Qt 4.2.0 + \list + \li Release date: Jun 02, 2015 + \endlist + + \section2 Changes + + \b{New Features}: + \list + \li \B2Q stack was updated to use Qt 5.4.2 on embedded Android + and Linux. + \li \l {Qt Virtual Keyboard} was updated to version 1.3.0. + \li Enabled Chinese (Pinyin), Korean (Hangul) and Japanese (OpenWnn) + input methods for Qt Virtual Keyboard. + \endlist + + \b {Improvements}: + \list + \li Boot to Qt Flashing Wizard: Improved error messages for flashing failures. + \li Toradex Colibri VF and Apalis iMX6 images updated to use the latest + release (v2.3). + \endlist + \section1 \B2Q 4.1.0 \list - \li Release date: Feb 19, 2015 + \li Release date: Feb 24, 2015 \endlist \section2 Changes diff --git a/src/doc/src/qtee-index.qdoc b/src/doc/src/qtee-index.qdoc index 7deac5e..64635d7 100644 --- a/src/doc/src/qtee-index.qdoc +++ b/src/doc/src/qtee-index.qdoc @@ -99,24 +99,26 @@ For overview about Qt libraries see the \l {Qt reference documentation}. - \section1 Additional Embedded Libraries and Value-Adds + \section1 Additional Embedded Libraries and Value-Add Components In addition to the Boot to Qt stack and a comprehensive development - environment, \SDK comes with a set of components that speed up the creation - of responsive embedded applications with modern UI: + environment, \SDK comes with a set of components that bring new features and + speed up the creation of high-performing, modern UI embedded applications: \list \li \l {Qt Virtual Keyboard} - complete virtual keyboard solution with - word-prediction and multiple languages support. + word-prediction and multiple languages supported. \li \l {Qt Quick Enterprise Controls} - a set of advanced UI controls with an industry-specific look-and-feel. - \li \l {Qt Quick Compiler} - a QML complier that helps in securing the - code assets, and enables improved load time. + \li \l {Qt Quick Compiler} - enables compiling .qml source files into + application binaries, improving load times and security for code + assets. \li \l {Qt Charts} - UI Components for displaying visually pleasing charts, driven by static or dynamic data models. \li \l {Qt Data Visualization} - UI Components for creating stunning 3D data visualizations. - \li \l {Qt Quick 2D Renderer} - Qt Quick renderer for GPU-less devices. + \li \l {Qt Quick 2D Renderer} - enables Qt Quick UIs on GPU-less + devices. \endlist \section1 About the Development Environment |