diff options
Diffstat (limited to 'rbutil/rbutilqt/gui/selectiveinstallwidget.cpp')
-rw-r--r-- | rbutil/rbutilqt/gui/selectiveinstallwidget.cpp | 64 |
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 | ||
558 | void 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 | |||
551 | void SelectiveInstallWidget::customizeThemes(void) | 609 | void SelectiveInstallWidget::customizeThemes(void) |
552 | { | 610 | { |
553 | if(m_themesinstaller == nullptr) | 611 | if(m_themesinstaller == nullptr) |