summaryrefslogtreecommitdiff
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
40 ui.themesCheckbox->setChecked(RbSettings::value(RbSettings::InstallThemes).toBool()); 40 ui.themesCheckbox->setChecked(RbSettings::value(RbSettings::InstallThemes).toBool());
41 ui.gamefileCheckbox->setChecked(RbSettings::value(RbSettings::InstallGamefiles).toBool()); 41 ui.gamefileCheckbox->setChecked(RbSettings::value(RbSettings::InstallGamefiles).toBool());
42 ui.voiceCheckbox->setChecked(RbSettings::value(RbSettings::InstallVoice).toBool()); 42 ui.voiceCheckbox->setChecked(RbSettings::value(RbSettings::InstallVoice).toBool());
43 ui.manualCheckbox->setChecked(RbSettings::value(RbSettings::InstallManual).toBool());
44
45 ui.manualCombobox->addItem("PDF", "pdf");
46 ui.manualCombobox->addItem("HTML (zip)", "zip");
47 ui.manualCombobox->addItem("HTML", "html");
43 48
44 // check if Rockbox is installed by looking after rockbox-info.txt. 49 // check if Rockbox is installed by looking after rockbox-info.txt.
45 // If installed uncheck bootloader installation. 50 // If installed uncheck bootloader installation.
@@ -201,6 +206,7 @@ void SelectiveInstallWidget::saveSettings(void)
201 RbSettings::setValue(RbSettings::InstallThemes, ui.themesCheckbox->isChecked()); 206 RbSettings::setValue(RbSettings::InstallThemes, ui.themesCheckbox->isChecked());
202 RbSettings::setValue(RbSettings::InstallGamefiles, ui.gamefileCheckbox->isChecked()); 207 RbSettings::setValue(RbSettings::InstallGamefiles, ui.gamefileCheckbox->isChecked());
203 RbSettings::setValue(RbSettings::InstallVoice, ui.voiceCheckbox->isChecked()); 208 RbSettings::setValue(RbSettings::InstallVoice, ui.voiceCheckbox->isChecked());
209 RbSettings::setValue(RbSettings::InstallManual, ui.manualCheckbox->isChecked());
204 RbSettings::setValue(RbSettings::VoiceLanguage, ui.voiceCombobox->currentData().toString()); 210 RbSettings::setValue(RbSettings::VoiceLanguage, ui.voiceCombobox->currentData().toString());
205} 211}
206 212
@@ -244,7 +250,7 @@ void SelectiveInstallWidget::continueInstall(bool error)
244 if(error) { 250 if(error) {
245 LOG_ERROR() << "Last part returned error."; 251 LOG_ERROR() << "Last part returned error.";
246 m_logger->setFinished(); 252 m_logger->setFinished();
247 m_installStage = 7; 253 m_installStage = 9;
248 } 254 }
249 m_installStage++; 255 m_installStage++;
250 switch(m_installStage) { 256 switch(m_installStage) {
@@ -255,11 +261,12 @@ void SelectiveInstallWidget::continueInstall(bool error)
255 case 4: installThemes(); break; 261 case 4: installThemes(); break;
256 case 5: installGamefiles(); break; 262 case 5: installGamefiles(); break;
257 case 6: installVoicefile(); break; 263 case 6: installVoicefile(); break;
258 case 7: installBootloaderPost(); break; 264 case 7: installManual(); break;
265 case 8: installBootloaderPost(); break;
259 default: break; 266 default: break;
260 } 267 }
261 268
262 if(m_installStage > 6) { 269 if(m_installStage > 8) {
263 LOG_INFO() << "All install stages done."; 270 LOG_INFO() << "All install stages done.";
264 m_logger->setFinished(); 271 m_logger->setFinished();
265 if(m_blmethod != "none") { 272 if(m_blmethod != "none") {
@@ -548,6 +555,57 @@ void SelectiveInstallWidget::installVoicefile(void)
548 } 555 }
549} 556}
550 557
558void SelectiveInstallWidget::installManual(void)
559{
560 if(ui.manualCheckbox->isChecked() && ui.manualCheckbox->isEnabled()) {
561 LOG_INFO() << "installing Manual";
562 QString mantype = ui.manualCombobox->currentData().toString();
563
564 RockboxInfo installInfo(m_mountpoint);
565 QString manualurl;
566 QString logversion;
567 QString relversion = installInfo.release();
568 if(m_buildtype != SystemInfo::BuildRelease) {
569 // release is empty for non-release versions (i.e. daily / current)
570 logversion = installInfo.release();
571 }
572
573 manualurl = SystemInfo::value(SystemInfo::ManualUrl, m_buildtype).toString();
574 manualurl.replace("%RELVERSION%", m_versions[m_buildtype]);
575 QString model = SystemInfo::platformValue(SystemInfo::Manual, m_target).toString();
576 if(model.isEmpty())
577 model = m_target;
578 manualurl.replace("%MODEL%", model);
579
580 if(mantype == "pdf")
581 manualurl.replace("%FORMAT%", ".pdf");
582 else
583 manualurl.replace("%FORMAT%", "-html.zip");
584
585 // create new zip installer
586 if(m_zipinstaller != nullptr) m_zipinstaller->deleteLater();
587 m_zipinstaller = new ZipInstaller(this);
588 m_zipinstaller->setUrl(manualurl);
589 m_zipinstaller->setLogSection("Manual Voice (" + mantype + ")");
590 m_zipinstaller->setLogVersion(logversion);
591 m_zipinstaller->setMountPoint(m_mountpoint);
592 if(!RbSettings::value(RbSettings::CacheDisabled).toBool())
593 m_zipinstaller->setCache(true);
594 // if type is html extract it.
595 m_zipinstaller->setUnzip(mantype == "html");
596
597 connect(m_zipinstaller, SIGNAL(done(bool)), this, SLOT(continueInstall(bool)));
598 connect(m_zipinstaller, SIGNAL(logItem(QString, int)), m_logger, SLOT(addItem(QString, int)));
599 connect(m_zipinstaller, SIGNAL(logProgress(int, int)), m_logger, SLOT(setProgress(int, int)));
600 connect(m_logger, SIGNAL(aborted()), m_zipinstaller, SLOT(abort()));
601 m_zipinstaller->install();
602 }
603 else {
604 LOG_INFO() << "Manual install disabled.";
605 emit installSkipped(false);
606 }
607}
608
551void SelectiveInstallWidget::customizeThemes(void) 609void SelectiveInstallWidget::customizeThemes(void)
552{ 610{
553 if(m_themesinstaller == nullptr) 611 if(m_themesinstaller == nullptr)