summaryrefslogtreecommitdiffstats
path: root/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/rbutilqt/gui/selectiveinstallwidget.cpp')
-rw-r--r--rbutil/rbutilqt/gui/selectiveinstallwidget.cpp64
1 files changed, 61 insertions, 3 deletions
diff --git a/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp b/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp
index 88b085e9b3..50017e65d4 100644
--- a/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp
+++ b/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp
@@ -40,6 +40,11 @@ SelectiveInstallWidget::SelectiveInstallWidget(QWidget* parent) : QWidget(parent
ui.themesCheckbox->setChecked(RbSettings::value(RbSettings::InstallThemes).toBool());
ui.gamefileCheckbox->setChecked(RbSettings::value(RbSettings::InstallGamefiles).toBool());
ui.voiceCheckbox->setChecked(RbSettings::value(RbSettings::InstallVoice).toBool());
+ ui.manualCheckbox->setChecked(RbSettings::value(RbSettings::InstallManual).toBool());
+
+ ui.manualCombobox->addItem("PDF", "pdf");
+ ui.manualCombobox->addItem("HTML (zip)", "zip");
+ ui.manualCombobox->addItem("HTML", "html");
// check if Rockbox is installed by looking after rockbox-info.txt.
// If installed uncheck bootloader installation.
@@ -201,6 +206,7 @@ void SelectiveInstallWidget::saveSettings(void)
RbSettings::setValue(RbSettings::InstallThemes, ui.themesCheckbox->isChecked());
RbSettings::setValue(RbSettings::InstallGamefiles, ui.gamefileCheckbox->isChecked());
RbSettings::setValue(RbSettings::InstallVoice, ui.voiceCheckbox->isChecked());
+ RbSettings::setValue(RbSettings::InstallManual, ui.manualCheckbox->isChecked());
RbSettings::setValue(RbSettings::VoiceLanguage, ui.voiceCombobox->currentData().toString());
}
@@ -244,7 +250,7 @@ void SelectiveInstallWidget::continueInstall(bool error)
if(error) {
LOG_ERROR() << "Last part returned error.";
m_logger->setFinished();
- m_installStage = 7;
+ m_installStage = 9;
}
m_installStage++;
switch(m_installStage) {
@@ -255,11 +261,12 @@ void SelectiveInstallWidget::continueInstall(bool error)
case 4: installThemes(); break;
case 5: installGamefiles(); break;
case 6: installVoicefile(); break;
- case 7: installBootloaderPost(); break;
+ case 7: installManual(); break;
+ case 8: installBootloaderPost(); break;
default: break;
}
- if(m_installStage > 6) {
+ if(m_installStage > 8) {
LOG_INFO() << "All install stages done.";
m_logger->setFinished();
if(m_blmethod != "none") {
@@ -548,6 +555,57 @@ void SelectiveInstallWidget::installVoicefile(void)
}
}
+void SelectiveInstallWidget::installManual(void)
+{
+ if(ui.manualCheckbox->isChecked() && ui.manualCheckbox->isEnabled()) {
+ LOG_INFO() << "installing Manual";
+ QString mantype = ui.manualCombobox->currentData().toString();
+
+ RockboxInfo installInfo(m_mountpoint);
+ QString manualurl;
+ QString logversion;
+ QString relversion = installInfo.release();
+ if(m_buildtype != SystemInfo::BuildRelease) {
+ // release is empty for non-release versions (i.e. daily / current)
+ logversion = installInfo.release();
+ }
+
+ manualurl = SystemInfo::value(SystemInfo::ManualUrl, m_buildtype).toString();
+ manualurl.replace("%RELVERSION%", m_versions[m_buildtype]);
+ QString model = SystemInfo::platformValue(SystemInfo::Manual, m_target).toString();
+ if(model.isEmpty())
+ model = m_target;
+ manualurl.replace("%MODEL%", model);
+
+ if(mantype == "pdf")
+ manualurl.replace("%FORMAT%", ".pdf");
+ else
+ manualurl.replace("%FORMAT%", "-html.zip");
+
+ // create new zip installer
+ if(m_zipinstaller != nullptr) m_zipinstaller->deleteLater();
+ m_zipinstaller = new ZipInstaller(this);
+ m_zipinstaller->setUrl(manualurl);
+ m_zipinstaller->setLogSection("Manual Voice (" + mantype + ")");
+ m_zipinstaller->setLogVersion(logversion);
+ m_zipinstaller->setMountPoint(m_mountpoint);
+ if(!RbSettings::value(RbSettings::CacheDisabled).toBool())
+ m_zipinstaller->setCache(true);
+ // if type is html extract it.
+ m_zipinstaller->setUnzip(mantype == "html");
+
+ connect(m_zipinstaller, SIGNAL(done(bool)), this, SLOT(continueInstall(bool)));
+ connect(m_zipinstaller, SIGNAL(logItem(QString, int)), m_logger, SLOT(addItem(QString, int)));
+ connect(m_zipinstaller, SIGNAL(logProgress(int, int)), m_logger, SLOT(setProgress(int, int)));
+ connect(m_logger, SIGNAL(aborted()), m_zipinstaller, SLOT(abort()));
+ m_zipinstaller->install();
+ }
+ else {
+ LOG_INFO() << "Manual install disabled.";
+ emit installSkipped(false);
+ }
+}
+
void SelectiveInstallWidget::customizeThemes(void)
{
if(m_themesinstaller == nullptr)