summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Wenger <domonoky@googlemail.com>2008-05-10 17:53:15 +0000
committerDominik Wenger <domonoky@googlemail.com>2008-05-10 17:53:15 +0000
commitacccee479a2e0ef1b373c7de85a70abb816682c3 (patch)
tree0f52f57d05188226721ff0b96850a1319df5a5ec
parent251db062949edf0adb89ae609a53919d9a348e6e (diff)
downloadrockbox-acccee479a2e0ef1b373c7de85a70abb816682c3.tar.gz
rockbox-acccee479a2e0ef1b373c7de85a70abb816682c3.zip
rbutil: Detect if Rockbox is already installed, and allow Backup bevor installing a new build.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17440 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--rbutil/rbutilqt/install.cpp18
-rw-r--r--rbutil/rbutilqt/progressloggergui.cpp4
-rw-r--r--rbutil/rbutilqt/progressloggergui.h2
-rw-r--r--rbutil/rbutilqt/rbutilqt.cpp18
-rw-r--r--rbutil/rbutilqt/rbutilqt.pro6
-rw-r--r--rbutil/rbutilqt/zip/zip.cpp8
-rw-r--r--rbutil/rbutilqt/zip/zip.h4
7 files changed, 49 insertions, 11 deletions
diff --git a/rbutil/rbutilqt/install.cpp b/rbutil/rbutilqt/install.cpp
index 45004cb2b0..4461a6a633 100644
--- a/rbutil/rbutilqt/install.cpp
+++ b/rbutil/rbutilqt/install.cpp
@@ -19,6 +19,7 @@
19 19
20#include "install.h" 20#include "install.h"
21#include "ui_installfrm.h" 21#include "ui_installfrm.h"
22#include "rbzip.h"
22 23
23Install::Install(QWidget *parent) : QDialog(parent) 24Install::Install(QWidget *parent) : QDialog(parent)
24{ 25{
@@ -82,7 +83,22 @@ void Install::accept()
82 return; 83 return;
83 } 84 }
84 settings->sync(); 85 settings->sync();
85 86
87 //! check if rockbox is already installed
88 if(QDir(settings->mountpoint() + "/.rockbox").exists())
89 {
90 if(QMessageBox::question(this, tr("Installed Rockbox detected"),
91 tr("Rockbox installation detected. Do you want to backup first?"),
92 QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes)
93 {
94 QString backupName = QFileDialog::getSaveFileName(this,"Select Backup Filename",settings->mountpoint());
95 logger->show();
96 RbZip backup;
97 backup.createZip(backupName,settings->mountpoint() + "/.rockbox",logger);
98 }
99 }
100
101 //! install build
86 installer = new ZipInstaller(this); 102 installer = new ZipInstaller(this);
87 installer->setUrl(file); 103 installer->setUrl(file);
88 installer->setLogSection("Rockbox (Base)"); 104 installer->setLogSection("Rockbox (Base)");
diff --git a/rbutil/rbutilqt/progressloggergui.cpp b/rbutil/rbutilqt/progressloggergui.cpp
index b66ec89a25..15ddc18663 100644
--- a/rbutil/rbutilqt/progressloggergui.cpp
+++ b/rbutil/rbutilqt/progressloggergui.cpp
@@ -19,9 +19,9 @@
19 19
20#include "progressloggergui.h" 20#include "progressloggergui.h"
21 21
22ProgressLoggerGui::ProgressLoggerGui(QObject* parent): ProgressloggerInterface(parent) 22ProgressLoggerGui::ProgressLoggerGui(QWidget* parent): ProgressloggerInterface(parent)
23{ 23{
24 downloadProgress = new QDialog(); 24 downloadProgress = new QDialog(parent);
25 downloadProgress->setModal(true); 25 downloadProgress->setModal(true);
26 dp.setupUi(downloadProgress); 26 dp.setupUi(downloadProgress);
27 dp.listProgress->setAlternatingRowColors(true); 27 dp.listProgress->setAlternatingRowColors(true);
diff --git a/rbutil/rbutilqt/progressloggergui.h b/rbutil/rbutilqt/progressloggergui.h
index 6086330ebb..785e309bd0 100644
--- a/rbutil/rbutilqt/progressloggergui.h
+++ b/rbutil/rbutilqt/progressloggergui.h
@@ -28,7 +28,7 @@ class ProgressLoggerGui :public ProgressloggerInterface
28{ 28{
29 Q_OBJECT 29 Q_OBJECT
30public: 30public:
31 ProgressLoggerGui(QObject * parent); 31 ProgressLoggerGui(QWidget * parent);
32 32
33 virtual void addItem(const QString &text); //adds a string to the list 33 virtual void addItem(const QString &text); //adds a string to the list
34 34
diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp
index 564d9d8352..f9fbd48568 100644
--- a/rbutil/rbutilqt/rbutilqt.cpp
+++ b/rbutil/rbutilqt/rbutilqt.cpp
@@ -33,6 +33,7 @@
33#include "uninstallwindow.h" 33#include "uninstallwindow.h"
34#include "browseof.h" 34#include "browseof.h"
35#include "utils.h" 35#include "utils.h"
36#include "rbzip.h"
36 37
37#if defined(Q_OS_LINUX) 38#if defined(Q_OS_LINUX)
38#include <stdio.h> 39#include <stdio.h>
@@ -462,7 +463,22 @@ bool RbUtilQt::installAuto()
462 } 463 }
463 464
464 QString myversion = "r" + versmap.value("bleed_rev"); 465 QString myversion = "r" + versmap.value("bleed_rev");
465 466
467 //! check if rockbox is already installed
468 if(QDir(settings->mountpoint() + "/.rockbox").exists())
469 {
470 if(QMessageBox::question(this, tr("Installed Rockbox detected"),
471 tr("Rockbox installation detected. Do you want to backup first?"),
472 QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes)
473 {
474 QString backupName = QFileDialog::getSaveFileName(this,"Select Backup Filename",settings->mountpoint());
475 logger->show();
476 RbZip backup;
477 backup.createZip(backupName,settings->mountpoint() + "/.rockbox",logger);
478 }
479 }
480
481 //! install current build
466 ZipInstaller* installer = new ZipInstaller(this); 482 ZipInstaller* installer = new ZipInstaller(this);
467 installer->setUrl(file); 483 installer->setUrl(file);
468 installer->setLogSection("Rockbox (Base)"); 484 installer->setLogSection("Rockbox (Base)");
diff --git a/rbutil/rbutilqt/rbutilqt.pro b/rbutil/rbutilqt/rbutilqt.pro
index 1485f4d8a9..ba04159d58 100644
--- a/rbutil/rbutilqt/rbutilqt.pro
+++ b/rbutil/rbutilqt/rbutilqt.pro
@@ -56,7 +56,8 @@ SOURCES += rbutilqt.cpp \
56 voicefile.cpp \ 56 voicefile.cpp \
57 createvoicewindow.cpp \ 57 createvoicewindow.cpp \
58 rbsettings.cpp \ 58 rbsettings.cpp \
59 rbunzip.cpp 59 rbunzip.cpp \
60 rbzip.cpp
60 61
61HEADERS += rbutilqt.h \ 62HEADERS += rbutilqt.h \
62 install.h \ 63 install.h \
@@ -102,7 +103,8 @@ HEADERS += rbutilqt.h \
102 voicefile.h \ 103 voicefile.h \
103 createvoicewindow.h \ 104 createvoicewindow.h \
104 rbsettings.h \ 105 rbsettings.h \
105 rbunzip.h 106 rbunzip.h \
107 rbzip.h
106 108
107# Needed by QT on Win 109# Needed by QT on Win
108INCLUDEPATH = . irivertools zip zlib ../ipodpatcher ../sansapatcher ../../tools/rbspeex ../../tools 110INCLUDEPATH = . irivertools zip zlib ../ipodpatcher ../sansapatcher ../../tools/rbspeex ../../tools
diff --git a/rbutil/rbutilqt/zip/zip.cpp b/rbutil/rbutilqt/zip/zip.cpp
index bb02147da3..ac1eaaea0b 100644
--- a/rbutil/rbutilqt/zip/zip.cpp
+++ b/rbutil/rbutilqt/zip/zip.cpp
@@ -441,13 +441,15 @@ Zip::ErrorCode Zip::addDirectory(const QString& path, const QString& root, Compr
441 if (info.isDir()) 441 if (info.isDir())
442 { 442 {
443 // Recursion :) 443 // Recursion :)
444 ec = addDirectory(info.absoluteFilePath(), actualRoot, recursionOptions, level); 444 progress();
445 ec = addDirectory(info.absoluteFilePath(), actualRoot, recursionOptions, level);
445 } 446 }
446 else 447 else
447 { 448 {
449 progress();
448 ec = d->createEntry(info, actualRoot, level); 450 ec = d->createEntry(info, actualRoot, level);
449 filesAdded = true; 451 filesAdded = true;
450 } 452 }
451 } 453 }
452 454
453 455
@@ -455,7 +457,7 @@ Zip::ErrorCode Zip::addDirectory(const QString& path, const QString& root, Compr
455 // Non-empty directories don't need it because they have a path component in the filename 457 // Non-empty directories don't need it because they have a path component in the filename
456 if (!filesAdded && !options.testFlag(IgnorePaths)) 458 if (!filesAdded && !options.testFlag(IgnorePaths))
457 ec = d->createEntry(current, actualRoot, level); 459 ec = d->createEntry(current, actualRoot, level);
458 460
459 return ec; 461 return ec;
460} 462}
461 463
diff --git a/rbutil/rbutilqt/zip/zip.h b/rbutil/rbutilqt/zip/zip.h
index 03c4d8af0b..44fdd08b5f 100644
--- a/rbutil/rbutilqt/zip/zip.h
+++ b/rbutil/rbutilqt/zip/zip.h
@@ -103,7 +103,9 @@ public:
103 ErrorCode closeArchive(); 103 ErrorCode closeArchive();
104 104
105 QString formatError(ErrorCode c) const; 105 QString formatError(ErrorCode c) const;
106 106
107 virtual void progress() {}
108
107private: 109private:
108 ZipPrivate* d; 110 ZipPrivate* d;
109}; 111};