summaryrefslogtreecommitdiffstats
path: root/rbutil/rbutilqt/rbutilqt.cpp
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2012-06-26 18:41:25 +0200
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2012-06-26 20:11:41 +0200
commitfa17cb904c270e8227c0446bee4b51789eb5bb8c (patch)
tree97069aa4d4062ed710442cb119a10cae6d2e1351 /rbutil/rbutilqt/rbutilqt.cpp
parent9b783bc1050d9288e5392cb1eb90dcde2401f8bb (diff)
downloadrockbox-fa17cb904c270e8227c0446bee4b51789eb5bb8c.tar.gz
rockbox-fa17cb904c270e8227c0446bee4b51789eb5bb8c.tar.bz2
rockbox-fa17cb904c270e8227c0446bee4b51789eb5bb8c.zip
Rework Installation and remove Quick Start tab.
The Quick Start tab turned out to be used a lot but not explaining what its functionality actually does, leading to various amount of confusion. The Quick Start tab and its functionality have been completely removed. As replacement the reworked Installation tab now includes both the entries from the old Installation tab (Bootloader and Rockbox) and the Extras tab (Fonts, Themes, Game files). Each of the items can be enabled or disabled individually, and the selection is saved in the configuration. The only exception is the bootloader option, since installing the bootloader is only needed once. To help with this the bootloader checkbox is automatically enabled if no Rockbox installation is found, and disabled if one is found. While it would be nicer to check if the bootloader is actually installed this is not possible for various players so the implementation simply relies on a Rockbox installation. This should also make it much easier to update an existing installation. Current limitations: - the selected themes are not saved. - it is not possible to detect if the target has the plugins that require additional game files prior to installation. Thus the "Game files" option is available for all targets but simply skipped if the plugins are not found. Change-Id: I1929bb7045e382fcbba431cca057d3121607d3a9
Diffstat (limited to 'rbutil/rbutilqt/rbutilqt.cpp')
-rw-r--r--rbutil/rbutilqt/rbutilqt.cpp552
1 files changed, 9 insertions, 543 deletions
diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp
index 575859fd46..b1065936f7 100644
--- a/rbutil/rbutilqt/rbutilqt.cpp
+++ b/rbutil/rbutilqt/rbutilqt.cpp
@@ -23,7 +23,6 @@
#include "ui_rbutilqtfrm.h"
#include "ui_aboutbox.h"
#include "configure.h"
-#include "installwindow.h"
#include "installtalkwindow.h"
#include "createvoicewindow.h"
#include "httpget.h"
@@ -40,6 +39,7 @@
#include "ziputil.h"
#include "manualwidget.h"
#include "infowidget.h"
+#include "selectiveinstallwidget.h"
#include "backupdialog.h"
#include "progressloggerinterface.h"
@@ -122,18 +122,19 @@ RbUtilQt::RbUtilQt(QWidget *parent) : QMainWindow(parent)
manual = new ManualWidget(this);
mantablayout->addWidget(manual);
+ // selective "install" tab.
+ QGridLayout *selectivetablayout = new QGridLayout(this);
+ ui.selective->setLayout(selectivetablayout);
+ selectiveinstallwidget = new SelectiveInstallWidget(this);
+ selectivetablayout->addWidget(selectiveinstallwidget);
+ connect(ui.buttonChangeDevice, SIGNAL(clicked()), selectiveinstallwidget, SLOT(saveSettings()));
+
// info tab
QGridLayout *infotablayout = new QGridLayout(this);
ui.info->setLayout(infotablayout);
info = new InfoWidget(this);
infotablayout->addWidget(info);
- // disable quick install until version info is available
- ui.buttonSmall->setEnabled(false);
- ui.buttonComplete->setEnabled(false);
- ui.actionSmall_Installation->setEnabled(false);
- ui.actionComplete_Installation->setEnabled(false);
-
connect(ui.tabWidget, SIGNAL(currentChanged(int)), this, SLOT(updateTabs(int)));
connect(ui.actionAbout_Qt, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
connect(ui.action_About, SIGNAL(triggered()), this, SLOT(about()));
@@ -141,28 +142,14 @@ RbUtilQt::RbUtilQt(QWidget *parent) : QMainWindow(parent)
connect(ui.action_Configure, SIGNAL(triggered()), this, SLOT(configDialog()));
connect(ui.actionE_xit, SIGNAL(triggered()), this, SLOT(shutdown()));
connect(ui.buttonChangeDevice, SIGNAL(clicked()), this, SLOT(configDialog()));
- connect(ui.buttonRockbox, SIGNAL(clicked()), this, SLOT(installBtn()));
- connect(ui.buttonBootloader, SIGNAL(clicked()), this, SLOT(installBootloaderBtn()));
- connect(ui.buttonFonts, SIGNAL(clicked()), this, SLOT(installFontsBtn()));
- connect(ui.buttonGames, SIGNAL(clicked()), this, SLOT(installDoomBtn()));
connect(ui.buttonTalk, SIGNAL(clicked()), this, SLOT(createTalkFiles()));
connect(ui.buttonCreateVoice, SIGNAL(clicked()), this, SLOT(createVoiceFile()));
connect(ui.buttonVoice, SIGNAL(clicked()), this, SLOT(installVoice()));
- connect(ui.buttonThemes, SIGNAL(clicked()), this, SLOT(installThemes()));
connect(ui.buttonRemoveRockbox, SIGNAL(clicked()), this, SLOT(uninstall()));
connect(ui.buttonRemoveBootloader, SIGNAL(clicked()), this, SLOT(uninstallBootloader()));
- connect(ui.buttonSmall, SIGNAL(clicked()), this, SLOT(smallInstall()));
- connect(ui.buttonComplete, SIGNAL(clicked()), this, SLOT(completeInstall()));
connect(ui.buttonBackup, SIGNAL(clicked()), this, SLOT(backup()));
// actions accessible from the menu
- connect(ui.actionComplete_Installation, SIGNAL(triggered()), this, SLOT(completeInstall()));
- connect(ui.actionSmall_Installation, SIGNAL(triggered()), this, SLOT(smallInstall()));
- connect(ui.actionInstall_Bootloader, SIGNAL(triggered()), this, SLOT(installBootloaderBtn()));
- connect(ui.actionInstall_Rockbox, SIGNAL(triggered()), this, SLOT(installBtn()));
- connect(ui.actionFonts_Package, SIGNAL(triggered()), this, SLOT(installFontsBtn()));
- connect(ui.actionInstall_Themes, SIGNAL(triggered()), this, SLOT(installThemes()));
- connect(ui.actionInstall_Game_Files, SIGNAL(triggered()), this, SLOT(installDoomBtn()));
connect(ui.actionInstall_Voice_File, SIGNAL(triggered()), this, SLOT(installVoice()));
connect(ui.actionCreate_Voice_File, SIGNAL(triggered()), this, SLOT(createVoiceFile()));
connect(ui.actionCreate_Talk_Files, SIGNAL(triggered()), this, SLOT(createTalkFiles()));
@@ -336,6 +323,7 @@ void RbUtilQt::updateSettings()
"now open to allow you to correct the problem."));
configDialog();
}
+ selectiveinstallwidget->updateVersion();
}
@@ -347,9 +335,6 @@ void RbUtilQt::updateDevice()
/* Enable bootloader installation, if possible */
bool bootloaderInstallable =
SystemInfo::value(SystemInfo::CurBootloaderMethod) != "none";
- ui.buttonBootloader->setEnabled(bootloaderInstallable);
- ui.labelBootloader->setEnabled(bootloaderInstallable);
- ui.actionInstall_Bootloader->setEnabled(bootloaderInstallable);
/* Enable bootloader uninstallation, if possible */
bool bootloaderUninstallable = bootloaderInstallable &&
@@ -387,12 +372,6 @@ void RbUtilQt::updateDevice()
pm = pm.scaledToHeight(QFontMetrics(QApplication::font()).height() * 3);
ui.labelPlayerPic->setPixmap(pm);
- // hide quickstart buttons if no release available
- bool installable = !ServerInfo::value(ServerInfo::CurReleaseVersion).toString().isEmpty();
- ui.buttonSmall->setEnabled(installable);
- ui.buttonComplete->setEnabled(installable);
- ui.actionSmall_Installation->setEnabled(installable);
- ui.actionComplete_Installation->setEnabled(installable);
}
@@ -400,131 +379,9 @@ void RbUtilQt::backup(void)
{
backupdialog = new BackupDialog(this);
backupdialog->show();
-}
-
-
-void RbUtilQt::completeInstall()
-{
- if(chkConfig(this)) return;
- if(QMessageBox::question(this, tr("Confirm Installation"),
- tr("Do you really want to perform a complete installation?\n\n"
- "This will install Rockbox %1. To install the most recent "
- "development build available press \"Cancel\" and "
- "use the \"Installation\" tab.")
- .arg(ServerInfo::value(ServerInfo::CurReleaseVersion).toString()),
- QMessageBox::Ok | QMessageBox::Cancel) != QMessageBox::Ok)
- return;
- // create logger
- logger = new ProgressLoggerGui(this);
- logger->show();
-
- if(smallInstallInner())
- return;
- logger->setRunning();
- // Fonts
- m_error = false;
- m_installed = false;
- if(!installFontsAuto())
- return;
- else
- {
- // wait for installation finished
- while(!m_installed)
- QApplication::processEvents();
- }
- if(m_error) return;
- logger->setRunning();
-
- // Doom
- if(hasDoom())
- {
- m_error = false;
- m_installed = false;
- if(!installDoomAuto())
- return;
- else
- {
- // wait for installation finished
- while(!m_installed)
- QApplication::processEvents();
- }
- if(m_error) return;
- }
-
- // theme
- // this is a window
- // it has its own logger window,so close our.
- logger->close();
- installThemes();
}
-void RbUtilQt::smallInstall()
-{
- if(chkConfig(this)) return;
- if(QMessageBox::question(this, tr("Confirm Installation"),
- tr("Do you really want to perform a minimal installation? "
- "A minimal installation will contain only the absolutely "
- "necessary parts to run Rockbox.\n\n"
- "This will install Rockbox %1. To install the most recent "
- "development build available press \"Cancel\" and "
- "use the \"Installation\" tab.")
- .arg(ServerInfo::value(ServerInfo::CurReleaseVersion).toString()),
- QMessageBox::Ok | QMessageBox::Cancel) != QMessageBox::Ok)
- return;
-
- // create logger
- logger = new ProgressLoggerGui(this);
- logger->show();
-
- smallInstallInner();
-}
-
-bool RbUtilQt::smallInstallInner()
-{
- QString mountpoint = RbSettings::value(RbSettings::Mountpoint).toString();
- // show dialog with error if mount point is wrong
- if(!QFileInfo(mountpoint).isDir()) {
- logger->addItem(tr("Mount point is wrong!"),LOGERROR);
- logger->setFinished();
- return true;
- }
- // Bootloader
- if(SystemInfo::value(SystemInfo::CurBootloaderMethod) != "none")
- {
- m_error = false;
- m_installed = false;
- m_auto = true;
- if(!installBootloaderAuto()) {
- logger->setFinished();
- return true;
- }
- else
- {
- // wait for boot loader installation finished
- while(!m_installed)
- QApplication::processEvents();
- }
- m_auto = false;
- if(m_error) return true;
- logger->setRunning();
- }
-
- // Rockbox
- m_error = false;
- m_installed = false;
- if(!installAuto())
- return true;
- else
- {
- // wait for installation finished
- while(!m_installed)
- QApplication::processEvents();
- }
-
- installBootloaderPost(false);
- return false;
-}
void RbUtilQt::installdone(bool error)
{
@@ -533,339 +390,6 @@ void RbUtilQt::installdone(bool error)
m_error = error;
}
-void RbUtilQt::installBtn()
-{
- if(chkConfig(this)) return;
- install();
-}
-
-bool RbUtilQt::installAuto()
-{
- QString file = ServerInfo::value(ServerInfo::CurReleaseUrl).toString();
-
- // check installed Version and Target
- QString warning = Utils::checkEnvironment(false);
- if(!warning.isEmpty())
- {
- if(QMessageBox::warning(this, tr("Really continue?"), warning,
- QMessageBox::Ok | QMessageBox::Abort, QMessageBox::Abort)
- == QMessageBox::Abort)
- {
- logger->addItem(tr("Aborted!"), LOGERROR);
- logger->setFinished();
- return false;
- }
- }
-
- // check version
- RockboxInfo rbinfo(RbSettings::value(RbSettings::Mountpoint).toString());
- if(rbinfo.version() != "")
- {
- if(QMessageBox::question(this, tr("Installed Rockbox detected"),
- tr("Rockbox installation detected. Do you want to backup first?"),
- QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes)
- {
- bool result;
- logger->addItem(tr("Starting backup..."),LOGINFO);
- QString backupName = RbSettings::value(RbSettings::Mountpoint).toString()
- + "/.backup/rockbox-backup-" + rbinfo.version() + ".zip";
-
- //! create dir, if it doesnt exist
- QFileInfo backupFile(backupName);
- if(!QDir(backupFile.path()).exists())
- {
- QDir a;
- a.mkpath(backupFile.path());
- }
-
- logger->addItem(tr("Beginning Backup..."),LOGINFO);
- QCoreApplication::processEvents();
-
- //! create backup
- ZipUtil zip(this);
- connect(&zip, SIGNAL(logProgress(int, int)), logger, SLOT(setProgress(int, int)));
- connect(&zip, SIGNAL(logItem(QString, int)), logger, SLOT(addItem(QString, int)));
- zip.open(backupName, QuaZip::mdCreate);
- QString mp = RbSettings::value(RbSettings::Mountpoint).toString();
- QString folder = mp + "/.rockbox";
- result = zip.appendDirToArchive(folder, mp);
- zip.close();
- if(result)
- {
- logger->addItem(tr("Backup successful"),LOGOK);
- }
- else
- {
- logger->addItem(tr("Backup failed!"),LOGERROR);
- logger->setFinished();
- return false;
- }
- }
- }
-
- //! install current build
- ZipInstaller* installer = new ZipInstaller(this);
- installer->setUrl(file);
- installer->setLogSection("Rockbox (Base)");
- installer->setLogVersion(ServerInfo::value(ServerInfo::CurReleaseVersion).toString());
- if(!RbSettings::value(RbSettings::CacheDisabled).toBool())
- installer->setCache(true);
- installer->setMountPoint(RbSettings::value(RbSettings::Mountpoint).toString());
-
- connect(installer, SIGNAL(done(bool)), this, SLOT(installdone(bool)));
- connect(installer, SIGNAL(logItem(QString, int)), logger, SLOT(addItem(QString, int)));
- connect(installer, SIGNAL(logProgress(int, int)), logger, SLOT(setProgress(int, int)));
- connect(installer, SIGNAL(done(bool)), logger, SLOT(setFinished()));
- connect(logger, SIGNAL(aborted()), installer, SLOT(abort()));
- installer->install();
- return true;
-}
-
-
-void RbUtilQt::install()
-{
- InstallWindow *installWindow = new InstallWindow(this);
- installWindow->show();
-}
-
-bool RbUtilQt::installBootloaderAuto()
-{
- installBootloader();
- return !m_error;
-}
-
-void RbUtilQt::installBootloaderBtn()
-{
- if(chkConfig(this)) return;
- if(QMessageBox::question(this, tr("Confirm Installation"),
- tr("Do you really want to install the Bootloader?"),
- QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) return;
-
- // create logger
- logger = new ProgressLoggerGui(this);
- logger->show();
- installBootloader();
-}
-
-void RbUtilQt::installBootloader()
-{
- QString platform = RbSettings::value(RbSettings::Platform).toString();
- QString backupDestination = "";
- m_error = false;
-
- // create installer
- BootloaderInstallBase *bl =
- BootloaderInstallHelper::createBootloaderInstaller(this,
- SystemInfo::value(SystemInfo::CurBootloaderMethod).toString());
- if(bl == NULL) {
- logger->addItem(tr("No install method known."), LOGERROR);
- logger->setFinished();
- return;
- }
-
- // the bootloader install class does NOT use any GUI stuff.
- // All messages are passed via signals.
- connect(bl, SIGNAL(done(bool)), logger, SLOT(setFinished()));
- connect(bl, SIGNAL(done(bool)), this, SLOT(installBootloaderPost(bool)));
- connect(bl, SIGNAL(logItem(QString, int)), logger, SLOT(addItem(QString, int)));
- connect(bl, SIGNAL(logProgress(int, int)), logger, SLOT(setProgress(int, int)));
-
- // set bootloader filename. Do this now as installed() needs it.
- QStringList blfile = SystemInfo::value(SystemInfo::CurBootloaderFile).toStringList();
- QStringList blfilepath;
- for(int a = 0; a < blfile.size(); a++) {
- blfilepath.append(RbSettings::value(RbSettings::Mountpoint).toString()
- + blfile.at(a));
- }
- bl->setBlFile(blfilepath);
- QUrl url(SystemInfo::value(SystemInfo::BootloaderUrl).toString()
- + SystemInfo::value(SystemInfo::CurBootloaderName).toString());
- bl->setBlUrl(url);
- bl->setLogfile(RbSettings::value(RbSettings::Mountpoint).toString()
- + "/.rockbox/rbutil.log");
-
- if(bl->installed() == BootloaderInstallBase::BootloaderRockbox) {
- if(QMessageBox::question(this, tr("Bootloader detected"),
- tr("Bootloader already installed. Do you want to reinstall the bootloader?"),
- QMessageBox::Yes | QMessageBox::No) == QMessageBox::No) {
- if(m_auto) {
- // keep logger open for auto installs.
- // don't consider abort as error in auto-mode.
- logger->addItem(tr("Bootloader installation skipped"), LOGINFO);
- installBootloaderPost(false);
- }
- else {
- logger->close();
- installBootloaderPost(true);
- }
- delete bl;
- return;
- }
- }
- else if(bl->installed() == BootloaderInstallBase::BootloaderOther
- && bl->capabilities() & BootloaderInstallBase::Backup)
- {
- QString targetFolder = SystemInfo::value(SystemInfo::CurPlatformName).toString()
- + " Firmware Backup";
- // remove invalid character(s)
- targetFolder.remove(QRegExp("[:/]"));
- if(QMessageBox::question(this, tr("Create Bootloader backup"),
- tr("You can create a backup of the original bootloader "
- "file. Press \"Yes\" to select an output folder on your "
- "computer to save the file to. The file will get placed "
- "in a new folder \"%1\" created below the selected folder.\n"
- "Press \"No\" to skip this step.").arg(targetFolder),
- QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) {
- backupDestination = QFileDialog::getExistingDirectory(this,
- tr("Browse backup folder"), QDir::homePath());
- if(!backupDestination.isEmpty())
- backupDestination += "/" + targetFolder;
-
- qDebug() << "[RbUtil] backing up to" << backupDestination;
- // backup needs to be done after the logger has been set up.
- }
- }
-
- if(bl->capabilities() & BootloaderInstallBase::NeedsOf)
- {
- int ret;
- ret = QMessageBox::information(this, tr("Prerequisites"),
- bl->ofHint(),QMessageBox::Ok | QMessageBox::Abort);
- if(ret != QMessageBox::Ok) {
- // consider aborting an error to close window / abort automatic
- // installation.
- m_error = true;
- logger->addItem(tr("Bootloader installation aborted"), LOGINFO);
- logger->setFinished();
- return;
- }
- // open dialog to browse to of file
- QString offile;
- QString filter
- = SystemInfo::value(SystemInfo::CurBootloaderFilter).toString();
- if(!filter.isEmpty()) {
- filter = tr("Bootloader files (%1)").arg(filter) + ";;";
- }
- filter += tr("All files (*)");
- offile = QFileDialog::getOpenFileName(this,
- tr("Select firmware file"), QDir::homePath(), filter);
- if(!QFileInfo(offile).isReadable()) {
- logger->addItem(tr("Error opening firmware file"), LOGERROR);
- logger->setFinished();
- m_error = true;
- return;
- }
- if(!bl->setOfFile(offile, blfile)) {
- logger->addItem(tr("Error reading firmware file"), LOGERROR);
- logger->setFinished();
- m_error = true;
- return;
- }
- }
-
- // start install.
- if(!backupDestination.isEmpty()) {
- if(!bl->backup(backupDestination)) {
- if(QMessageBox::warning(this, tr("Backup error"),
- tr("Could not create backup file. Continue?"),
- QMessageBox::No | QMessageBox::Yes)
- == QMessageBox::No) {
- logger->setFinished();
- return;
- }
- }
- }
- bl->install();
-}
-
-void RbUtilQt::installBootloaderPost(bool error)
-{
- qDebug() << "[RbUtil] Bootloader Post-Installation, error state:" << error;
- // if an error occured don't perform post install steps.
- if(error) {
- m_error = true;
- return;
- }
- else
- m_error = false;
-
- m_installed = true;
- // end here if automated install
- if(m_auto)
- return;
-
- QString msg = BootloaderInstallHelper::postinstallHints(
- RbSettings::value(RbSettings::Platform).toString());
- if(!msg.isEmpty()) {
- QMessageBox::information(this, tr("Manual steps required"), msg);
- logger->close();
- }
-
-}
-
-void RbUtilQt::installFontsBtn()
-{
- if(chkConfig(this)) return;
- QString mountpoint = RbSettings::value(RbSettings::Mountpoint).toString();
- RockboxInfo installInfo(mountpoint);
- if(installInfo.revision().isEmpty() && installInfo.release().isEmpty()) {
- QMessageBox::critical(this, tr("No Rockbox installation found"),
- tr("Could not determine the installed Rockbox version. "
- "Please install a Rockbox build before installing "
- "fonts."));
- return;
- }
- if(QMessageBox::question(this, tr("Confirm Installation"),
- tr("Do you really want to install the fonts package?"),
- QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) return;
- // create logger
- logger = new ProgressLoggerGui(this);
- logger->show();
- installFonts();
-}
-
-bool RbUtilQt::installFontsAuto()
-{
- installFonts();
-
- return !m_error;
-}
-
-void RbUtilQt::installFonts()
-{
- QString mountpoint = RbSettings::value(RbSettings::Mountpoint).toString();
- RockboxInfo installInfo(mountpoint);
- QString fontsurl;
- QString logversion;
- QString relversion = installInfo.release();
- if(relversion.isEmpty()) {
- // release is empty for non-release versions (i.e. daily / current)
- fontsurl = SystemInfo::value(SystemInfo::DailyFontUrl).toString();
- }
- else {
- fontsurl = SystemInfo::value(SystemInfo::ReleaseFontUrl).toString();
- logversion = installInfo.release();
- }
- fontsurl.replace("%RELEASEVER%", relversion);
-
- // create zip installer
- installer = new ZipInstaller(this);
- installer->setUrl(fontsurl);
- installer->setLogSection("Fonts");
- installer->setLogVersion(logversion);
- installer->setMountPoint(mountpoint);
- if(!RbSettings::value(RbSettings::CacheDisabled).toBool())
- installer->setCache(true);
-
- connect(installer, SIGNAL(done(bool)), this, SLOT(installdone(bool)));
- connect(installer, SIGNAL(logItem(QString, int)), logger, SLOT(addItem(QString, int)));
- connect(installer, SIGNAL(logProgress(int, int)), logger, SLOT(setProgress(int, int)));
- connect(installer, SIGNAL(done(bool)), logger, SLOT(setFinished()));
- connect(logger, SIGNAL(aborted()), installer, SLOT(abort()));
- installer->install();
-}
-
-
void RbUtilQt::installVoice()
{
if(chkConfig(this)) return;
@@ -938,64 +462,6 @@ void RbUtilQt::installVoice()
}
-void RbUtilQt::installDoomBtn()
-{
- if(chkConfig(this)) return;
- if(!hasDoom()){
- QMessageBox::critical(this, tr("Error"),
- tr("Your device doesn't have a doom plugin. Aborting."));
- return;
- }
-
- if(QMessageBox::question(this, tr("Confirm Installation"),
- tr("Do you really want to install the game addon files?"),
- QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) return;
- // create logger
- logger = new ProgressLoggerGui(this);
- logger->show();
-
- installDoom();
-}
-bool RbUtilQt::installDoomAuto()
-{
- installDoom();
- return !m_error;
-}
-
-bool RbUtilQt::hasDoom()
-{
- QFile doomrock(RbSettings::value(RbSettings::Mountpoint).toString()
- +"/.rockbox/rocks/games/doom.rock");
- return doomrock.exists();
-}
-
-void RbUtilQt::installDoom()
-{
- // create zip installer
- installer = new ZipInstaller(this);
-
- installer->setUrl(SystemInfo::value(SystemInfo::DoomUrl).toString());
- installer->setLogSection("Game Addons");
- installer->setLogVersion();
- installer->setMountPoint(RbSettings::value(RbSettings::Mountpoint).toString());
- if(!RbSettings::value(RbSettings::CacheDisabled).toBool())
- installer->setCache(true);
- connect(installer, SIGNAL(done(bool)), this, SLOT(installdone(bool)));
- connect(installer, SIGNAL(logItem(QString, int)), logger, SLOT(addItem(QString, int)));
- connect(installer, SIGNAL(logProgress(int, int)), logger, SLOT(setProgress(int, int)));
- connect(installer, SIGNAL(done(bool)), logger, SLOT(setFinished()));
- connect(logger, SIGNAL(aborted()), installer, SLOT(abort()));
- installer->install();
-
-}
-
-void RbUtilQt::installThemes()
-{
- if(chkConfig(this)) return;
- ThemesInstallWindow* tw = new ThemesInstallWindow(this);
- tw->setModal(true);
- tw->show();
-}
void RbUtilQt::createTalkFiles(void)
{