summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/configure.cpp
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2007-08-02 21:29:31 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2007-08-02 21:29:31 +0000
commit7a62bb04d8abeedc237baaec51503d1180e2d93d (patch)
tree61d4b38ec2abcd884da434656a83a41527d00b3b /rbutil/rbutilqt/configure.cpp
parentc21abddaae1102087afdad5dcc0531ce6c6add1f (diff)
downloadrockbox-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.cpp112
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()
115void Config::setUserSettings(QSettings *user) 115void 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
155void 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
231void 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
319void 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}