diff options
Diffstat (limited to 'rbutil/rbutilqt/base/systeminfo.cpp')
-rw-r--r-- | rbutil/rbutilqt/base/systeminfo.cpp | 19 |
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 | ||
162 | QMap<int, QString> SystemInfo::usbIdMap(enum MapType type) | 162 | QMap<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; |