From edb3f36dd57ca5a08dbd24b0367d0264f779b933 Mon Sep 17 00:00:00 2001 From: domonoky Date: Fri, 10 Aug 2007 22:17:43 +0000 Subject: [PATCH] rbutilQt: Add Uninstallation for Rockbox and Bootloaders. Also add Talkfiles to the installlog git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14275 a1c6a512-1295-4272-9138-f99709370657 --- rbutil/rbutilqt/installtalkwindow.cpp | 3 ++- rbutil/rbutilqt/installzip.cpp | 2 +- rbutil/rbutilqt/installzip.h | 4 ++-- rbutil/rbutilqt/rbutilqt.cpp | 36 ++++++++++++++++++++++++++++++++--- rbutil/rbutilqt/rbutilqt.h | 2 ++ rbutil/rbutilqt/rbutilqt.pro | 11 ++++++++--- rbutil/rbutilqt/talkfile.cpp | 11 +++++++++-- rbutil/rbutilqt/talkfile.h | 3 ++- 8 files changed, 59 insertions(+), 13 deletions(-) diff --git a/rbutil/rbutilqt/installtalkwindow.cpp b/rbutil/rbutilqt/installtalkwindow.cpp index 82efa20a8..fcd55633c 100644 --- a/rbutil/rbutilqt/installtalkwindow.cpp +++ b/rbutil/rbutilqt/installtalkwindow.cpp @@ -200,6 +200,7 @@ void InstallTalkWindow::accept() talkcreator->setStripExtensions(ui.StripExtensions->isChecked()); talkcreator->createTalkFiles(logger); + connect(logger,SIGNAL(closed()),this,SLOT(close())); } @@ -274,7 +275,7 @@ void InstallTalkWindow::setUserSettings(QSettings *user) { userSettings = user; - + talkcreator->setMountPoint(userSettings->value("defaults/mountpoint").toString()); setTalkFolder(userSettings->value("defaults/folderToTalk").toString()); setEncoderExec(userSettings->value("defaults/pathEncoder").toString()); diff --git a/rbutil/rbutilqt/installzip.cpp b/rbutil/rbutilqt/installzip.cpp index 4e2ab518b..ac295da96 100644 --- a/rbutil/rbutilqt/installzip.cpp +++ b/rbutil/rbutilqt/installzip.cpp @@ -137,7 +137,7 @@ void ZipInstaller::downloadDone(bool error) } // add file to log - zipContents.append(m_mountpoint + m_target); + zipContents.append( m_target); } m_dp->addItem(tr("Creating installation log"),LOGINFO); diff --git a/rbutil/rbutilqt/installzip.h b/rbutil/rbutilqt/installzip.h index a3d14d922..1d9d024ff 100644 --- a/rbutil/rbutilqt/installzip.h +++ b/rbutil/rbutilqt/installzip.h @@ -18,8 +18,8 @@ ****************************************************************************/ -#ifndef INSTALLRB_H -#define INSTALLRB_H +#ifndef INSTALLZIP_H +#define INSTALLZIP_H diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp index 35b227f6e..232664873 100644 --- a/rbutil/rbutilqt/rbutilqt.cpp +++ b/rbutil/rbutilqt/rbutilqt.cpp @@ -29,6 +29,7 @@ #include "installtalkwindow.h" #include "httpget.h" #include "installbootloader.h" +#include "uninstallwindow.h" #ifdef __linux #include @@ -80,13 +81,12 @@ RbUtilQt::RbUtilQt(QWidget *parent) : QMainWindow(parent) connect(ui.buttonGames, SIGNAL(clicked()), this, SLOT(installDoom())); connect(ui.buttonTalk, SIGNAL(clicked()), this, SLOT(createTalkFiles())); connect(ui.buttonVoice, SIGNAL(clicked()), this, SLOT(installVoice())); - + connect(ui.buttonRemoveRockbox, SIGNAL(clicked()), this, SLOT(uninstall())); + connect(ui.buttonRemoveBootloader, SIGNAL(clicked()), this, SLOT(uninstallBootloader())); // disable unimplemented stuff ui.buttonThemes->setEnabled(false); ui.buttonSmall->setEnabled(false); - ui.buttonRemoveRockbox->setEnabled(false); - ui.buttonRemoveBootloader->setEnabled(false); ui.buttonComplete->setEnabled(false); initIpodpatcher(); @@ -96,6 +96,8 @@ RbUtilQt::RbUtilQt(QWidget *parent) : QMainWindow(parent) } + + void RbUtilQt::downloadInfo() { // try to get the current build information @@ -396,3 +398,31 @@ void RbUtilQt::createTalkFiles(void) installWindow->show(); } + +void RbUtilQt::uninstall(void) +{ + UninstallWindow *uninstallWindow = new UninstallWindow(this); + uninstallWindow->setUserSettings(userSettings); + uninstallWindow->setDeviceSettings(devices); + uninstallWindow->show(); +} + +void RbUtilQt::uninstallBootloader(void) +{ + if(QMessageBox::question(this, tr("Confirm Uninstallation"), + tr("Do you really want to uninstall the Bootloader?"), + QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) return; + // create logger + ProgressLoggerGui* logger = new ProgressLoggerGui(this); + logger->show(); + + QString plattform = userSettings->value("defaults/platform").toString(); + BootloaderInstaller blinstaller(this); + blinstaller.setMountPoint(userSettings->value("defaults/mountpoint").toString()); + blinstaller.setDevice(userSettings->value("defaults/platform").toString()); + blinstaller.setBootloaderMethod(devices->value(plattform + "/bootloadermethod").toString()); + blinstaller.setBootloaderName(devices->value(plattform + "/bootloadername").toString()); + blinstaller.setBootloaderBaseUrl(devices->value("bootloader_url").toString()); + blinstaller.uninstall(logger); + +} diff --git a/rbutil/rbutilqt/rbutilqt.h b/rbutil/rbutilqt/rbutilqt.h index 745123597..fe8dd3b32 100644 --- a/rbutil/rbutilqt/rbutilqt.h +++ b/rbutil/rbutilqt/rbutilqt.h @@ -64,6 +64,8 @@ class RbUtilQt : public QMainWindow void downloadDone(int, bool); void downloadInfo(void); void installVoice(void); + void uninstall(void); + void uninstallBootloader(void); }; #endif diff --git a/rbutil/rbutilqt/rbutilqt.pro b/rbutil/rbutilqt/rbutilqt.pro index ed61288ed..a5a03bf87 100644 --- a/rbutil/rbutilqt/rbutilqt.pro +++ b/rbutil/rbutilqt/rbutilqt.pro @@ -30,7 +30,9 @@ SOURCES += rbutilqt.cpp \ ../sansapatcher/sansapatcher.c \ irivertools/irivertools.cpp \ irivertools/md5sum.cpp \ - browsedirtree.cpp + browsedirtree.cpp \ + uninstall.cpp \ + uninstallwindow.cpp HEADERS += rbutilqt.h \ settings.h \ @@ -62,7 +64,9 @@ HEADERS += rbutilqt.h \ irivertools/h120sums.h \ irivertools/h300sums.h \ irivertools/checksums.h \ - browsedirtree.h + browsedirtree.h \ + uninstall.h \ + uninstallwindow.h # Needed by QT on Win INCLUDEPATH = . irivertools zip zlib ../ipodpatcher ../sansapatcher @@ -81,7 +85,8 @@ FORMS += rbutilqtfrm.ui \ configurefrm.ui \ installbootloaderfrm.ui \ browsedirtreefrm.ui \ - installtalkfrm.ui + installtalkfrm.ui \ + uninstallfrm.ui RESOURCES += rbutilqt.qrc diff --git a/rbutil/rbutilqt/talkfile.cpp b/rbutil/rbutilqt/talkfile.cpp index da532e327..18c4ede2a 100644 --- a/rbutil/rbutilqt/talkfile.cpp +++ b/rbutil/rbutilqt/talkfile.cpp @@ -85,6 +85,8 @@ bool TalkFileCreator::createTalkFiles(ProgressloggerInterface* logger) connect(logger,SIGNAL(aborted()),this,SLOT(abort())); m_logger->setProgressMax(0); QDirIterator it(m_dir,QDirIterator::Subdirectories); + QSettings installlog(m_mountpoint + "/.rockbox/rbutil.log", QSettings::IniFormat, 0); + installlog.beginGroup("talkfiles"); // iterate over all entrys while (it.hasNext()) { @@ -148,11 +150,16 @@ bool TalkFileCreator::createTalkFiles(ProgressloggerInterface* logger) { QFile wavfile(wavfilename); wavfile.remove(); - } - + installlog.remove(wavfilename); + } + else + installlog.setValue(wavfilename.remove(m_mountpoint),installlog.value(wavfilename,0).toInt()+1); + + installlog.setValue(filename.remove(m_mountpoint),installlog.value(filename,0).toInt()+1); it.next(); } + installlog.endGroup(); m_logger->addItem("Finished creating Talkfiles",LOGOK); m_logger->setProgressMax(1); m_logger->setProgressValue(1); diff --git a/rbutil/rbutilqt/talkfile.h b/rbutil/rbutilqt/talkfile.h index 20bf1e5a7..74042163d 100644 --- a/rbutil/rbutilqt/talkfile.h +++ b/rbutil/rbutilqt/talkfile.h @@ -54,6 +54,7 @@ public: void setEncOpts(QString opts) {m_EncOpts=opts;} void setDir(QString dir){m_dir = dir; } + void setMountPoint(QString mountpoint) {m_mountpoint =mountpoint; } void setOverwriteTalk(bool ov) {m_overwriteTalk = ov;} void setOverwriteWav(bool ov) {m_overwriteWav = ov;} @@ -74,7 +75,7 @@ private: bool voice(QString text,QString wavfile); QString m_dir; - + QString m_mountpoint; QString m_curTTS; QString m_TTSexec; QStringList m_supportedTTS; -- 2.11.4.GIT