summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/rbutilqt')
-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 541c44608e..3b84c83c39 100644
--- a/rbutil/rbutilqt/rbutilqt.cpp
+++ b/rbutil/rbutilqt/rbutilqt.cpp
@@ -89,6 +89,11 @@ RbUtilQt::RbUtilQt(QWidget *parent) : QMainWindow(parent)
89 // disable unimplemented stuff 89 // disable unimplemented stuff
90 ui.buttonSmall->setEnabled(false); 90 ui.buttonSmall->setEnabled(false);
91 ui.buttonComplete->setEnabled(false); 91 ui.buttonComplete->setEnabled(false);
92#if !defined(STATIC)
93 ui.actionInstall_Rockbox_Utility_on_player->setEnabled(false);
94#else
95 connect(ui.actionInstall_Rockbox_Utility_on_player, SIGNAL(triggered()), this, SLOT(installPortable()));
96#endif
92 97
93 initIpodpatcher(); 98 initIpodpatcher();
94 initSansapatcher(); 99 initSansapatcher();
@@ -543,3 +548,45 @@ void RbUtilQt::downloadManual(void)
543 installer->setTarget(target); 548 installer->setTarget(target);
544 installer->install(logger); 549 installer->install(logger);
545} 550}
551
552
553void RbUtilQt::installPortable(void)
554{
555 if(QMessageBox::question(this, tr("Confirm installation"),
556 tr("Do you really want to install Rockbox Utility to your player? "
557 "After installation you can run it from the players hard drive."),
558 QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes)
559 return;
560
561 ProgressLoggerGui* logger = new ProgressLoggerGui(this);
562 logger->show();
563 logger->addItem(tr("Installing Rockbox Utility"), LOGINFO);
564
565 // check mountpoint
566 if(!QFileInfo(userSettings->value("defaults/mountpoint").toString()).isDir()) {
567 logger->addItem(tr("Mount point is wrong!"),LOGERROR);
568 logger->abort();
569 return;
570 }
571
572 // remove old files first.
573 QFile::remove(userSettings->value("defaults/mountpoint").toString() + "/RockboxUtility.exe");
574 QFile::remove(userSettings->value("defaults/mountpoint").toString() + "/RockboxUtility.ini");
575 // copy currently running binary and currently used settings file
576 if(!QFile::copy(qApp->applicationFilePath(), userSettings->value("defaults/mountpoint").toString() + "/RockboxUtility.exe")) {
577 logger->addItem(tr("Error installing Rockbox Utility"), LOGERROR);
578 logger->abort();
579 return;
580 }
581 logger->addItem(tr("Installing user configuration"), LOGINFO);
582 if(!QFile::copy(userSettings->fileName(), userSettings->value("defaults/mountpoint").toString() + "/RockboxUtility.ini")) {
583 logger->addItem(tr("Error installing user configuration"), LOGERROR);
584 logger->abort();
585 return;
586 }
587 logger->addItem(tr("Successfully installed Rockbox Utility."), LOGOK);
588 logger->abort();
589
590}
591
592
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
70 void uninstall(void); 70 void uninstall(void);
71 void uninstallBootloader(void); 71 void uninstallBootloader(void);
72 void downloadManual(void); 72 void downloadManual(void);
73 void installPortable(void);
73}; 74};
74 75
75#endif 76#endif