diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2007-08-02 21:29:31 +0000 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2007-08-02 21:29:31 +0000 |
commit | 7a62bb04d8abeedc237baaec51503d1180e2d93d (patch) | |
tree | 61d4b38ec2abcd884da434656a83a41527d00b3b /rbutil/rbutilqt/configure.cpp | |
parent | c21abddaae1102087afdad5dcc0531ce6c6add1f (diff) | |
download | rockbox-7a62bb04d8abeedc237baaec51503d1180e2d93d.tar.gz rockbox-7a62bb04d8abeedc237baaec51503d1180e2d93d.zip |
Move device and mountpoint selection to configuration to eliminate the need of asking for the mountpoint in every installation window. Use a QListWidget to make the devices list nicer. Remove scrobbler settings as this will most likely get implemented as plugin.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14149 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/configure.cpp')
-rw-r--r-- | rbutil/rbutilqt/configure.cpp | 112 |
1 files changed, 109 insertions, 3 deletions
diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp index e92234527b..cef996ec56 100644 --- a/rbutil/rbutilqt/configure.cpp +++ b/rbutil/rbutilqt/configure.cpp | |||
@@ -60,15 +60,15 @@ Config::Config(QWidget *parent) : QDialog(parent) | |||
60 | connect(ui.buttonCancel, SIGNAL(clicked()), this, SLOT(abort())); | 60 | connect(ui.buttonCancel, SIGNAL(clicked()), this, SLOT(abort())); |
61 | connect(ui.radioNoProxy, SIGNAL(toggled(bool)), this, SLOT(setNoProxy(bool))); | 61 | connect(ui.radioNoProxy, SIGNAL(toggled(bool)), this, SLOT(setNoProxy(bool))); |
62 | connect(ui.radioSystemProxy, SIGNAL(toggled(bool)), this, SLOT(setSystemProxy(bool))); | 62 | connect(ui.radioSystemProxy, SIGNAL(toggled(bool)), this, SLOT(setSystemProxy(bool))); |
63 | connect(ui.browseMountPoint, SIGNAL(clicked()), this, SLOT(browseFolder())); | ||
63 | 64 | ||
64 | // disable unimplemented stuff | 65 | // disable unimplemented stuff |
65 | ui.buttonCacheBrowse->setEnabled(false); | 66 | ui.buttonCacheBrowse->setEnabled(false); |
66 | ui.cacheDisable->setEnabled(false); | 67 | ui.cacheDisable->setEnabled(false); |
67 | ui.cacheOfflineMode->setEnabled(false); | 68 | ui.cacheOfflineMode->setEnabled(false); |
68 | ui.buttonCacheClear->setEnabled(false); | 69 | ui.buttonCacheClear->setEnabled(false); |
69 | ui.scrobblerUser->setEnabled(false); | 70 | |
70 | ui.scrobblerPass->setEnabled(false); | 71 | ui.buttonAutodetect->setEnabled(false); |
71 | ui.scrobblerTimezone->setEnabled(false); | ||
72 | } | 72 | } |
73 | 73 | ||
74 | 74 | ||
@@ -115,6 +115,7 @@ void Config::abort() | |||
115 | void Config::setUserSettings(QSettings *user) | 115 | void Config::setUserSettings(QSettings *user) |
116 | { | 116 | { |
117 | userSettings = user; | 117 | userSettings = user; |
118 | // set proxy | ||
118 | QUrl proxy = userSettings->value("defaults/proxy").toString(); | 119 | QUrl proxy = userSettings->value("defaults/proxy").toString(); |
119 | 120 | ||
120 | ui.proxyPort->setText(QString("%1").arg(proxy.port())); | 121 | ui.proxyPort->setText(QString("%1").arg(proxy.port())); |
@@ -145,6 +146,94 @@ void Config::setUserSettings(QSettings *user) | |||
145 | if(a.size() > 0) | 146 | if(a.size() > 0) |
146 | ui.listLanguages->setCurrentItem(a.at(0)); | 147 | ui.listLanguages->setCurrentItem(a.at(0)); |
147 | 148 | ||
149 | // devices tab | ||
150 | ui.mountPoint->setText(userSettings->value("defaults/mountpoint").toString()); | ||
151 | |||
152 | } | ||
153 | |||
154 | |||
155 | void Config::setDevices(QSettings *dev) | ||
156 | { | ||
157 | devices = dev; | ||
158 | // setup devices table | ||
159 | qDebug() << "Config::setDevices()"; | ||
160 | devices->beginGroup("platforms"); | ||
161 | QStringList a = devices->childKeys(); | ||
162 | devices->endGroup(); | ||
163 | |||
164 | QMap <QString, QString> manuf; | ||
165 | QMap <QString, QString> devcs; | ||
166 | for(int it = 0; it < a.size(); it++) { | ||
167 | QString curdev; | ||
168 | devices->beginGroup("platforms"); | ||
169 | curdev = devices->value(a.at(it), "null").toString(); | ||
170 | devices->endGroup(); | ||
171 | QString curname; | ||
172 | devices->beginGroup(curdev); | ||
173 | curname = devices->value("name", "null").toString(); | ||
174 | QString curbrand = devices->value("brand", "").toString(); | ||
175 | devices->endGroup(); | ||
176 | manuf.insertMulti(curbrand, curdev); | ||
177 | devcs.insert(curdev, curname); | ||
178 | } | ||
179 | |||
180 | QString platform; | ||
181 | platform = devcs.value(userSettings->value("defaults/platform").toString()); | ||
182 | |||
183 | // set up devices table | ||
184 | ui.treeDevices->header()->hide(); | ||
185 | ui.treeDevices->expandAll(); | ||
186 | ui.treeDevices->setColumnCount(1); | ||
187 | QList<QTreeWidgetItem *> items; | ||
188 | |||
189 | // get manufacturers | ||
190 | QStringList brands = manuf.uniqueKeys(); | ||
191 | QTreeWidgetItem *w; | ||
192 | QTreeWidgetItem *w2; | ||
193 | QTreeWidgetItem *w3; | ||
194 | for(int c = 0; c < brands.size(); c++) { | ||
195 | qDebug() << brands.at(c); | ||
196 | w = new QTreeWidgetItem(); | ||
197 | w->setFlags(Qt::ItemIsEnabled); | ||
198 | w->setText(0, brands.at(c)); | ||
199 | // w->setData(0, Qt::DecorationRole, <icon>); | ||
200 | items.append(w); | ||
201 | |||
202 | // go through platforms again for sake of order | ||
203 | for(int it = 0; it < a.size(); it++) { | ||
204 | QString curdev; | ||
205 | devices->beginGroup("platforms"); | ||
206 | curdev = devices->value(a.at(it), "null").toString(); | ||
207 | devices->endGroup(); | ||
208 | QString curname; | ||
209 | devices->beginGroup(curdev); | ||
210 | curname = devices->value("name", "null").toString(); | ||
211 | QString curbrand = devices->value("brand", "").toString(); | ||
212 | devices->endGroup(); | ||
213 | if(curbrand != brands.at(c)) continue; | ||
214 | qDebug() << "adding:" << brands.at(c) << curname << curdev; | ||
215 | w2 = new QTreeWidgetItem(w, QStringList(curname)); | ||
216 | w2->setData(0, Qt::UserRole, curdev); | ||
217 | if(platform.contains(curname)) { | ||
218 | w2->setSelected(true); | ||
219 | w->setExpanded(true); | ||
220 | w3 = w2; // save pointer to hilight old selection | ||
221 | } | ||
222 | items.append(w2); | ||
223 | } | ||
224 | } | ||
225 | ui.treeDevices->insertTopLevelItems(0, items); | ||
226 | ui.treeDevices->setCurrentItem(w3); // hilight old selection | ||
227 | connect(ui.treeDevices, SIGNAL(itemSelectionChanged()), this, SLOT(updatePlatform())); | ||
228 | } | ||
229 | |||
230 | |||
231 | void Config::updatePlatform() | ||
232 | { | ||
233 | qDebug() << "updatePlatform()"; | ||
234 | QString nplat; | ||
235 | nplat = ui.treeDevices->selectedItems().at(0)->data(0, Qt::UserRole).toString(); | ||
236 | userSettings->setValue("defaults/platform", nplat); | ||
148 | } | 237 | } |
149 | 238 | ||
150 | 239 | ||
@@ -227,3 +316,20 @@ void Config::updateLanguage() | |||
227 | } | 316 | } |
228 | 317 | ||
229 | 318 | ||
319 | void Config::browseFolder() | ||
320 | { | ||
321 | QFileDialog browser(this); | ||
322 | if(QFileInfo(ui.mountPoint->text()).isDir()) | ||
323 | browser.setDirectory(ui.mountPoint->text()); | ||
324 | else | ||
325 | browser.setDirectory("/media"); | ||
326 | browser.setReadOnly(true); | ||
327 | browser.setFileMode(QFileDialog::DirectoryOnly); | ||
328 | browser.setAcceptMode(QFileDialog::AcceptOpen); | ||
329 | if(browser.exec()) { | ||
330 | qDebug() << browser.directory(); | ||
331 | QStringList files = browser.selectedFiles(); | ||
332 | ui.mountPoint->setText(files.at(0)); | ||
333 | userSettings->setValue("defaults/mountpoint", files.at(0)); | ||
334 | } | ||
335 | } | ||