summaryrefslogtreecommitdiff
path: root/rbutil
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2010-03-01 22:45:17 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2010-03-01 22:45:17 +0000
commit8c8703038be3f9bbb80742816045e18d3aa8c465 (patch)
tree2af356a2b0d77016c71aeecfcc700e2e8aa7f844 /rbutil
parentf67e3559c62ba21d6085793a2bb5513050590ef7 (diff)
downloadrockbox-8c8703038be3f9bbb80742816045e18d3aa8c465.tar.gz
rockbox-8c8703038be3f9bbb80742816045e18d3aa8c465.zip
Refactor device tree setup a bit.
- reorder value retrieval (display names etc) to cut down the number of necessary accesses. While this is not critical it cuts down the noise generated in the trace noticably. - match the old target by its internal name instead of the display name. - remove two access functions in SystemInfo that are not really needed anymore. Accessing the values via platformValue() is much more logical and in line with the rest of the value accesses. - try to scroll to the selected item in the device list after setup and detection. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24988 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil')
-rw-r--r--rbutil/rbutilqt/base/systeminfo.cpp12
-rw-r--r--rbutil/rbutilqt/base/systeminfo.h4
-rw-r--r--rbutil/rbutilqt/configure.cpp40
3 files changed, 20 insertions, 36 deletions
diff --git a/rbutil/rbutilqt/base/systeminfo.cpp b/rbutil/rbutilqt/base/systeminfo.cpp
index a941f43078..72a62ac2fb 100644
--- a/rbutil/rbutilqt/base/systeminfo.cpp
+++ b/rbutil/rbutilqt/base/systeminfo.cpp
@@ -156,18 +156,6 @@ QStringList SystemInfo::languages()
156} 156}
157 157
158 158
159QString SystemInfo::name(QString platform)
160{
161 ensureSystemInfoExists();
162 return systemInfos->value(platform + "/name").toString();
163}
164
165QString SystemInfo::brand(QString platform)
166{
167 ensureSystemInfoExists();
168 return systemInfos->value(platform + "/brand").toString();
169}
170
171QMap<int, QString> SystemInfo::usbIdMap(enum MapType type) 159QMap<int, QString> SystemInfo::usbIdMap(enum MapType type)
172{ 160{
173 ensureSystemInfoExists(); 161 ensureSystemInfoExists();
diff --git a/rbutil/rbutilqt/base/systeminfo.h b/rbutil/rbutilqt/base/systeminfo.h
index 76d00d4949..fb5fa9e1ac 100644
--- a/rbutil/rbutilqt/base/systeminfo.h
+++ b/rbutil/rbutilqt/base/systeminfo.h
@@ -77,10 +77,6 @@ class SystemInfo : public QObject
77 QString variant=""); 77 QString variant="");
78 //! returns a list of all languages 78 //! returns a list of all languages
79 static QStringList languages(void); 79 static QStringList languages(void);
80 //! maps a platform to its name
81 static QString name(QString platform);
82 //! maps a platform to its brand
83 static QString brand(QString platform);
84 //! returns a map of usb-ids and their targets 80 //! returns a map of usb-ids and their targets
85 static QMap<int, QString> usbIdMap(enum MapType); 81 static QMap<int, QString> usbIdMap(enum MapType);
86 //! get a value from system settings 82 //! get a value from system settings
diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp
index 7507833297..c57554aef3 100644
--- a/rbutil/rbutilqt/configure.cpp
+++ b/rbutil/rbutilqt/configure.cpp
@@ -309,20 +309,13 @@ void Config::setDevices()
309 platformList = SystemInfo::platforms(SystemInfo::PlatformAll); 309 platformList = SystemInfo::platforms(SystemInfo::PlatformAll);
310 310
311 QMap <QString, QString> manuf; 311 QMap <QString, QString> manuf;
312 QMap <QString, QString> devcs;
313 for(int it = 0; it < platformList.size(); it++) 312 for(int it = 0; it < platformList.size(); it++)
314 { 313 {
315 QString curname = SystemInfo::name(platformList.at(it)) + 314 QString curbrand = SystemInfo::platformValue(platformList.at(it),
316 " (" +ServerInfo::platformValue(platformList.at(it), 315 SystemInfo::CurBrand).toString();
317 ServerInfo::CurStatus).toString() + ")";
318 QString curbrand = SystemInfo::brand(platformList.at(it));
319 manuf.insertMulti(curbrand, platformList.at(it)); 316 manuf.insertMulti(curbrand, platformList.at(it));
320 devcs.insert(platformList.at(it), curname);
321 } 317 }
322 318
323 QString platform;
324 platform = devcs.value(RbSettings::value(RbSettings::Platform).toString());
325
326 // set up devices table 319 // set up devices table
327 ui.treeDevices->header()->hide(); 320 ui.treeDevices->header()->hide();
328 ui.treeDevices->expandAll(); 321 ui.treeDevices->expandAll();
@@ -334,25 +327,28 @@ void Config::setDevices()
334 QTreeWidgetItem *w; 327 QTreeWidgetItem *w;
335 QTreeWidgetItem *w2; 328 QTreeWidgetItem *w2;
336 QTreeWidgetItem *w3 = 0; 329 QTreeWidgetItem *w3 = 0;
330
331 QString selected = RbSettings::value(RbSettings::Platform).toString();
337 for(int c = 0; c < brands.size(); c++) { 332 for(int c = 0; c < brands.size(); c++) {
338 w = new QTreeWidgetItem(); 333 w = new QTreeWidgetItem();
339 w->setFlags(Qt::ItemIsEnabled); 334 w->setFlags(Qt::ItemIsEnabled);
340 w->setText(0, brands.at(c)); 335 w->setText(0, brands.at(c));
341 items.append(w); 336 items.append(w);
342 337 // go through platforms and add all players matching the current brand
343 // go through platforms again for sake of order
344 for(int it = 0; it < platformList.size(); it++) { 338 for(int it = 0; it < platformList.size(); it++) {
345 339 // skip if not current brand
346 QString curname = SystemInfo::name(platformList.at(it)) + 340 if(!manuf.values(brands.at(c)).contains(platformList.at(it)))
347 " (" +ServerInfo::platformValue(platformList.at(it),ServerInfo::CurStatus).toString() +")"; 341 continue;
348 QString curbrand = SystemInfo::brand(platformList.at(it)); 342 // construct display name
349 343 QString curname = SystemInfo::platformValue(platformList.at(it),
350 if(curbrand != brands.at(c)) continue; 344 SystemInfo::CurName).toString() +
345 " (" +ServerInfo::platformValue(platformList.at(it),
346 ServerInfo::CurStatus).toString() +")";
351 qDebug() << "[Config] add supported device:" << brands.at(c) << curname; 347 qDebug() << "[Config] add supported device:" << brands.at(c) << curname;
352 w2 = new QTreeWidgetItem(w, QStringList(curname)); 348 w2 = new QTreeWidgetItem(w, QStringList(curname));
353 w2->setData(0, Qt::UserRole, platformList.at(it)); 349 w2->setData(0, Qt::UserRole, platformList.at(it));
354 350
355 if(platform.contains(curname)) { 351 if(platformList.at(it) == selected) {
356 w2->setSelected(true); 352 w2->setSelected(true);
357 w->setExpanded(true); 353 w->setExpanded(true);
358 w3 = w2; // save pointer to hilight old selection 354 w3 = w2; // save pointer to hilight old selection
@@ -369,8 +365,10 @@ void Config::setDevices()
369 while(widgetitem); 365 while(widgetitem);
370 // add new items 366 // add new items
371 ui.treeDevices->insertTopLevelItems(0, items); 367 ui.treeDevices->insertTopLevelItems(0, items);
372 if(w3 != 0) 368 if(w3 != 0) {
373 ui.treeDevices->setCurrentItem(w3); // hilight old selection 369 ui.treeDevices->setCurrentItem(w3); // hilight old selection
370 ui.treeDevices->scrollToItem(w3);
371 }
374 372
375 // tts / encoder tab 373 // tts / encoder tab
376 374
@@ -589,7 +587,8 @@ void Config::autodetect()
589 587
590 // find the new item 588 // find the new item
591 // enumerate all platform items 589 // enumerate all platform items
592 QList<QTreeWidgetItem*> itmList= ui.treeDevices->findItems("*",Qt::MatchWildcard); 590 QList<QTreeWidgetItem*> itmList
591 = ui.treeDevices->findItems("*",Qt::MatchWildcard);
593 for(int i=0; i< itmList.size();i++) 592 for(int i=0; i< itmList.size();i++)
594 { 593 {
595 //enumerate device items 594 //enumerate device items
@@ -602,6 +601,7 @@ void Config::autodetect()
602 itmList.at(i)->child(j)->setSelected(true); //select the item 601 itmList.at(i)->child(j)->setSelected(true); //select the item
603 itmList.at(i)->setExpanded(true); //expand the platform item 602 itmList.at(i)->setExpanded(true); //expand the platform item
604 //ui.treeDevices->indexOfTopLevelItem(itmList.at(i)->child(j)); 603 //ui.treeDevices->indexOfTopLevelItem(itmList.at(i)->child(j));
604 ui.treeDevices->scrollToItem(itmList.at(i)->child(j));
605 break; 605 break;
606 } 606 }
607 } 607 }