QStringList SystemInfo::platforms(enum SystemInfo::PlatformType type, QString variant) { ensureSystemInfoExists(); QStringList result; systemInfos->beginGroup("platforms"); QStringList a = systemInfos->childKeys(); systemInfos->endGroup(); for(int i = 0; i < a.size(); i++) { QString target = systemInfos->value("platforms/"+a.at(i), "null").toString(); QRegExp regex("\\..*$"); QString targetbase = target; targetbase.remove(regex); // only add target if its not disabled unless Platform*Disabled requested if(type != PlatformAllDisabled && type != PlatformBaseDisabled && type != PlatformVariantDisabled && systemInfos->value(target+"/status").toString() == "disabled") continue; // report only matching target if PlatformVariant* is requested if((type == PlatformVariant || type == PlatformVariantDisabled) && (targetbase != variant)) continue; // report only base targets when PlatformBase* is requested if((type == PlatformBase || type == PlatformBaseDisabled)) result.append(targetbase); else result.append(target); } result.removeDuplicates(); return result; }
QStringList SystemInfo::languages() { ensureSystemInfoExists(); QStringList result; systemInfos->beginGroup("languages"); QStringList a = systemInfos->childKeys(); for(int i = 0; i < a.size(); i++) { result.append(systemInfos->value(a.at(i), "null").toString()); } systemInfos->endGroup(); return result; }
QMap<QString, QStringList> SystemInfo::languages(void) { ensureSystemInfoExists(); QMap<QString, QStringList> result; systemInfos->beginGroup("languages"); QStringList a = systemInfos->childKeys(); for(int i = 0; i < a.size(); i++) { result.insert(a.at(i), systemInfos->value(a.at(i), "null").toStringList()); } systemInfos->endGroup(); return result; }
QVariant SystemInfo::platformValue(QString platform, enum SystemInfos info) { ensureSystemInfoExists(); // locate setting item int i = 0; while(SystemInfosList[i].info != info) i++; QString s = SystemInfosList[i].name; s.replace(":platform:", platform); QString d = SystemInfosList[i].def; d.replace(":platform:", platform); qDebug() << "[SystemInfo] GET P:" << s << systemInfos->value(s, d).toString(); return systemInfos->value(s, d); }
QMap<int, QString> SystemInfo::usbIdMap(enum MapType type) { ensureSystemInfoExists(); QMap<int, QString> map; // get a list of ID -> target name QStringList platforms; systemInfos->beginGroup("platforms"); platforms = systemInfos->childKeys(); systemInfos->endGroup(); QString t; switch(type) { case MapDevice: t = "usbid"; break; case MapError: t = "usberror"; break; case MapIncompatible: t = "usbincompat"; break; } for(int i = 0; i < platforms.size(); i++) { systemInfos->beginGroup("platforms"); QString target = systemInfos->value(platforms.at(i)).toString(); systemInfos->endGroup(); systemInfos->beginGroup(target); QStringList ids = systemInfos->value(t).toStringList(); int j = ids.size(); while(j--) map.insert(ids.at(j).toInt(0, 16), target); systemInfos->endGroup(); } return map; }