summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2007-08-22 22:25:04 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2007-08-22 22:25:04 +0000
commit1c69293d915ff9252d635764a954712417016eab (patch)
treea848ddf203e97a043a2013aadf0f6e6ffdf89e8b
parentf919c4718ab213548d232eafc4fd78e7384bf72a (diff)
downloadrockbox-1c69293d915ff9252d635764a954712417016eab.zip
rockbox-1c69293d915ff9252d635764a954712417016eab.tar.gz
rockbox-1c69293d915ff9252d635764a954712417016eab.tar.bz2
rockbox-1c69293d915ff9252d635764a954712417016eab.tar.xz
add portable installation if built as static binary.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14434 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--rbutil/rbutilqt/rbutilqt.cpp47
-rw-r--r--rbutil/rbutilqt/rbutilqt.h1
2 files changed, 48 insertions, 0 deletions
diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp
index 541c446..3b84c83 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 ef1de91..0fb2bc9 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