summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/base/systeminfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/rbutilqt/base/systeminfo.cpp')
-rw-r--r--rbutil/rbutilqt/base/systeminfo.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/rbutil/rbutilqt/base/systeminfo.cpp b/rbutil/rbutilqt/base/systeminfo.cpp
index fde43d27dd..971a1196ac 100644
--- a/rbutil/rbutilqt/base/systeminfo.cpp
+++ b/rbutil/rbutilqt/base/systeminfo.cpp
@@ -159,11 +159,11 @@ QMap<QString, QStringList> SystemInfo::languages(void)
159} 159}
160 160
161 161
162QMap<int, QString> SystemInfo::usbIdMap(enum MapType type) 162QMap<int, QStringList> SystemInfo::usbIdMap(enum MapType type)
163{ 163{
164 ensureSystemInfoExists(); 164 ensureSystemInfoExists();
165 165
166 QMap<int, QString> map; 166 QMap<int, QStringList> map;
167 // get a list of ID -> target name 167 // get a list of ID -> target name
168 QStringList platforms; 168 QStringList platforms;
169 systemInfos->beginGroup("platforms"); 169 systemInfos->beginGroup("platforms");
@@ -191,9 +191,18 @@ QMap<int, QString> SystemInfo::usbIdMap(enum MapType type)
191 systemInfos->beginGroup(target); 191 systemInfos->beginGroup(target);
192 QStringList ids = systemInfos->value(t).toStringList(); 192 QStringList ids = systemInfos->value(t).toStringList();
193 int j = ids.size(); 193 int j = ids.size();
194 while(j--) 194 while(j--) {
195 map.insert(ids.at(j).toInt(0, 16), target); 195 QStringList l;
196 196 int id = ids.at(j).toInt(0, 16);
197 if(id == 0) {
198 continue;
199 }
200 if(map.keys().contains(id)) {
201 l = map.take(id);
202 }
203 l.append(target);
204 map.insert(id, l);
205 }
197 systemInfos->endGroup(); 206 systemInfos->endGroup();
198 } 207 }
199 return map; 208 return map;