From 1c69293d915ff9252d635764a954712417016eab Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Wed, 22 Aug 2007 22:25:04 +0000 Subject: add portable installation if built as static binary. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14434 a1c6a512-1295-4272-9138-f99709370657 --- rbutil/rbutilqt/rbutilqt.cpp | 47 ++++++++++++++++++++++++++++++++++++++++++++ rbutil/rbutilqt/rbutilqt.h | 1 + 2 files changed, 48 insertions(+) diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp index 541c44608e..3b84c83c39 100644 --- a/rbutil/rbutilqt/rbutilqt.cpp +++ b/rbutil/rbutilqt/rbutilqt.cpp @@ -89,6 +89,11 @@ RbUtilQt::RbUtilQt(QWidget *parent) : QMainWindow(parent) // disable unimplemented stuff ui.buttonSmall->setEnabled(false); ui.buttonComplete->setEnabled(false); +#if !defined(STATIC) + ui.actionInstall_Rockbox_Utility_on_player->setEnabled(false); +#else + connect(ui.actionInstall_Rockbox_Utility_on_player, SIGNAL(triggered()), this, SLOT(installPortable())); +#endif initIpodpatcher(); initSansapatcher(); @@ -543,3 +548,45 @@ void RbUtilQt::downloadManual(void) installer->setTarget(target); installer->install(logger); } + + +void RbUtilQt::installPortable(void) +{ + if(QMessageBox::question(this, tr("Confirm installation"), + tr("Do you really want to install Rockbox Utility to your player? " + "After installation you can run it from the players hard drive."), + QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) + return; + + ProgressLoggerGui* logger = new ProgressLoggerGui(this); + logger->show(); + logger->addItem(tr("Installing Rockbox Utility"), LOGINFO); + + // check mountpoint + if(!QFileInfo(userSettings->value("defaults/mountpoint").toString()).isDir()) { + logger->addItem(tr("Mount point is wrong!"),LOGERROR); + logger->abort(); + return; + } + + // remove old files first. + QFile::remove(userSettings->value("defaults/mountpoint").toString() + "/RockboxUtility.exe"); + QFile::remove(userSettings->value("defaults/mountpoint").toString() + "/RockboxUtility.ini"); + // copy currently running binary and currently used settings file + if(!QFile::copy(qApp->applicationFilePath(), userSettings->value("defaults/mountpoint").toString() + "/RockboxUtility.exe")) { + logger->addItem(tr("Error installing Rockbox Utility"), LOGERROR); + logger->abort(); + return; + } + logger->addItem(tr("Installing user configuration"), LOGINFO); + if(!QFile::copy(userSettings->fileName(), userSettings->value("defaults/mountpoint").toString() + "/RockboxUtility.ini")) { + logger->addItem(tr("Error installing user configuration"), LOGERROR); + logger->abort(); + return; + } + logger->addItem(tr("Successfully installed Rockbox Utility."), LOGOK); + logger->abort(); + +} + + diff --git a/rbutil/rbutilqt/rbutilqt.h b/rbutil/rbutilqt/rbutilqt.h index ef1de913e6..0fb2bc915e 100644 --- a/rbutil/rbutilqt/rbutilqt.h +++ b/rbutil/rbutilqt/rbutilqt.h @@ -70,6 +70,7 @@ class RbUtilQt : public QMainWindow void uninstall(void); void uninstallBootloader(void); void downloadManual(void); + void installPortable(void); }; #endif -- cgit v1.2.3