summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/gui
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/rbutilqt/gui')
-rw-r--r--rbutil/rbutilqt/gui/manualwidget.cpp107
-rw-r--r--rbutil/rbutilqt/gui/manualwidget.h42
-rw-r--r--rbutil/rbutilqt/gui/manualwidgetfrm.ui116
-rw-r--r--rbutil/rbutilqt/gui/selectiveinstallwidget.cpp64
-rw-r--r--rbutil/rbutilqt/gui/selectiveinstallwidget.h7
-rw-r--r--rbutil/rbutilqt/gui/selectiveinstallwidgetfrm.ui167
6 files changed, 160 insertions, 343 deletions
diff --git a/rbutil/rbutilqt/gui/manualwidget.cpp b/rbutil/rbutilqt/gui/manualwidget.cpp
deleted file mode 100644
index c10288df10..0000000000
--- a/rbutil/rbutilqt/gui/manualwidget.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
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 <QWidget>
20#include <QMessageBox>
21#include <QDebug>
22#include "manualwidget.h"
23#include "rbutilqt.h"
24#include "rbsettings.h"
25#include "serverinfo.h"
26#include "systeminfo.h"
27#include "Logger.h"
28
29ManualWidget::ManualWidget(QWidget *parent) : QWidget(parent)
30{
31 ui.setupUi(this);
32 ui.radioPdf->setChecked(true);
33 m_platform = RbSettings::value(RbSettings::Platform).toString();
34 connect(ui.buttonDownloadManual, SIGNAL(clicked()), this, SLOT(downloadManual()));
35}
36
37
38void ManualWidget::updateManual()
39{
40 LOG_INFO() << "updating manual URLs";
41 m_platform = RbSettings::value(RbSettings::Platform).toString();
42 if(!m_platform.isEmpty())
43 {
44 ui.labelPdfManual->setText(tr("<a href='%1'>PDF Manual</a>")
45 .arg(ServerInfo::instance()->platformValue(ServerInfo::ManualPdfUrl, m_platform).toString()));
46 ui.labelHtmlManual->setText(tr("<a href='%1'>HTML Manual (opens in browser)</a>")
47 .arg(ServerInfo::instance()->platformValue(ServerInfo::ManualHtmlUrl, m_platform).toString()));
48 }
49 else {
50 ui.labelPdfManual->setText(tr("Select a device for a link to the correct manual"));
51 ui.labelHtmlManual->setText(tr("<a href='%1'>Manual Overview</a>")
52 .arg("http://www.rockbox.org/manual.shtml"));
53 }
54}
55
56
57void ManualWidget::downloadManual(void)
58{
59 if(RbUtilQt::chkConfig(this)) {
60 return;
61 }
62 if(QMessageBox::question(this, tr("Confirm download"),
63 tr("Do you really want to download the manual? The manual will be saved "
64 "to the root folder of your player."),
65 QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes) {
66 return;
67 }
68 QString manual = ServerInfo::instance()->platformValue(ServerInfo::ManualPdfUrl).toString();
69
70 ProgressLoggerGui* logger = new ProgressLoggerGui(this);
71 logger->show();
72 ZipInstaller *installer = new ZipInstaller(this);
73 installer->setMountPoint(RbSettings::value(RbSettings::Mountpoint).toString());
74 if(!RbSettings::value(RbSettings::CacheDisabled).toBool())
75 installer->setCache(true);
76
77 if(ui.radioPdf->isChecked()) {
78 installer->setUrl(ServerInfo::instance()->platformValue(
79 ServerInfo::ManualPdfUrl, m_platform).toString());
80 installer->setLogSection("Manual (PDF)");
81 }
82 else {
83 installer->setUrl(ServerInfo::instance()->platformValue(
84 ServerInfo::ManualZipUrl, m_platform).toString());
85 installer->setLogSection("Manual (HTML)");
86 }
87 installer->setLogVersion();
88 installer->setUnzip(false);
89
90 connect(installer, SIGNAL(logItem(QString, int)), logger, SLOT(addItem(QString, int)));
91 connect(installer, SIGNAL(logProgress(int, int)), logger, SLOT(setProgress(int, int)));
92 connect(installer, SIGNAL(done(bool)), logger, SLOT(setFinished()));
93 connect(logger, SIGNAL(aborted()), installer, SLOT(abort()));
94 installer->install();
95}
96
97
98void ManualWidget::changeEvent(QEvent *e)
99{
100 if(e->type() == QEvent::LanguageChange) {
101 ui.retranslateUi(this);
102 updateManual();
103 } else {
104 QWidget::changeEvent(e);
105 }
106}
107
diff --git a/rbutil/rbutilqt/gui/manualwidget.h b/rbutil/rbutilqt/gui/manualwidget.h
deleted file mode 100644
index d6095d3e14..0000000000
--- a/rbutil/rbutilqt/gui/manualwidget.h
+++ /dev/null
@@ -1,42 +0,0 @@
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 MANUALWIDGET_H
20#define MANUALWIDGET_H
21
22#include <QWidget>
23#include "ui_manualwidgetfrm.h"
24
25class ManualWidget : public QWidget
26{
27 Q_OBJECT
28 public:
29 ManualWidget(QWidget *parent = nullptr);
30
31 public slots:
32 void downloadManual(void);
33 void updateManual();
34
35 private:
36 void changeEvent(QEvent*);
37 Ui::ManualWidgetFrm ui;
38 QString m_platform;
39};
40
41#endif
42
diff --git a/rbutil/rbutilqt/gui/manualwidgetfrm.ui b/rbutil/rbutilqt/gui/manualwidgetfrm.ui
deleted file mode 100644
index add26736c9..0000000000
--- a/rbutil/rbutilqt/gui/manualwidgetfrm.ui
+++ /dev/null
@@ -1,116 +0,0 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ui version="4.0">
3 <class>ManualWidgetFrm</class>
4 <widget class="QWidget" name="ManualWidgetFrm">
5 <property name="geometry">
6 <rect>
7 <x>0</x>
8 <y>0</y>
9 <width>543</width>
10 <height>255</height>
11 </rect>
12 </property>
13 <property name="windowTitle">
14 <string>Manual</string>
15 </property>
16 <layout class="QGridLayout" name="gridLayout">
17 <item row="0" column="0">
18 <widget class="QGroupBox" name="groupBox_2">
19 <property name="title">
20 <string>Read the manual</string>
21 </property>
22 <layout class="QGridLayout">
23 <item row="0" column="0">
24 <widget class="QLabel" name="labelPdfManual">
25 <property name="text">
26 <string>PDF manual</string>
27 </property>
28 <property name="openExternalLinks">
29 <bool>true</bool>
30 </property>
31 <property name="textInteractionFlags">
32 <set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse</set>
33 </property>
34 </widget>
35 </item>
36 <item row="1" column="0">
37 <widget class="QLabel" name="labelHtmlManual">
38 <property name="text">
39 <string>HTML manual</string>
40 </property>
41 <property name="openExternalLinks">
42 <bool>true</bool>
43 </property>
44 <property name="textInteractionFlags">
45 <set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse</set>
46 </property>
47 </widget>
48 </item>
49 </layout>
50 </widget>
51 </item>
52 <item row="1" column="0">
53 <widget class="QGroupBox" name="groupBox">
54 <property name="title">
55 <string>Download the manual</string>
56 </property>
57 <layout class="QGridLayout" name="_2">
58 <item row="0" column="0">
59 <layout class="QVBoxLayout" name="_3">
60 <item>
61 <widget class="QRadioButton" name="radioPdf">
62 <property name="text">
63 <string>&amp;PDF version</string>
64 </property>
65 </widget>
66 </item>
67 <item>
68 <widget class="QRadioButton" name="radioHtmlzip">
69 <property name="text">
70 <string>&amp;HTML version (zip file)</string>
71 </property>
72 </widget>
73 </item>
74 </layout>
75 </item>
76 <item row="0" column="1">
77 <spacer>
78 <property name="orientation">
79 <enum>Qt::Horizontal</enum>
80 </property>
81 <property name="sizeHint" stdset="0">
82 <size>
83 <width>40</width>
84 <height>20</height>
85 </size>
86 </property>
87 </spacer>
88 </item>
89 <item row="0" column="2">
90 <widget class="QPushButton" name="buttonDownloadManual">
91 <property name="text">
92 <string>Down&amp;load</string>
93 </property>
94 </widget>
95 </item>
96 </layout>
97 </widget>
98 </item>
99 <item row="2" column="0">
100 <spacer name="verticalSpacer">
101 <property name="orientation">
102 <enum>Qt::Vertical</enum>
103 </property>
104 <property name="sizeHint" stdset="0">
105 <size>
106 <width>20</width>
107 <height>40</height>
108 </size>
109 </property>
110 </spacer>
111 </item>
112 </layout>
113 </widget>
114 <resources/>
115 <connections/>
116</ui>
diff --git a/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp b/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp
index 88b085e9b3..50017e65d4 100644
--- a/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp
+++ b/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp
@@ -40,6 +40,11 @@ SelectiveInstallWidget::SelectiveInstallWidget(QWidget* parent) : QWidget(parent
40 ui.themesCheckbox->setChecked(RbSettings::value(RbSettings::InstallThemes).toBool()); 40 ui.themesCheckbox->setChecked(RbSettings::value(RbSettings::InstallThemes).toBool());
41 ui.gamefileCheckbox->setChecked(RbSettings::value(RbSettings::InstallGamefiles).toBool()); 41 ui.gamefileCheckbox->setChecked(RbSettings::value(RbSettings::InstallGamefiles).toBool());
42 ui.voiceCheckbox->setChecked(RbSettings::value(RbSettings::InstallVoice).toBool()); 42 ui.voiceCheckbox->setChecked(RbSettings::value(RbSettings::InstallVoice).toBool());
43 ui.manualCheckbox->setChecked(RbSettings::value(RbSettings::InstallManual).toBool());
44
45 ui.manualCombobox->addItem("PDF", "pdf");
46 ui.manualCombobox->addItem("HTML (zip)", "zip");
47 ui.manualCombobox->addItem("HTML", "html");
43 48
44 // check if Rockbox is installed by looking after rockbox-info.txt. 49 // check if Rockbox is installed by looking after rockbox-info.txt.
45 // If installed uncheck bootloader installation. 50 // If installed uncheck bootloader installation.
@@ -201,6 +206,7 @@ void SelectiveInstallWidget::saveSettings(void)
201 RbSettings::setValue(RbSettings::InstallThemes, ui.themesCheckbox->isChecked()); 206 RbSettings::setValue(RbSettings::InstallThemes, ui.themesCheckbox->isChecked());
202 RbSettings::setValue(RbSettings::InstallGamefiles, ui.gamefileCheckbox->isChecked()); 207 RbSettings::setValue(RbSettings::InstallGamefiles, ui.gamefileCheckbox->isChecked());
203 RbSettings::setValue(RbSettings::InstallVoice, ui.voiceCheckbox->isChecked()); 208 RbSettings::setValue(RbSettings::InstallVoice, ui.voiceCheckbox->isChecked());
209 RbSettings::setValue(RbSettings::InstallManual, ui.manualCheckbox->isChecked());
204 RbSettings::setValue(RbSettings::VoiceLanguage, ui.voiceCombobox->currentData().toString()); 210 RbSettings::setValue(RbSettings::VoiceLanguage, ui.voiceCombobox->currentData().toString());
205} 211}
206 212
@@ -244,7 +250,7 @@ void SelectiveInstallWidget::continueInstall(bool error)
244 if(error) { 250 if(error) {
245 LOG_ERROR() << "Last part returned error."; 251 LOG_ERROR() << "Last part returned error.";
246 m_logger->setFinished(); 252 m_logger->setFinished();
247 m_installStage = 7; 253 m_installStage = 9;
248 } 254 }
249 m_installStage++; 255 m_installStage++;
250 switch(m_installStage) { 256 switch(m_installStage) {
@@ -255,11 +261,12 @@ void SelectiveInstallWidget::continueInstall(bool error)
255 case 4: installThemes(); break; 261 case 4: installThemes(); break;
256 case 5: installGamefiles(); break; 262 case 5: installGamefiles(); break;
257 case 6: installVoicefile(); break; 263 case 6: installVoicefile(); break;
258 case 7: installBootloaderPost(); break; 264 case 7: installManual(); break;
265 case 8: installBootloaderPost(); break;
259 default: break; 266 default: break;
260 } 267 }
261 268
262 if(m_installStage > 6) { 269 if(m_installStage > 8) {
263 LOG_INFO() << "All install stages done."; 270 LOG_INFO() << "All install stages done.";
264 m_logger->setFinished(); 271 m_logger->setFinished();
265 if(m_blmethod != "none") { 272 if(m_blmethod != "none") {
@@ -548,6 +555,57 @@ void SelectiveInstallWidget::installVoicefile(void)
548 } 555 }
549} 556}
550 557
558void SelectiveInstallWidget::installManual(void)
559{
560 if(ui.manualCheckbox->isChecked() && ui.manualCheckbox->isEnabled()) {
561 LOG_INFO() << "installing Manual";
562 QString mantype = ui.manualCombobox->currentData().toString();
563
564 RockboxInfo installInfo(m_mountpoint);
565 QString manualurl;
566 QString logversion;
567 QString relversion = installInfo.release();
568 if(m_buildtype != SystemInfo::BuildRelease) {
569 // release is empty for non-release versions (i.e. daily / current)
570 logversion = installInfo.release();
571 }
572
573 manualurl = SystemInfo::value(SystemInfo::ManualUrl, m_buildtype).toString();
574 manualurl.replace("%RELVERSION%", m_versions[m_buildtype]);
575 QString model = SystemInfo::platformValue(SystemInfo::Manual, m_target).toString();
576 if(model.isEmpty())
577 model = m_target;
578 manualurl.replace("%MODEL%", model);
579
580 if(mantype == "pdf")
581 manualurl.replace("%FORMAT%", ".pdf");
582 else
583 manualurl.replace("%FORMAT%", "-html.zip");
584
585 // create new zip installer
586 if(m_zipinstaller != nullptr) m_zipinstaller->deleteLater();
587 m_zipinstaller = new ZipInstaller(this);
588 m_zipinstaller->setUrl(manualurl);
589 m_zipinstaller->setLogSection("Manual Voice (" + mantype + ")");
590 m_zipinstaller->setLogVersion(logversion);
591 m_zipinstaller->setMountPoint(m_mountpoint);
592 if(!RbSettings::value(RbSettings::CacheDisabled).toBool())
593 m_zipinstaller->setCache(true);
594 // if type is html extract it.
595 m_zipinstaller->setUnzip(mantype == "html");
596
597 connect(m_zipinstaller, SIGNAL(done(bool)), this, SLOT(continueInstall(bool)));
598 connect(m_zipinstaller, SIGNAL(logItem(QString, int)), m_logger, SLOT(addItem(QString, int)));
599 connect(m_zipinstaller, SIGNAL(logProgress(int, int)), m_logger, SLOT(setProgress(int, int)));
600 connect(m_logger, SIGNAL(aborted()), m_zipinstaller, SLOT(abort()));
601 m_zipinstaller->install();
602 }
603 else {
604 LOG_INFO() << "Manual install disabled.";
605 emit installSkipped(false);
606 }
607}
608
551void SelectiveInstallWidget::customizeThemes(void) 609void SelectiveInstallWidget::customizeThemes(void)
552{ 610{
553 if(m_themesinstaller == nullptr) 611 if(m_themesinstaller == nullptr)
diff --git a/rbutil/rbutilqt/gui/selectiveinstallwidget.h b/rbutil/rbutilqt/gui/selectiveinstallwidget.h
index 38cce78a46..7a969a9e89 100644
--- a/rbutil/rbutilqt/gui/selectiveinstallwidget.h
+++ b/rbutil/rbutilqt/gui/selectiveinstallwidget.h
@@ -39,15 +39,18 @@ class SelectiveInstallWidget : public QWidget
39 39
40 private slots: 40 private slots:
41 void continueInstall(bool); 41 void continueInstall(bool);
42 void customizeThemes(void);
43 void selectedVersionChanged(int);
44
45 private:
42 void installBootloader(void); 46 void installBootloader(void);
43 void installRockbox(void); 47 void installRockbox(void);
44 void installFonts(void); 48 void installFonts(void);
45 void installVoicefile(void); 49 void installVoicefile(void);
50 void installManual(void);
46 void installThemes(void); 51 void installThemes(void);
47 void installGamefiles(void); 52 void installGamefiles(void);
48 void installBootloaderPost(void); 53 void installBootloaderPost(void);
49 void customizeThemes(void);
50 void selectedVersionChanged(int);
51 54
52 signals: 55 signals:
53 void installSkipped(bool); 56 void installSkipped(bool);
diff --git a/rbutil/rbutilqt/gui/selectiveinstallwidgetfrm.ui b/rbutil/rbutilqt/gui/selectiveinstallwidgetfrm.ui
index a5bb023f2e..06f2af92b8 100644
--- a/rbutil/rbutilqt/gui/selectiveinstallwidgetfrm.ui
+++ b/rbutil/rbutilqt/gui/selectiveinstallwidgetfrm.ui
@@ -7,7 +7,7 @@
7 <x>0</x> 7 <x>0</x>
8 <y>0</y> 8 <y>0</y>
9 <width>663</width> 9 <width>663</width>
10 <height>399</height> 10 <height>409</height>
11 </rect> 11 </rect>
12 </property> 12 </property>
13 <property name="sizePolicy"> 13 <property name="sizePolicy">
@@ -54,6 +54,20 @@
54 <string>Rockbox components to install</string> 54 <string>Rockbox components to install</string>
55 </property> 55 </property>
56 <layout class="QGridLayout" name="gridLayout_2"> 56 <layout class="QGridLayout" name="gridLayout_2">
57 <item row="0" column="0">
58 <widget class="QCheckBox" name="bootloaderCheckbox">
59 <property name="text">
60 <string>&amp;Bootloader</string>
61 </property>
62 <property name="icon">
63 <iconset resource="../rbutilqt.qrc">
64 <normaloff>:/icons/preferences-system.svg</normaloff>:/icons/preferences-system.svg</iconset>
65 </property>
66 <property name="checked">
67 <bool>true</bool>
68 </property>
69 </widget>
70 </item>
57 <item row="1" column="0"> 71 <item row="1" column="0">
58 <widget class="QCheckBox" name="rockboxCheckbox"> 72 <widget class="QCheckBox" name="rockboxCheckbox">
59 <property name="text"> 73 <property name="text">
@@ -68,8 +82,8 @@
68 </property> 82 </property>
69 </widget> 83 </widget>
70 </item> 84 </item>
71 <item row="0" column="1"> 85 <item row="3" column="2">
72 <widget class="QLabel" name="bootloaderLabel"> 86 <widget class="QLabel" name="themesLabel">
73 <property name="sizePolicy"> 87 <property name="sizePolicy">
74 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred"> 88 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
75 <horstretch>0</horstretch> 89 <horstretch>0</horstretch>
@@ -77,7 +91,7 @@
77 </sizepolicy> 91 </sizepolicy>
78 </property> 92 </property>
79 <property name="text"> 93 <property name="text">
80 <string>The bootloader is required for starting Rockbox. Only necessary for first time install.</string> 94 <string>Themes allow adjusting the user interface of Rockbox. Use &quot;Customize&quot; to select themes.</string>
81 </property> 95 </property>
82 <property name="wordWrap"> 96 <property name="wordWrap">
83 <bool>true</bool> 97 <bool>true</bool>
@@ -95,33 +109,6 @@
95 </property> 109 </property>
96 </widget> 110 </widget>
97 </item> 111 </item>
98 <item row="3" column="3">
99 <widget class="QPushButton" name="themesCustomize">
100 <property name="text">
101 <string>Customize</string>
102 </property>
103 <property name="icon">
104 <iconset resource="../rbutilqt.qrc">
105 <normaloff>:/icons/preferences-system.svg</normaloff>:/icons/preferences-system.svg</iconset>
106 </property>
107 </widget>
108 </item>
109 <item row="1" column="2">
110 <spacer name="horizontalSpacer">
111 <property name="orientation">
112 <enum>Qt::Horizontal</enum>
113 </property>
114 <property name="sizeType">
115 <enum>QSizePolicy::Minimum</enum>
116 </property>
117 <property name="sizeHint" stdset="0">
118 <size>
119 <width>1</width>
120 <height>1</height>
121 </size>
122 </property>
123 </spacer>
124 </item>
125 <item row="2" column="0"> 112 <item row="2" column="0">
126 <widget class="QCheckBox" name="fontsCheckbox"> 113 <widget class="QCheckBox" name="fontsCheckbox">
127 <property name="text"> 114 <property name="text">
@@ -136,19 +123,8 @@
136 </property> 123 </property>
137 </widget> 124 </widget>
138 </item> 125 </item>
139 <item row="6" column="0"> 126 <item row="0" column="2">
140 <widget class="QCheckBox" name="gamefileCheckbox"> 127 <widget class="QLabel" name="bootloaderLabel">
141 <property name="text">
142 <string>Game Files</string>
143 </property>
144 <property name="icon">
145 <iconset resource="../rbutilqt.qrc">
146 <normaloff>:/icons/input-gaming.svg</normaloff>:/icons/input-gaming.svg</iconset>
147 </property>
148 </widget>
149 </item>
150 <item row="3" column="1">
151 <widget class="QLabel" name="themesLabel">
152 <property name="sizePolicy"> 128 <property name="sizePolicy">
153 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred"> 129 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
154 <horstretch>0</horstretch> 130 <horstretch>0</horstretch>
@@ -156,15 +132,15 @@
156 </sizepolicy> 132 </sizepolicy>
157 </property> 133 </property>
158 <property name="text"> 134 <property name="text">
159 <string>Themes allow adjusting the user interface of Rockbox. Use &quot;Customize&quot; to select themes.</string> 135 <string>The bootloader is required for starting Rockbox. Only necessary for first time install.</string>
160 </property> 136 </property>
161 <property name="wordWrap"> 137 <property name="wordWrap">
162 <bool>true</bool> 138 <bool>true</bool>
163 </property> 139 </property>
164 </widget> 140 </widget>
165 </item> 141 </item>
166 <item row="2" column="1"> 142 <item row="6" column="2">
167 <widget class="QLabel" name="fontsLabel"> 143 <widget class="QLabel" name="gameLabel">
168 <property name="sizePolicy"> 144 <property name="sizePolicy">
169 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred"> 145 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
170 <horstretch>0</horstretch> 146 <horstretch>0</horstretch>
@@ -172,31 +148,26 @@
172 </sizepolicy> 148 </sizepolicy>
173 </property> 149 </property>
174 <property name="text"> 150 <property name="text">
175 <string>Additional fonts for the User Interface.</string> 151 <string>Some game plugins require additional files.</string>
176 </property> 152 </property>
177 <property name="wordWrap"> 153 <property name="wordWrap">
178 <bool>true</bool> 154 <bool>true</bool>
179 </property> 155 </property>
180 </widget> 156 </widget>
181 </item> 157 </item>
182 <item row="6" column="1"> 158 <item row="3" column="4">
183 <widget class="QLabel" name="gameLabel"> 159 <widget class="QPushButton" name="themesCustomize">
184 <property name="sizePolicy">
185 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
186 <horstretch>0</horstretch>
187 <verstretch>0</verstretch>
188 </sizepolicy>
189 </property>
190 <property name="text"> 160 <property name="text">
191 <string>Some game plugins require additional files.</string> 161 <string>Customize</string>
192 </property> 162 </property>
193 <property name="wordWrap"> 163 <property name="icon">
194 <bool>true</bool> 164 <iconset resource="../rbutilqt.qrc">
165 <normaloff>:/icons/preferences-system.svg</normaloff>:/icons/preferences-system.svg</iconset>
195 </property> 166 </property>
196 </widget> 167 </widget>
197 </item> 168 </item>
198 <item row="1" column="1"> 169 <item row="2" column="2">
199 <widget class="QLabel" name="rockboxLabel"> 170 <widget class="QLabel" name="fontsLabel">
200 <property name="sizePolicy"> 171 <property name="sizePolicy">
201 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred"> 172 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
202 <horstretch>0</horstretch> 173 <horstretch>0</horstretch>
@@ -204,24 +175,55 @@
204 </sizepolicy> 175 </sizepolicy>
205 </property> 176 </property>
206 <property name="text"> 177 <property name="text">
207 <string>The main Rockbox firmware.</string> 178 <string>Additional fonts for the User Interface.</string>
208 </property> 179 </property>
209 <property name="wordWrap"> 180 <property name="wordWrap">
210 <bool>true</bool> 181 <bool>true</bool>
211 </property> 182 </property>
212 </widget> 183 </widget>
213 </item> 184 </item>
214 <item row="0" column="0"> 185 <item row="7" column="2">
215 <widget class="QCheckBox" name="bootloaderCheckbox"> 186 <widget class="QLabel" name="voiceLabel">
216 <property name="text"> 187 <property name="text">
217 <string>&amp;Bootloader</string> 188 <string>Install prerendered voice file.</string>
189 </property>
190 </widget>
191 </item>
192 <item row="6" column="0">
193 <widget class="QCheckBox" name="gamefileCheckbox">
194 <property name="text">
195 <string>Game Files</string>
218 </property> 196 </property>
219 <property name="icon"> 197 <property name="icon">
220 <iconset resource="../rbutilqt.qrc"> 198 <iconset resource="../rbutilqt.qrc">
221 <normaloff>:/icons/preferences-system.svg</normaloff>:/icons/preferences-system.svg</iconset> 199 <normaloff>:/icons/input-gaming.svg</normaloff>:/icons/input-gaming.svg</iconset>
222 </property> 200 </property>
223 <property name="checked"> 201 </widget>
224 <bool>true</bool> 202 </item>
203 <item row="1" column="3">
204 <spacer name="horizontalSpacer">
205 <property name="orientation">
206 <enum>Qt::Horizontal</enum>
207 </property>
208 <property name="sizeType">
209 <enum>QSizePolicy::Minimum</enum>
210 </property>
211 <property name="sizeHint" stdset="0">
212 <size>
213 <width>1</width>
214 <height>1</height>
215 </size>
216 </property>
217 </spacer>
218 </item>
219 <item row="8" column="0">
220 <widget class="QCheckBox" name="manualCheckbox">
221 <property name="text">
222 <string>&amp;Manual</string>
223 </property>
224 <property name="icon">
225 <iconset resource="../rbutilqt.qrc">
226 <normaloff>:/icons/edit-find.svg</normaloff>:/icons/edit-find.svg</iconset>
225 </property> 227 </property>
226 </widget> 228 </widget>
227 </item> 229 </item>
@@ -236,15 +238,34 @@
236 </property> 238 </property>
237 </widget> 239 </widget>
238 </item> 240 </item>
239 <item row="7" column="1"> 241 <item row="7" column="4">
240 <widget class="QLabel" name="voiceLabel"> 242 <widget class="QComboBox" name="voiceCombobox"/>
243 </item>
244 <item row="1" column="2">
245 <widget class="QLabel" name="rockboxLabel">
246 <property name="sizePolicy">
247 <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
248 <horstretch>0</horstretch>
249 <verstretch>0</verstretch>
250 </sizepolicy>
251 </property>
241 <property name="text"> 252 <property name="text">
242 <string>Install prerendered voice file.</string> 253 <string>The main Rockbox firmware.</string>
254 </property>
255 <property name="wordWrap">
256 <bool>true</bool>
243 </property> 257 </property>
244 </widget> 258 </widget>
245 </item> 259 </item>
246 <item row="7" column="3"> 260 <item row="8" column="2">
247 <widget class="QComboBox" name="voiceCombobox"/> 261 <widget class="QLabel" name="manualLabel">
262 <property name="text">
263 <string>Save a copy of the manual on the player.</string>
264 </property>
265 </widget>
266 </item>
267 <item row="8" column="4">
268 <widget class="QComboBox" name="manualCombobox"/>
248 </item> 269 </item>
249 </layout> 270 </layout>
250 </widget> 271 </widget>