diff options
-rw-r--r-- | rbutil/rbutilqt/base/rbsettings.cpp | 1 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/rbsettings.h | 1 | ||||
-rw-r--r-- | rbutil/rbutilqt/gui/backupdialog.cpp | 141 | ||||
-rw-r--r-- | rbutil/rbutilqt/gui/backupdialog.h | 49 | ||||
-rw-r--r-- | rbutil/rbutilqt/gui/backupdialogfrm.ui | 142 | ||||
-rw-r--r-- | rbutil/rbutilqt/icons/package-x-generic.png | bin | 540 -> 1900 bytes | |||
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.cpp | 9 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.h | 3 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.pri | 5 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqtfrm.ui | 38 |
10 files changed, 376 insertions, 13 deletions
diff --git a/rbutil/rbutilqt/base/rbsettings.cpp b/rbutil/rbutilqt/base/rbsettings.cpp index f584c6808c..f6a936ab9a 100644 --- a/rbutil/rbutilqt/base/rbsettings.cpp +++ b/rbutil/rbutilqt/base/rbsettings.cpp | |||
@@ -40,6 +40,7 @@ const static struct { | |||
40 | { RbSettings::OfPath, "ofpath", "" }, | 40 | { RbSettings::OfPath, "ofpath", "" }, |
41 | { RbSettings::Platform, "platform", "" }, | 41 | { RbSettings::Platform, "platform", "" }, |
42 | { RbSettings::Language, "lang", "" }, | 42 | { RbSettings::Language, "lang", "" }, |
43 | { RbSettings::BackupPath, "backuppath", "" }, | ||
43 | #if defined(Q_OS_WIN32) | 44 | #if defined(Q_OS_WIN32) |
44 | { RbSettings::Tts, "tts", "sapi" }, | 45 | { RbSettings::Tts, "tts", "sapi" }, |
45 | #elif defined(Q_OS_MACX) | 46 | #elif defined(Q_OS_MACX) |
diff --git a/rbutil/rbutilqt/base/rbsettings.h b/rbutil/rbutilqt/base/rbsettings.h index 45ec7092e2..21234a4e9a 100644 --- a/rbutil/rbutilqt/base/rbsettings.h +++ b/rbutil/rbutilqt/base/rbsettings.h | |||
@@ -40,6 +40,7 @@ class RbSettings : public QObject | |||
40 | OfPath, | 40 | OfPath, |
41 | Platform, | 41 | Platform, |
42 | Language, | 42 | Language, |
43 | BackupPath, | ||
43 | Tts, | 44 | Tts, |
44 | UseTtsCorrections, | 45 | UseTtsCorrections, |
45 | TalkFolders, | 46 | TalkFolders, |
diff --git a/rbutil/rbutilqt/gui/backupdialog.cpp b/rbutil/rbutilqt/gui/backupdialog.cpp new file mode 100644 index 0000000000..5d04b322ed --- /dev/null +++ b/rbutil/rbutilqt/gui/backupdialog.cpp | |||
@@ -0,0 +1,141 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2012 by Dominik Riebeling | ||
10 | * | ||
11 | * All files in this archive are subject to the GNU General Public License. | ||
12 | * See the file COPYING in the source tree root for full license agreement. | ||
13 | * | ||
14 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
15 | * KIND, either express or implied. | ||
16 | * | ||
17 | ****************************************************************************/ | ||
18 | |||
19 | #include <QtGui> | ||
20 | #include "backupdialog.h" | ||
21 | #include "ui_backupdialogfrm.h" | ||
22 | #include "rbsettings.h" | ||
23 | #include "progressloggergui.h" | ||
24 | #include "ziputil.h" | ||
25 | #include "rockboxinfo.h" | ||
26 | |||
27 | class BackupSizeThread : public QThread | ||
28 | { | ||
29 | public: | ||
30 | void run(void); | ||
31 | void setPath(QString p) { m_path = p; } | ||
32 | qint64 currentSize(void) { return m_currentSize; } | ||
33 | |||
34 | private: | ||
35 | QString m_path; | ||
36 | qint64 m_currentSize; | ||
37 | }; | ||
38 | |||
39 | |||
40 | void BackupSizeThread::run(void) | ||
41 | { | ||
42 | qDebug() << "BackupSizeThread] Thread started, calculating" << m_path; | ||
43 | m_currentSize = 0; | ||
44 | |||
45 | QDirIterator it(m_path, QDirIterator::Subdirectories); | ||
46 | while(it.hasNext()) { | ||
47 | m_currentSize += QFileInfo(it.next()).size(); | ||
48 | } | ||
49 | qDebug() << "[BackupSizeThread] Thread done, sum:" << m_currentSize; | ||
50 | } | ||
51 | |||
52 | |||
53 | BackupDialog::BackupDialog(QWidget* parent) : QDialog(parent) | ||
54 | { | ||
55 | ui.setupUi(this); | ||
56 | |||
57 | m_thread = new BackupSizeThread(); | ||
58 | connect(m_thread, SIGNAL(finished()), this, SLOT(updateSizeInfo())); | ||
59 | connect(m_thread, SIGNAL(terminated()), this, SLOT(updateSizeInfo())); | ||
60 | |||
61 | connect(ui.buttonCancel, SIGNAL(clicked()), this, SLOT(close())); | ||
62 | connect(ui.buttonCancel, SIGNAL(clicked()), m_thread, SLOT(quit())); | ||
63 | connect(ui.buttonChange, SIGNAL(clicked()), this, SLOT(changeBackupPath())); | ||
64 | connect(ui.buttonBackup, SIGNAL(clicked()), this, SLOT(backup())); | ||
65 | |||
66 | ui.backupSize->setText(tr("Installation size: calculating ...")); | ||
67 | m_mountpoint = RbSettings::value(RbSettings::Mountpoint).toString(); | ||
68 | |||
69 | m_backupName = RbSettings::value(RbSettings::BackupPath).toString(); | ||
70 | if(m_backupName.isEmpty()) { | ||
71 | m_backupName = m_mountpoint; | ||
72 | } | ||
73 | RockboxInfo info(m_mountpoint); | ||
74 | m_backupName += "/.backup/rockbox-backup-" + info.version() + ".zip"; | ||
75 | ui.backupLocation->setText(QDir::toNativeSeparators(m_backupName)); | ||
76 | |||
77 | m_thread->setPath(m_mountpoint + "/.rockbox"); | ||
78 | m_thread->start(); | ||
79 | } | ||
80 | |||
81 | |||
82 | void BackupDialog::changeBackupPath(void) | ||
83 | { | ||
84 | QString backupString = QFileDialog::getSaveFileName(this, | ||
85 | tr("Select Backup Filename"), m_backupName, "*.zip"); | ||
86 | // only update if a filename was entered, ignore if cancelled | ||
87 | if(!backupString.isEmpty()) { | ||
88 | m_backupName = backupString; | ||
89 | ui.backupLocation->setText(QDir::toNativeSeparators(m_backupName)); | ||
90 | RbSettings::setValue(RbSettings::BackupPath, QFileInfo(m_backupName).absolutePath()); | ||
91 | } | ||
92 | } | ||
93 | |||
94 | |||
95 | void BackupDialog::updateSizeInfo(void) | ||
96 | { | ||
97 | double size = m_thread->currentSize() / (1024 * 1024); | ||
98 | QString unit = "MiB"; | ||
99 | |||
100 | if(size > 1024) { | ||
101 | size /= 1024; | ||
102 | unit = "GiB"; | ||
103 | } | ||
104 | |||
105 | ui.backupSize->setText(tr("Installation size: %L1 %2").arg(size, 0, 'g', 4).arg(unit)); | ||
106 | } | ||
107 | |||
108 | |||
109 | void BackupDialog::backup(void) | ||
110 | { | ||
111 | m_logger = new ProgressLoggerGui(this); | ||
112 | connect(m_logger, SIGNAL(closed()), this, SLOT(close())); | ||
113 | m_logger->show(); | ||
114 | m_logger->addItem(tr("Starting backup ..."),LOGINFO); | ||
115 | QCoreApplication::processEvents(); | ||
116 | |||
117 | // create dir, if it doesnt exist | ||
118 | QFileInfo backupFile(m_backupName); | ||
119 | if(!QDir(backupFile.path()).exists()) | ||
120 | { | ||
121 | QDir a; | ||
122 | a.mkpath(backupFile.path()); | ||
123 | } | ||
124 | |||
125 | // create backup | ||
126 | ZipUtil zip(this); | ||
127 | connect(&zip, SIGNAL(logProgress(int, int)), m_logger, SLOT(setProgress(int, int))); | ||
128 | connect(&zip, SIGNAL(logItem(QString, int)), m_logger, SLOT(addItem(QString, int))); | ||
129 | zip.open(m_backupName, QuaZip::mdCreate); | ||
130 | |||
131 | QString mp = m_mountpoint + "/.rockbox"; | ||
132 | if(zip.appendDirToArchive(mp, m_mountpoint)) { | ||
133 | m_logger->addItem(tr("Backup successful."), LOGINFO); | ||
134 | } | ||
135 | else { | ||
136 | m_logger->addItem(tr("Backup failed!"), LOGERROR); | ||
137 | } | ||
138 | zip.close(); | ||
139 | m_logger->setFinished(); | ||
140 | } | ||
141 | |||
diff --git a/rbutil/rbutilqt/gui/backupdialog.h b/rbutil/rbutilqt/gui/backupdialog.h new file mode 100644 index 0000000000..cd5ea398d9 --- /dev/null +++ b/rbutil/rbutilqt/gui/backupdialog.h | |||
@@ -0,0 +1,49 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2012 by Dominik Riebeling | ||
10 | * | ||
11 | * All files in this archive are subject to the GNU General Public License. | ||
12 | * See the file COPYING in the source tree root for full license agreement. | ||
13 | * | ||
14 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
15 | * KIND, either express or implied. | ||
16 | * | ||
17 | ****************************************************************************/ | ||
18 | |||
19 | #ifndef BACKUPDIALOG_H | ||
20 | #define BACKUPDIALOG_H | ||
21 | |||
22 | #include <QWidget> | ||
23 | #include <QDialog> | ||
24 | #include "ui_backupdialogfrm.h" | ||
25 | #include "progressloggergui.h" | ||
26 | |||
27 | class BackupSizeThread; | ||
28 | |||
29 | class BackupDialog : public QDialog | ||
30 | { | ||
31 | Q_OBJECT | ||
32 | public: | ||
33 | BackupDialog(QWidget* parent = 0); | ||
34 | |||
35 | private slots: | ||
36 | void changeBackupPath(void); | ||
37 | void updateSizeInfo(void); | ||
38 | void backup(void); | ||
39 | |||
40 | private: | ||
41 | Ui::BackupDialog ui; | ||
42 | QString m_backupName; | ||
43 | QString m_mountpoint; | ||
44 | BackupSizeThread *m_thread; | ||
45 | ProgressLoggerGui *m_logger; | ||
46 | }; | ||
47 | |||
48 | #endif | ||
49 | |||
diff --git a/rbutil/rbutilqt/gui/backupdialogfrm.ui b/rbutil/rbutilqt/gui/backupdialogfrm.ui new file mode 100644 index 0000000000..5de61d1e91 --- /dev/null +++ b/rbutil/rbutilqt/gui/backupdialogfrm.ui | |||
@@ -0,0 +1,142 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <ui version="4.0"> | ||
3 | <class>BackupDialog</class> | ||
4 | <widget class="QDialog" name="BackupDialog"> | ||
5 | <property name="geometry"> | ||
6 | <rect> | ||
7 | <x>0</x> | ||
8 | <y>0</y> | ||
9 | <width>554</width> | ||
10 | <height>448</height> | ||
11 | </rect> | ||
12 | </property> | ||
13 | <property name="windowTitle"> | ||
14 | <string>Backup</string> | ||
15 | </property> | ||
16 | <layout class="QGridLayout" name="gridLayout_2"> | ||
17 | <item row="0" column="0" rowspan="4"> | ||
18 | <widget class="QLabel" name="label_4"> | ||
19 | <property name="text"> | ||
20 | <string/> | ||
21 | </property> | ||
22 | <property name="pixmap"> | ||
23 | <pixmap resource="../rbutilqt.qrc">:/icons/wizard.jpg</pixmap> | ||
24 | </property> | ||
25 | </widget> | ||
26 | </item> | ||
27 | <item row="0" column="1" colspan="3"> | ||
28 | <widget class="QLabel" name="label_2"> | ||
29 | <property name="text"> | ||
30 | <string><html><head/><body><p>This dialog will create a backup by archiving the contents of the Rockbox installation on the player into a zip file. This will include installed themes and settings stored below the .rockbox folder on the player.</p><p>The backup filename will be created based on the installed version. </p></body></html></string> | ||
31 | </property> | ||
32 | <property name="wordWrap"> | ||
33 | <bool>true</bool> | ||
34 | </property> | ||
35 | </widget> | ||
36 | </item> | ||
37 | <item row="1" column="1" colspan="3"> | ||
38 | <widget class="QGroupBox" name="groupBox"> | ||
39 | <property name="title"> | ||
40 | <string>Backup</string> | ||
41 | </property> | ||
42 | <layout class="QGridLayout" name="gridLayout"> | ||
43 | <item row="0" column="0"> | ||
44 | <widget class="QLabel" name="backupSize"> | ||
45 | <property name="text"> | ||
46 | <string>Size: unknown</string> | ||
47 | </property> | ||
48 | </widget> | ||
49 | </item> | ||
50 | <item row="1" column="0"> | ||
51 | <widget class="QLabel" name="backupLocation"> | ||
52 | <property name="text"> | ||
53 | <string>Backup to: unknown</string> | ||
54 | </property> | ||
55 | </widget> | ||
56 | </item> | ||
57 | <item row="1" column="1"> | ||
58 | <spacer name="horizontalSpacer"> | ||
59 | <property name="orientation"> | ||
60 | <enum>Qt::Horizontal</enum> | ||
61 | </property> | ||
62 | <property name="sizeHint" stdset="0"> | ||
63 | <size> | ||
64 | <width>78</width> | ||
65 | <height>20</height> | ||
66 | </size> | ||
67 | </property> | ||
68 | </spacer> | ||
69 | </item> | ||
70 | <item row="1" column="2"> | ||
71 | <widget class="QPushButton" name="buttonChange"> | ||
72 | <property name="text"> | ||
73 | <string>&Change</string> | ||
74 | </property> | ||
75 | <property name="icon"> | ||
76 | <iconset resource="../rbutilqt.qrc"> | ||
77 | <normaloff>:/icons/edit-find.png</normaloff>:/icons/edit-find.png</iconset> | ||
78 | </property> | ||
79 | </widget> | ||
80 | </item> | ||
81 | </layout> | ||
82 | </widget> | ||
83 | </item> | ||
84 | <item row="2" column="2" colspan="2"> | ||
85 | <spacer name="verticalSpacer"> | ||
86 | <property name="orientation"> | ||
87 | <enum>Qt::Vertical</enum> | ||
88 | </property> | ||
89 | <property name="sizeHint" stdset="0"> | ||
90 | <size> | ||
91 | <width>20</width> | ||
92 | <height>1</height> | ||
93 | </size> | ||
94 | </property> | ||
95 | </spacer> | ||
96 | </item> | ||
97 | <item row="3" column="1"> | ||
98 | <spacer name="horizontalSpacer_2"> | ||
99 | <property name="orientation"> | ||
100 | <enum>Qt::Horizontal</enum> | ||
101 | </property> | ||
102 | <property name="sizeHint" stdset="0"> | ||
103 | <size> | ||
104 | <width>143</width> | ||
105 | <height>20</height> | ||
106 | </size> | ||
107 | </property> | ||
108 | </spacer> | ||
109 | </item> | ||
110 | <item row="3" column="2"> | ||
111 | <widget class="QPushButton" name="buttonBackup"> | ||
112 | <property name="text"> | ||
113 | <string>&Backup</string> | ||
114 | </property> | ||
115 | <property name="icon"> | ||
116 | <iconset resource="../rbutilqt.qrc"> | ||
117 | <normaloff>:/icons/go-next.png</normaloff>:/icons/go-next.png</iconset> | ||
118 | </property> | ||
119 | </widget> | ||
120 | </item> | ||
121 | <item row="3" column="3"> | ||
122 | <widget class="QPushButton" name="buttonCancel"> | ||
123 | <property name="text"> | ||
124 | <string>&Cancel</string> | ||
125 | </property> | ||
126 | <property name="icon"> | ||
127 | <iconset resource="../rbutilqt.qrc"> | ||
128 | <normaloff>:/icons/process-stop.png</normaloff>:/icons/process-stop.png</iconset> | ||
129 | </property> | ||
130 | </widget> | ||
131 | </item> | ||
132 | </layout> | ||
133 | </widget> | ||
134 | <tabstops> | ||
135 | <tabstop>buttonBackup</tabstop> | ||
136 | <tabstop>buttonCancel</tabstop> | ||
137 | </tabstops> | ||
138 | <resources> | ||
139 | <include location="../rbutilqt.qrc"/> | ||
140 | </resources> | ||
141 | <connections/> | ||
142 | </ui> | ||
diff --git a/rbutil/rbutilqt/icons/package-x-generic.png b/rbutil/rbutilqt/icons/package-x-generic.png index 9015426153..6728f590e0 100644 --- a/rbutil/rbutilqt/icons/package-x-generic.png +++ b/rbutil/rbutilqt/icons/package-x-generic.png | |||
Binary files differ | |||
diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp index b62167a4e7..5bce622799 100644 --- a/rbutil/rbutilqt/rbutilqt.cpp +++ b/rbutil/rbutilqt/rbutilqt.cpp | |||
@@ -40,6 +40,7 @@ | |||
40 | #include "ziputil.h" | 40 | #include "ziputil.h" |
41 | #include "manualwidget.h" | 41 | #include "manualwidget.h" |
42 | #include "infowidget.h" | 42 | #include "infowidget.h" |
43 | #include "backupdialog.h" | ||
43 | 44 | ||
44 | #include "progressloggerinterface.h" | 45 | #include "progressloggerinterface.h" |
45 | 46 | ||
@@ -152,6 +153,7 @@ RbUtilQt::RbUtilQt(QWidget *parent) : QMainWindow(parent) | |||
152 | connect(ui.buttonRemoveBootloader, SIGNAL(clicked()), this, SLOT(uninstallBootloader())); | 153 | connect(ui.buttonRemoveBootloader, SIGNAL(clicked()), this, SLOT(uninstallBootloader())); |
153 | connect(ui.buttonSmall, SIGNAL(clicked()), this, SLOT(smallInstall())); | 154 | connect(ui.buttonSmall, SIGNAL(clicked()), this, SLOT(smallInstall())); |
154 | connect(ui.buttonComplete, SIGNAL(clicked()), this, SLOT(completeInstall())); | 155 | connect(ui.buttonComplete, SIGNAL(clicked()), this, SLOT(completeInstall())); |
156 | connect(ui.buttonBackup, SIGNAL(clicked()), this, SLOT(backup())); | ||
155 | 157 | ||
156 | // actions accessible from the menu | 158 | // actions accessible from the menu |
157 | connect(ui.actionComplete_Installation, SIGNAL(triggered()), this, SLOT(completeInstall())); | 159 | connect(ui.actionComplete_Installation, SIGNAL(triggered()), this, SLOT(completeInstall())); |
@@ -386,6 +388,13 @@ void RbUtilQt::updateDevice() | |||
386 | } | 388 | } |
387 | 389 | ||
388 | 390 | ||
391 | void RbUtilQt::backup(void) | ||
392 | { | ||
393 | backupdialog = new BackupDialog(this); | ||
394 | backupdialog->show(); | ||
395 | } | ||
396 | |||
397 | |||
389 | void RbUtilQt::completeInstall() | 398 | void RbUtilQt::completeInstall() |
390 | { | 399 | { |
391 | if(chkConfig(this)) return; | 400 | if(chkConfig(this)) return; |
diff --git a/rbutil/rbutilqt/rbutilqt.h b/rbutil/rbutilqt/rbutilqt.h index 67fbff78e1..3e57af589b 100644 --- a/rbutil/rbutilqt/rbutilqt.h +++ b/rbutil/rbutilqt/rbutilqt.h | |||
@@ -34,6 +34,7 @@ | |||
34 | #include "bootloaderinstallbase.h" | 34 | #include "bootloaderinstallbase.h" |
35 | #include "manualwidget.h" | 35 | #include "manualwidget.h" |
36 | #include "infowidget.h" | 36 | #include "infowidget.h" |
37 | #include "backupdialog.h" | ||
37 | 38 | ||
38 | class RbUtilQt : public QMainWindow | 39 | class RbUtilQt : public QMainWindow |
39 | { | 40 | { |
@@ -47,6 +48,7 @@ class RbUtilQt : public QMainWindow | |||
47 | private: | 48 | private: |
48 | ManualWidget *manual; | 49 | ManualWidget *manual; |
49 | InfoWidget *info; | 50 | InfoWidget *info; |
51 | BackupDialog *backupdialog; | ||
50 | Ui::RbUtilQtFrm ui; | 52 | Ui::RbUtilQtFrm ui; |
51 | 53 | ||
52 | void changeEvent(QEvent *e); | 54 | void changeEvent(QEvent *e); |
@@ -106,6 +108,7 @@ class RbUtilQt : public QMainWindow | |||
106 | void createVoiceFile(void); | 108 | void createVoiceFile(void); |
107 | void downloadDone(bool); | 109 | void downloadDone(bool); |
108 | void downloadInfo(void); | 110 | void downloadInfo(void); |
111 | void backup(void); | ||
109 | 112 | ||
110 | void installVoice(void); | 113 | void installVoice(void); |
111 | void installThemes(void); | 114 | void installThemes(void); |
diff --git a/rbutil/rbutilqt/rbutilqt.pri b/rbutil/rbutilqt/rbutilqt.pri index 6a74a7c52f..330a3cd19a 100644 --- a/rbutil/rbutilqt/rbutilqt.pri +++ b/rbutil/rbutilqt/rbutilqt.pri | |||
@@ -78,6 +78,7 @@ SOURCES += \ | |||
78 | quazip/ioapi.c \ | 78 | quazip/ioapi.c \ |
79 | base/ziputil.cpp \ | 79 | base/ziputil.cpp \ |
80 | comboboxviewdelegate.cpp \ | 80 | comboboxviewdelegate.cpp \ |
81 | gui/backupdialog.cpp \ | ||
81 | 82 | ||
82 | 83 | ||
83 | HEADERS += \ | 84 | HEADERS += \ |
@@ -149,6 +150,7 @@ HEADERS += \ | |||
149 | base/ziputil.h \ | 150 | base/ziputil.h \ |
150 | lame/lame.h \ | 151 | lame/lame.h \ |
151 | comboboxviewdelegate.h \ | 152 | comboboxviewdelegate.h \ |
153 | gui/backupdialog.h \ | ||
152 | 154 | ||
153 | 155 | ||
154 | FORMS += \ | 156 | FORMS += \ |
@@ -165,7 +167,8 @@ FORMS += \ | |||
165 | previewfrm.ui \ | 167 | previewfrm.ui \ |
166 | createvoicefrm.ui \ | 168 | createvoicefrm.ui \ |
167 | sysinfofrm.ui \ | 169 | sysinfofrm.ui \ |
168 | systracefrm.ui | 170 | systracefrm.ui \ |
171 | gui/backupdialogfrm.ui \ | ||
169 | 172 | ||
170 | 173 | ||
171 | TRANSLATIONS += \ | 174 | TRANSLATIONS += \ |
diff --git a/rbutil/rbutilqt/rbutilqtfrm.ui b/rbutil/rbutilqt/rbutilqtfrm.ui index d851b19021..aae4bd4f9b 100644 --- a/rbutil/rbutilqt/rbutilqtfrm.ui +++ b/rbutil/rbutilqt/rbutilqtfrm.ui | |||
@@ -282,9 +282,6 @@ | |||
282 | <property name="wordWrap"> | 282 | <property name="wordWrap"> |
283 | <bool>true</bool> | 283 | <bool>true</bool> |
284 | </property> | 284 | </property> |
285 | <property name="buddy"> | ||
286 | <cstring>buttonRockbox</cstring> | ||
287 | </property> | ||
288 | </widget> | 285 | </widget> |
289 | </item> | 286 | </item> |
290 | <item row="2" column="0"> | 287 | <item row="2" column="0"> |
@@ -549,12 +546,12 @@ | |||
549 | </widget> | 546 | </widget> |
550 | <widget class="QWidget" name="uninstall"> | 547 | <widget class="QWidget" name="uninstall"> |
551 | <attribute name="title"> | 548 | <attribute name="title"> |
552 | <string>&Uninstallation</string> | 549 | <string>Backup && &Uninstallation</string> |
553 | </attribute> | 550 | </attribute> |
554 | <attribute name="toolTip"> | 551 | <attribute name="toolTip"> |
555 | <string>Uninstall Rockbox</string> | 552 | <string>Uninstall Rockbox</string> |
556 | </attribute> | 553 | </attribute> |
557 | <layout class="QGridLayout"> | 554 | <layout class="QGridLayout" name="gridLayout_2"> |
558 | <item row="0" column="0"> | 555 | <item row="0" column="0"> |
559 | <widget class="QToolButton" name="buttonRemoveBootloader"> | 556 | <widget class="QToolButton" name="buttonRemoveBootloader"> |
560 | <property name="text"> | 557 | <property name="text"> |
@@ -616,19 +613,36 @@ | |||
616 | </widget> | 613 | </widget> |
617 | </item> | 614 | </item> |
618 | <item row="2" column="0"> | 615 | <item row="2" column="0"> |
619 | <spacer> | 616 | <widget class="QToolButton" name="buttonBackup"> |
620 | <property name="orientation"> | 617 | <property name="text"> |
621 | <enum>Qt::Vertical</enum> | 618 | <string>Backup</string> |
622 | </property> | 619 | </property> |
623 | <property name="sizeHint" stdset="0"> | 620 | <property name="icon"> |
621 | <iconset resource="rbutilqt.qrc"> | ||
622 | <normaloff>:/icons/package-x-generic.png</normaloff>:/icons/package-x-generic.png</iconset> | ||
623 | </property> | ||
624 | <property name="iconSize"> | ||
624 | <size> | 625 | <size> |
625 | <width>20</width> | 626 | <width>56</width> |
626 | <height>40</height> | 627 | <height>46</height> |
627 | </size> | 628 | </size> |
628 | </property> | 629 | </property> |
629 | </spacer> | 630 | </widget> |
630 | </item> | 631 | </item> |
631 | <item row="2" column="1"> | 632 | <item row="2" column="1"> |
633 | <widget class="QLabel" name="labelBackup"> | ||
634 | <property name="text"> | ||
635 | <string><html><head/><body><p><span style=" font-weight:600;">Backup current installation.</span></p><p>Create a backup by archiving the contents of the Rockbox installation folder.</p></body></html></string> | ||
636 | </property> | ||
637 | <property name="alignment"> | ||
638 | <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> | ||
639 | </property> | ||
640 | <property name="wordWrap"> | ||
641 | <bool>true</bool> | ||
642 | </property> | ||
643 | </widget> | ||
644 | </item> | ||
645 | <item row="3" column="0"> | ||
632 | <spacer> | 646 | <spacer> |
633 | <property name="orientation"> | 647 | <property name="orientation"> |
634 | <enum>Qt::Vertical</enum> | 648 | <enum>Qt::Vertical</enum> |