diff options
Diffstat (limited to 'rbutil')
-rw-r--r-- | rbutil/rbutilqt/installthemes.cpp | 296 | ||||
-rw-r--r-- | rbutil/rbutilqt/installthemes.h | 72 | ||||
-rw-r--r-- | rbutil/rbutilqt/installthemesfrm.ui | 133 | ||||
-rw-r--r-- | rbutil/rbutilqt/installzip.cpp | 3 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutil.ini | 3 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.cpp | 20 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.h | 1 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.pro | 4 | ||||
-rw-r--r-- | rbutil/rbutilqt/settings.h | 0 |
9 files changed, 527 insertions, 5 deletions
diff --git a/rbutil/rbutilqt/installthemes.cpp b/rbutil/rbutilqt/installthemes.cpp new file mode 100644 index 0000000000..53cf41d496 --- /dev/null +++ b/rbutil/rbutilqt/installthemes.cpp | |||
@@ -0,0 +1,296 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2007 by Dominik Riebeling | ||
10 | * $Id$ | ||
11 | * | ||
12 | * All files in this archive are subject to the GNU General Public License. | ||
13 | * See the file COPYING in the source tree root for full license agreement. | ||
14 | * | ||
15 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
16 | * KIND, either express or implied. | ||
17 | * | ||
18 | ****************************************************************************/ | ||
19 | |||
20 | #include <QtGui> | ||
21 | |||
22 | #include "ui_installthemesfrm.h" | ||
23 | #include "installthemes.h" | ||
24 | #include "installzip.h" | ||
25 | #include "progressloggergui.h" | ||
26 | |||
27 | |||
28 | ThemesInstallWindow::ThemesInstallWindow(QWidget *parent) : QDialog(parent) | ||
29 | { | ||
30 | ui.setupUi(this); | ||
31 | ui.listThemes->setAlternatingRowColors(true); | ||
32 | ui.listThemes->setSelectionMode(QAbstractItemView::ExtendedSelection); | ||
33 | ui.themePreview->clear(); | ||
34 | ui.themePreview->setText(tr("no theme selected")); | ||
35 | |||
36 | connect(ui.buttonCancel, SIGNAL(clicked()), this, SLOT(close())); | ||
37 | connect(ui.buttonOk, SIGNAL(clicked()), this, SLOT(accept())); | ||
38 | } | ||
39 | |||
40 | |||
41 | QString ThemesInstallWindow::resolution() | ||
42 | { | ||
43 | QString resolution; | ||
44 | devices->beginGroup(userSettings->value("defaults/platform").toString()); | ||
45 | resolution = devices->value("resolution").toString(); | ||
46 | devices->endGroup(); | ||
47 | return resolution; | ||
48 | } | ||
49 | |||
50 | |||
51 | void ThemesInstallWindow::setDeviceSettings(QSettings *dev) | ||
52 | { | ||
53 | devices = dev; | ||
54 | qDebug() << "setDeviceSettings()" << devices; | ||
55 | } | ||
56 | |||
57 | |||
58 | void ThemesInstallWindow::setUserSettings(QSettings *user) | ||
59 | { | ||
60 | userSettings = user; | ||
61 | } | ||
62 | |||
63 | |||
64 | void ThemesInstallWindow::downloadInfo() | ||
65 | { | ||
66 | // try to get the current build information | ||
67 | getter = new HttpGet(this); | ||
68 | connect(getter, SIGNAL(done(bool)), this, SLOT(downloadDone(bool))); | ||
69 | |||
70 | qDebug() << "downloading themes info"; | ||
71 | themesInfo.open(); | ||
72 | qDebug() << "file:" << themesInfo.fileName(); | ||
73 | themesInfo.close(); | ||
74 | |||
75 | QUrl url; | ||
76 | url = QUrl(devices->value("themes_url").toString() + "/rbutilqt.php?res=" + resolution()); | ||
77 | qDebug() << "downloadInfo()" << url; | ||
78 | qDebug() << url.queryItems(); | ||
79 | getter->setProxy(proxy); | ||
80 | getter->setFile(&themesInfo); | ||
81 | getter->getFile(url); | ||
82 | } | ||
83 | |||
84 | |||
85 | void ThemesInstallWindow::downloadDone(int id, bool error) | ||
86 | { | ||
87 | downloadDone(error); | ||
88 | qDebug() << "downloadDone(bool) =" << id << error; | ||
89 | } | ||
90 | |||
91 | |||
92 | void ThemesInstallWindow::downloadDone(bool error) | ||
93 | { | ||
94 | qDebug() << "downloadDone(bool) =" << error; | ||
95 | |||
96 | disconnect(logger, SIGNAL(aborted()), getter, SLOT(abort())); | ||
97 | disconnect(logger, SIGNAL(aborted()), this, SLOT(close())); | ||
98 | themesInfo.open(); | ||
99 | |||
100 | QSettings iniDetails(themesInfo.fileName(), QSettings::IniFormat, this); | ||
101 | QStringList tl = iniDetails.childGroups(); | ||
102 | qDebug() << tl.size(); | ||
103 | qDebug() << iniDetails.value("error/code").toString() | ||
104 | << iniDetails.value("error/description").toString() | ||
105 | << iniDetails.value("error/query").toString(); | ||
106 | |||
107 | if(error) { | ||
108 | logger->addItem(tr("Network error: %1.\nPlease check your network and proxy settings.") | ||
109 | .arg(getter->errorString()), LOGERROR); | ||
110 | getter->abort(); | ||
111 | logger->abort(); | ||
112 | disconnect(getter, SIGNAL(done(bool)), this, SLOT(downloadDone(bool))); | ||
113 | connect(logger, SIGNAL(closed()), this, SLOT(close())); | ||
114 | return; | ||
115 | } | ||
116 | // handle possible error codes | ||
117 | if(iniDetails.value("error/code").toInt() != 0 || !iniDetails.contains("error/code")) { | ||
118 | qDebug() << "error!"; | ||
119 | logger->addItem(tr("the following error occured:\n%1") | ||
120 | .arg(iniDetails.value("error/description", "unknown error").toString()), LOGERROR); | ||
121 | logger->abort(); | ||
122 | connect(logger, SIGNAL(closed()), this, SLOT(close())); | ||
123 | return; | ||
124 | } | ||
125 | logger->addItem(tr("done."), LOGOK); | ||
126 | logger->abort(); | ||
127 | logger->close(); | ||
128 | |||
129 | // setup list | ||
130 | for(int i = 0; i < tl.size(); i++) { | ||
131 | iniDetails.beginGroup(tl.at(i)); | ||
132 | // skip all themes without name field set (i.e. error section) | ||
133 | if(iniDetails.value("name").toString().isEmpty()) continue; | ||
134 | QListWidgetItem *w = new QListWidgetItem; | ||
135 | w->setData(Qt::DisplayRole, iniDetails.value("name").toString()); | ||
136 | w->setData(Qt::UserRole, tl.at(i)); | ||
137 | ui.listThemes->addItem(w); | ||
138 | |||
139 | iniDetails.endGroup(); | ||
140 | } | ||
141 | connect(ui.listThemes, SIGNAL(currentRowChanged(int)), this, SLOT(updateDetails(int))); | ||
142 | } | ||
143 | |||
144 | |||
145 | void ThemesInstallWindow::updateDetails(int row) | ||
146 | { | ||
147 | if(row == currentItem) return; | ||
148 | |||
149 | currentItem = row; | ||
150 | qDebug() << "updateDetails(int) =" << row; | ||
151 | QSettings iniDetails(themesInfo.fileName(), QSettings::IniFormat, this); | ||
152 | ui.themeDescription->setText(tr("fetching details for %1") | ||
153 | .arg(ui.listThemes->item(row)->data(Qt::DisplayRole).toString())); | ||
154 | ui.themePreview->clear(); | ||
155 | ui.themePreview->setText(tr("fetching preview ...")); | ||
156 | |||
157 | int size = 0; | ||
158 | |||
159 | iniDetails.beginGroup(ui.listThemes->item(row)->data(Qt::UserRole).toString()); | ||
160 | size += iniDetails.value("size").toInt(); | ||
161 | qDebug() << ui.listThemes->item(row)->data(Qt::UserRole).toString() << size; | ||
162 | iniDetails.endGroup(); | ||
163 | ui.labelSize->setText(tr("Download size %1 kiB").arg(size)); | ||
164 | |||
165 | iniDetails.beginGroup(ui.listThemes->item(row)->data(Qt::UserRole).toString()); | ||
166 | |||
167 | QUrl img, txt; | ||
168 | txt = QUrl(QString(devices->value("themes_url").toString() + "/" | ||
169 | + iniDetails.value("descriptionfile").toString())); | ||
170 | img = QUrl(QString(devices->value("themes_url").toString() + "/" | ||
171 | + iniDetails.value("image").toString())); | ||
172 | qDebug() << "txt:" << txt; | ||
173 | qDebug() << "img:" << img; | ||
174 | |||
175 | QString text; | ||
176 | text = tr("<b>Author:</b> %1<hr/>").arg(iniDetails.value("author", tr("unknown")).toString()); | ||
177 | text += tr("<b>Version:</b> %1<hr/>").arg(iniDetails.value("version", tr("unknown")).toString()); | ||
178 | text += tr("<b>Description:</b> %1<br/>").arg(iniDetails.value("about", tr("no description")).toString()); | ||
179 | ui.themeDescription->setHtml(text); | ||
180 | iniDetails.endGroup(); | ||
181 | |||
182 | igetter.abort(); | ||
183 | igetter.setProxy(proxy); | ||
184 | igetter.getFile(img); | ||
185 | connect(&igetter, SIGNAL(done(bool)), this, SLOT(updateImage(bool))); | ||
186 | } | ||
187 | |||
188 | |||
189 | void ThemesInstallWindow::updateImage(bool error) | ||
190 | { | ||
191 | qDebug() << "updateImage(bool) =" << error; | ||
192 | if(error) return; | ||
193 | |||
194 | QPixmap p, q; | ||
195 | QSize img; | ||
196 | img.setHeight(ui.themePreview->height()); | ||
197 | img.setWidth(ui.themePreview->width()); | ||
198 | if(!error) { | ||
199 | imgData = igetter.readAll(); | ||
200 | if(imgData.isNull()) return; | ||
201 | p.loadFromData(imgData); | ||
202 | q = p.scaled(img, Qt::KeepAspectRatio, Qt::SmoothTransformation); | ||
203 | ui.themePreview->setScaledContents(false); | ||
204 | if(q.isNull()) { | ||
205 | ui.themePreview->clear(); | ||
206 | ui.themePreview->setText(tr("no theme preview")); | ||
207 | } | ||
208 | else ui.themePreview->setPixmap(q); | ||
209 | } | ||
210 | } | ||
211 | |||
212 | |||
213 | void ThemesInstallWindow::resizeEvent(QResizeEvent* e) | ||
214 | { | ||
215 | qDebug() << "resizeEvent(QResizeEvent*) =" << e; | ||
216 | |||
217 | QPixmap p, q; | ||
218 | QSize img; | ||
219 | img.setHeight(ui.themePreview->height()); | ||
220 | img.setWidth(ui.themePreview->width()); | ||
221 | |||
222 | p.loadFromData(imgData); | ||
223 | if(p.isNull()) return; | ||
224 | q = p.scaled(img, Qt::KeepAspectRatio, Qt::SmoothTransformation); | ||
225 | ui.themePreview->setScaledContents(false); | ||
226 | ui.themePreview->setPixmap(q); | ||
227 | } | ||
228 | |||
229 | |||
230 | |||
231 | void ThemesInstallWindow::show() | ||
232 | { | ||
233 | downloadInfo(); | ||
234 | QDialog::show(); | ||
235 | logger = new ProgressLoggerGui(this); | ||
236 | logger->show(); | ||
237 | logger->addItem(tr("getting themes information ..."), LOGINFO); | ||
238 | connect(logger, SIGNAL(aborted()), getter, SLOT(abort())); | ||
239 | connect(logger, SIGNAL(aborted()), this, SLOT(close())); | ||
240 | } | ||
241 | |||
242 | |||
243 | void ThemesInstallWindow::abort() | ||
244 | { | ||
245 | igetter.abort(); | ||
246 | logger->abort(); | ||
247 | this->close(); | ||
248 | } | ||
249 | |||
250 | |||
251 | void ThemesInstallWindow::setProxy(QUrl p) | ||
252 | { | ||
253 | proxy = p; | ||
254 | qDebug() << "setProxy()" << proxy; | ||
255 | } | ||
256 | |||
257 | |||
258 | void ThemesInstallWindow::accept() | ||
259 | { | ||
260 | if(ui.listThemes->selectedItems().size() == 0) { | ||
261 | this->close(); | ||
262 | return; | ||
263 | } | ||
264 | QStringList themes; | ||
265 | QStringList names; | ||
266 | QString zip; | ||
267 | QSettings iniDetails(themesInfo.fileName(), QSettings::IniFormat, this); | ||
268 | for(int i = 0; i < ui.listThemes->selectedItems().size(); i++) { | ||
269 | iniDetails.beginGroup(ui.listThemes->selectedItems().at(i)->data(Qt::UserRole).toString()); | ||
270 | zip = devices->value("themes_url").toString() + "/" + iniDetails.value("archive").toString(); | ||
271 | themes.append(zip); | ||
272 | names.append("Theme: " + ui.listThemes->selectedItems().at(i)->data(Qt::DisplayRole).toString()); | ||
273 | iniDetails.endGroup(); | ||
274 | } | ||
275 | qDebug() << "installing themes:" << themes; | ||
276 | |||
277 | logger = new ProgressLoggerGui(this); | ||
278 | logger->show(); | ||
279 | QString mountPoint = userSettings->value("defaults/mountpoint").toString(); | ||
280 | qDebug() << "mountpoint:" << userSettings->value("defaults/mountpoint").toString(); | ||
281 | // show dialog with error if mount point is wrong | ||
282 | if(!QFileInfo(mountPoint).isDir()) { | ||
283 | logger->addItem(tr("Mount point is wrong!"),LOGERROR); | ||
284 | logger->abort(); | ||
285 | return; | ||
286 | } | ||
287 | |||
288 | installer = new ZipInstaller(this); | ||
289 | installer->setUrl(themes); | ||
290 | installer->setProxy(proxy); | ||
291 | installer->setLogSection(names); | ||
292 | installer->setMountPoint(mountPoint); | ||
293 | installer->install(logger); | ||
294 | connect(logger, SIGNAL(closed()), this, SLOT(close())); | ||
295 | } | ||
296 | |||
diff --git a/rbutil/rbutilqt/installthemes.h b/rbutil/rbutilqt/installthemes.h new file mode 100644 index 0000000000..da6ad86485 --- /dev/null +++ b/rbutil/rbutilqt/installthemes.h | |||
@@ -0,0 +1,72 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2007 by Dominik Riebeling | ||
10 | * $Id$ | ||
11 | * | ||
12 | * All files in this archive are subject to the GNU General Public License. | ||
13 | * See the file COPYING in the source tree root for full license agreement. | ||
14 | * | ||
15 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
16 | * KIND, either express or implied. | ||
17 | * | ||
18 | ****************************************************************************/ | ||
19 | |||
20 | #ifndef INSTALLTHEMES_H | ||
21 | #define INSTALLTHEMES_H | ||
22 | |||
23 | #include <QtGui> | ||
24 | #include <QTemporaryFile> | ||
25 | |||
26 | #include "ui_installthemesfrm.h" | ||
27 | #include "httpget.h" | ||
28 | #include "installzip.h" | ||
29 | #include "progressloggergui.h" | ||
30 | |||
31 | class ThemesInstallWindow : public QDialog | ||
32 | { | ||
33 | Q_OBJECT | ||
34 | |||
35 | public: | ||
36 | ThemesInstallWindow(QWidget* parent = 0); | ||
37 | void setDeviceSettings(QSettings*); | ||
38 | void setUserSettings(QSettings *); | ||
39 | void setProxy(QUrl); | ||
40 | void downloadInfo(void); | ||
41 | void show(void); | ||
42 | void accept(void); | ||
43 | |||
44 | public slots: | ||
45 | |||
46 | private: | ||
47 | Ui::ThemeInstallFrm ui; | ||
48 | QSettings *devices; | ||
49 | QSettings *userSettings; | ||
50 | HttpGet *getter; | ||
51 | HttpGet igetter; | ||
52 | QTemporaryFile themesInfo; | ||
53 | QString resolution(void); | ||
54 | QUrl proxy; | ||
55 | int currentItem; | ||
56 | void resizeEvent(QResizeEvent*); | ||
57 | QByteArray imgData; | ||
58 | ProgressLoggerGui *logger; | ||
59 | ZipInstaller *installer; | ||
60 | QString file; | ||
61 | QString fileName; | ||
62 | |||
63 | private slots: | ||
64 | void downloadDone(bool); | ||
65 | void downloadDone(int, bool); | ||
66 | void updateDetails(int); | ||
67 | void updateImage(bool); | ||
68 | void abort(void); | ||
69 | }; | ||
70 | |||
71 | |||
72 | #endif | ||
diff --git a/rbutil/rbutilqt/installthemesfrm.ui b/rbutil/rbutilqt/installthemesfrm.ui new file mode 100644 index 0000000000..42d0550d00 --- /dev/null +++ b/rbutil/rbutilqt/installthemesfrm.ui | |||
@@ -0,0 +1,133 @@ | |||
1 | <ui version="4.0" > | ||
2 | <class>ThemeInstallFrm</class> | ||
3 | <widget class="QDialog" name="ThemeInstallFrm" > | ||
4 | <property name="geometry" > | ||
5 | <rect> | ||
6 | <x>0</x> | ||
7 | <y>0</y> | ||
8 | <width>750</width> | ||
9 | <height>450</height> | ||
10 | </rect> | ||
11 | </property> | ||
12 | <property name="windowTitle" > | ||
13 | <string>Theme Installation</string> | ||
14 | </property> | ||
15 | <layout class="QGridLayout" > | ||
16 | <item rowspan="2" row="0" column="0" > | ||
17 | <widget class="QLabel" name="label" > | ||
18 | <property name="text" > | ||
19 | <string/> | ||
20 | </property> | ||
21 | <property name="pixmap" > | ||
22 | <pixmap resource="rbutilqt.qrc" >:/icons/icons/wizard.xpm</pixmap> | ||
23 | </property> | ||
24 | <property name="alignment" > | ||
25 | <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> | ||
26 | </property> | ||
27 | </widget> | ||
28 | </item> | ||
29 | <item row="0" column="1" > | ||
30 | <widget class="QListWidget" name="listThemes" > | ||
31 | <property name="sizePolicy" > | ||
32 | <sizepolicy vsizetype="Preferred" hsizetype="Preferred" > | ||
33 | <horstretch>0</horstretch> | ||
34 | <verstretch>0</verstretch> | ||
35 | </sizepolicy> | ||
36 | </property> | ||
37 | </widget> | ||
38 | </item> | ||
39 | <item row="0" column="2" colspan="2" > | ||
40 | <widget class="QGroupBox" name="groupBox" > | ||
41 | <property name="sizePolicy" > | ||
42 | <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > | ||
43 | <horstretch>0</horstretch> | ||
44 | <verstretch>0</verstretch> | ||
45 | </sizepolicy> | ||
46 | </property> | ||
47 | <property name="title" > | ||
48 | <string>Selected Theme</string> | ||
49 | </property> | ||
50 | <layout class="QGridLayout" > | ||
51 | <item row="0" column="0" > | ||
52 | <widget class="QLabel" name="themePreview" > | ||
53 | <property name="sizePolicy" > | ||
54 | <sizepolicy vsizetype="MinimumExpanding" hsizetype="MinimumExpanding" > | ||
55 | <horstretch>0</horstretch> | ||
56 | <verstretch>0</verstretch> | ||
57 | </sizepolicy> | ||
58 | </property> | ||
59 | <property name="text" > | ||
60 | <string/> | ||
61 | </property> | ||
62 | <property name="scaledContents" > | ||
63 | <bool>true</bool> | ||
64 | </property> | ||
65 | <property name="alignment" > | ||
66 | <set>Qt::AlignCenter</set> | ||
67 | </property> | ||
68 | </widget> | ||
69 | </item> | ||
70 | <item row="1" column="0" > | ||
71 | <widget class="QLabel" name="label_3" > | ||
72 | <property name="text" > | ||
73 | <string>Description</string> | ||
74 | </property> | ||
75 | </widget> | ||
76 | </item> | ||
77 | <item row="2" column="0" > | ||
78 | <widget class="QTextBrowser" name="themeDescription" /> | ||
79 | </item> | ||
80 | <item row="3" column="0" > | ||
81 | <widget class="QLabel" name="labelSize" > | ||
82 | <property name="text" > | ||
83 | <string>Download size:</string> | ||
84 | </property> | ||
85 | </widget> | ||
86 | </item> | ||
87 | </layout> | ||
88 | </widget> | ||
89 | </item> | ||
90 | <item row="1" column="1" colspan="2" > | ||
91 | <spacer> | ||
92 | <property name="orientation" > | ||
93 | <enum>Qt::Horizontal</enum> | ||
94 | </property> | ||
95 | <property name="sizeHint" > | ||
96 | <size> | ||
97 | <width>368</width> | ||
98 | <height>20</height> | ||
99 | </size> | ||
100 | </property> | ||
101 | </spacer> | ||
102 | </item> | ||
103 | <item row="1" column="3" > | ||
104 | <layout class="QHBoxLayout" > | ||
105 | <item> | ||
106 | <widget class="QPushButton" name="buttonOk" > | ||
107 | <property name="text" > | ||
108 | <string>&Ok</string> | ||
109 | </property> | ||
110 | <property name="icon" > | ||
111 | <iconset resource="rbutilqt.qrc" >:/icons/icons/go-next.png</iconset> | ||
112 | </property> | ||
113 | </widget> | ||
114 | </item> | ||
115 | <item> | ||
116 | <widget class="QPushButton" name="buttonCancel" > | ||
117 | <property name="text" > | ||
118 | <string>&Cancel</string> | ||
119 | </property> | ||
120 | <property name="icon" > | ||
121 | <iconset resource="rbutilqt.qrc" >:/icons/icons/process-stop.png</iconset> | ||
122 | </property> | ||
123 | </widget> | ||
124 | </item> | ||
125 | </layout> | ||
126 | </item> | ||
127 | </layout> | ||
128 | </widget> | ||
129 | <resources> | ||
130 | <include location="rbutilqt.qrc" /> | ||
131 | </resources> | ||
132 | <connections/> | ||
133 | </ui> | ||
diff --git a/rbutil/rbutilqt/installzip.cpp b/rbutil/rbutilqt/installzip.cpp index 14e1feb55f..1ca976752a 100644 --- a/rbutil/rbutilqt/installzip.cpp +++ b/rbutil/rbutilqt/installzip.cpp | |||
@@ -46,6 +46,7 @@ void ZipInstaller::installContinue() | |||
46 | qDebug() << "installContinue()"; | 46 | qDebug() << "installContinue()"; |
47 | 47 | ||
48 | runner++; // this gets called when a install finished, so increase first. | 48 | runner++; // this gets called when a install finished, so increase first. |
49 | qDebug() << "runner is now at" << runner << "size is" << m_urllist.size(); | ||
49 | if(runner < m_urllist.size()) { | 50 | if(runner < m_urllist.size()) { |
50 | qDebug() << "==> runner at" << runner; | 51 | qDebug() << "==> runner at" << runner; |
51 | m_dp->addItem(tr("done."), LOGOK); | 52 | m_dp->addItem(tr("done."), LOGOK); |
@@ -196,7 +197,7 @@ void ZipInstaller::updateDataReadProgress(int read, int total) | |||
196 | { | 197 | { |
197 | m_dp->setProgressMax(total); | 198 | m_dp->setProgressMax(total); |
198 | m_dp->setProgressValue(read); | 199 | m_dp->setProgressValue(read); |
199 | qDebug() << "progress:" << read << "/" << total; | 200 | //qDebug() << "progress:" << read << "/" << total; |
200 | 201 | ||
201 | } | 202 | } |
202 | 203 | ||
diff --git a/rbutil/rbutilqt/rbutil.ini b/rbutil/rbutilqt/rbutil.ini index 5e8b61bf72..d617f0fb98 100644 --- a/rbutil/rbutilqt/rbutil.ini +++ b/rbutil/rbutilqt/rbutil.ini | |||
@@ -8,7 +8,8 @@ font_url=http://www.rockbox.org/daily/fonts/rockbox-fonts.zip | |||
8 | last_release=2.5 | 8 | last_release=2.5 |
9 | prog_name=rockbox | 9 | prog_name=rockbox |
10 | bootloader_url=http://download.rockbox.org/bootloader | 10 | bootloader_url=http://download.rockbox.org/bootloader |
11 | themes_url=http://www.rockbox-themes.org/ | 11 | themes_url=http://copy.rockbox-themes.org |
12 | #themes_url=http://www.rockbox-themes.org | ||
12 | manual_url=http://download.rockbox.org/manual | 13 | manual_url=http://download.rockbox.org/manual |
13 | doom_url=http://download.rockbox.org/useful/rockdoom.zip | 14 | doom_url=http://download.rockbox.org/useful/rockdoom.zip |
14 | voice_url=http://www.rockbox.org/voices/ | 15 | voice_url=http://www.rockbox.org/voices/ |
diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp index fc03ba754e..39bac3bc36 100644 --- a/rbutil/rbutilqt/rbutilqt.cpp +++ b/rbutil/rbutilqt/rbutilqt.cpp | |||
@@ -28,6 +28,7 @@ | |||
28 | #include "installtalkwindow.h" | 28 | #include "installtalkwindow.h" |
29 | #include "httpget.h" | 29 | #include "httpget.h" |
30 | #include "installbootloader.h" | 30 | #include "installbootloader.h" |
31 | #include "installthemes.h" | ||
31 | #include "uninstallwindow.h" | 32 | #include "uninstallwindow.h" |
32 | #include "browseof.h" | 33 | #include "browseof.h" |
33 | 34 | ||
@@ -81,11 +82,10 @@ RbUtilQt::RbUtilQt(QWidget *parent) : QMainWindow(parent) | |||
81 | connect(ui.buttonGames, SIGNAL(clicked()), this, SLOT(installDoom())); | 82 | connect(ui.buttonGames, SIGNAL(clicked()), this, SLOT(installDoom())); |
82 | connect(ui.buttonTalk, SIGNAL(clicked()), this, SLOT(createTalkFiles())); | 83 | connect(ui.buttonTalk, SIGNAL(clicked()), this, SLOT(createTalkFiles())); |
83 | connect(ui.buttonVoice, SIGNAL(clicked()), this, SLOT(installVoice())); | 84 | connect(ui.buttonVoice, SIGNAL(clicked()), this, SLOT(installVoice())); |
85 | connect(ui.buttonThemes, SIGNAL(clicked()), this, SLOT(installThemes())); | ||
84 | connect(ui.buttonRemoveRockbox, SIGNAL(clicked()), this, SLOT(uninstall())); | 86 | connect(ui.buttonRemoveRockbox, SIGNAL(clicked()), this, SLOT(uninstall())); |
85 | connect(ui.buttonRemoveBootloader, SIGNAL(clicked()), this, SLOT(uninstallBootloader())); | 87 | connect(ui.buttonRemoveBootloader, SIGNAL(clicked()), this, SLOT(uninstallBootloader())); |
86 | |||
87 | // disable unimplemented stuff | 88 | // disable unimplemented stuff |
88 | ui.buttonThemes->setEnabled(false); | ||
89 | ui.buttonSmall->setEnabled(false); | 89 | ui.buttonSmall->setEnabled(false); |
90 | ui.buttonComplete->setEnabled(false); | 90 | ui.buttonComplete->setEnabled(false); |
91 | 91 | ||
@@ -439,6 +439,22 @@ void RbUtilQt::installDoom() | |||
439 | } | 439 | } |
440 | 440 | ||
441 | 441 | ||
442 | void RbUtilQt::installThemes() | ||
443 | { | ||
444 | ThemesInstallWindow* tw = new ThemesInstallWindow(this); | ||
445 | tw->setDeviceSettings(devices); | ||
446 | tw->setUserSettings(userSettings); | ||
447 | if(userSettings->value("defaults/proxytype") == "manual") | ||
448 | tw->setProxy(QUrl(userSettings->value("defaults/proxy").toString())); | ||
449 | #ifdef __linux | ||
450 | else if(userSettings->value("defaults/proxytype") == "system") | ||
451 | tw->setProxy(QUrl(getenv("http_proxy"))); | ||
452 | #endif | ||
453 | tw->setModal(true); | ||
454 | tw->show(); | ||
455 | } | ||
456 | |||
457 | |||
442 | void RbUtilQt::createTalkFiles(void) | 458 | void RbUtilQt::createTalkFiles(void) |
443 | { | 459 | { |
444 | InstallTalkWindow *installWindow = new InstallTalkWindow(this); | 460 | InstallTalkWindow *installWindow = new InstallTalkWindow(this); |
diff --git a/rbutil/rbutilqt/rbutilqt.h b/rbutil/rbutilqt/rbutilqt.h index 62a7aac3bd..19e7920859 100644 --- a/rbutil/rbutilqt/rbutilqt.h +++ b/rbutil/rbutilqt/rbutilqt.h | |||
@@ -66,6 +66,7 @@ class RbUtilQt : public QMainWindow | |||
66 | void downloadDone(int, bool); | 66 | void downloadDone(int, bool); |
67 | void downloadInfo(void); | 67 | void downloadInfo(void); |
68 | void installVoice(void); | 68 | void installVoice(void); |
69 | void installThemes(void); | ||
69 | void uninstall(void); | 70 | void uninstall(void); |
70 | void uninstallBootloader(void); | 71 | void uninstallBootloader(void); |
71 | }; | 72 | }; |
diff --git a/rbutil/rbutilqt/rbutilqt.pro b/rbutil/rbutilqt/rbutilqt.pro index 40e205b147..708dde052d 100644 --- a/rbutil/rbutilqt/rbutilqt.pro +++ b/rbutil/rbutilqt/rbutilqt.pro | |||
@@ -30,12 +30,12 @@ SOURCES += rbutilqt.cpp \ | |||
30 | irivertools/irivertools.cpp \ | 30 | irivertools/irivertools.cpp \ |
31 | irivertools/md5sum.cpp \ | 31 | irivertools/md5sum.cpp \ |
32 | browsedirtree.cpp \ | 32 | browsedirtree.cpp \ |
33 | installthemes.cpp \ | ||
33 | uninstall.cpp \ | 34 | uninstall.cpp \ |
34 | uninstallwindow.cpp \ | 35 | uninstallwindow.cpp \ |
35 | browseof.cpp | 36 | browseof.cpp |
36 | 37 | ||
37 | HEADERS += rbutilqt.h \ | 38 | HEADERS += rbutilqt.h \ |
38 | settings.h \ | ||
39 | install.h \ | 39 | install.h \ |
40 | httpget.h \ | 40 | httpget.h \ |
41 | configure.h \ | 41 | configure.h \ |
@@ -64,6 +64,7 @@ HEADERS += rbutilqt.h \ | |||
64 | irivertools/h300sums.h \ | 64 | irivertools/h300sums.h \ |
65 | irivertools/checksums.h \ | 65 | irivertools/checksums.h \ |
66 | browsedirtree.h \ | 66 | browsedirtree.h \ |
67 | installthemes.h \ | ||
67 | uninstall.h \ | 68 | uninstall.h \ |
68 | uninstallwindow.h \ | 69 | uninstallwindow.h \ |
69 | browseof.h | 70 | browseof.h |
@@ -85,6 +86,7 @@ FORMS += rbutilqtfrm.ui \ | |||
85 | configurefrm.ui \ | 86 | configurefrm.ui \ |
86 | browsedirtreefrm.ui \ | 87 | browsedirtreefrm.ui \ |
87 | installtalkfrm.ui \ | 88 | installtalkfrm.ui \ |
89 | installthemesfrm.ui \ | ||
88 | uninstallfrm.ui \ | 90 | uninstallfrm.ui \ |
89 | browseoffrm.ui | 91 | browseoffrm.ui |
90 | 92 | ||
diff --git a/rbutil/rbutilqt/settings.h b/rbutil/rbutilqt/settings.h deleted file mode 100644 index e69de29bb2..0000000000 --- a/rbutil/rbutilqt/settings.h +++ /dev/null | |||