summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/base/systeminfo.cpp
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2010-02-12 20:38:17 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2010-02-12 20:38:17 +0000
commit4c9fc9cb7ed9cb9c0163f81acce5b71ae2dcb29d (patch)
tree72aadddd80a8e689072be8075cf74d8360353632 /rbutil/rbutilqt/base/systeminfo.cpp
parent9a256c96f7fcb60d94bb0c58f499e2f43ce9957a (diff)
downloadrockbox-4c9fc9cb7ed9cb9c0163f81acce5b71ae2dcb29d.tar.gz
rockbox-4c9fc9cb7ed9cb9c0163f81acce5b71ae2dcb29d.zip
Fix problems with platform retrieval.
- handle disabled platforms also for for variant and base groups. - make variant detection more strict to prevent variants that are a substring of other variants to match. Happened e.g. for iriverh10 and iriverh100. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24625 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/base/systeminfo.cpp')
-rw-r--r--rbutil/rbutilqt/base/systeminfo.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/rbutil/rbutilqt/base/systeminfo.cpp b/rbutil/rbutilqt/base/systeminfo.cpp
index d5de5fff2a..a941f43078 100644
--- a/rbutil/rbutilqt/base/systeminfo.cpp
+++ b/rbutil/rbutilqt/base/systeminfo.cpp
@@ -118,18 +118,25 @@ QStringList SystemInfo::platforms(enum SystemInfo::PlatformType type, QString va
118 for(int i = 0; i < a.size(); i++) 118 for(int i = 0; i < a.size(); i++)
119 { 119 {
120 QString target = systemInfos->value("platforms/"+a.at(i), "null").toString(); 120 QString target = systemInfos->value("platforms/"+a.at(i), "null").toString();
121 // only add target if its not disabled 121 QRegExp regex("\\..*$");
122 if(type != PlatformAllDisabled 122 QString targetbase = target;
123 targetbase.remove(regex);
124 // only add target if its not disabled unless Platform*Disabled requested
125 if(type != PlatformAllDisabled && type != PlatformBaseDisabled
126 && type != PlatformVariantDisabled
123 && systemInfos->value(target+"/status").toString() == "disabled") 127 && systemInfos->value(target+"/status").toString() == "disabled")
124 continue; 128 continue;
125 // report only base targets when PlatformBase is requested 129 // report only matching target if PlatformVariant* is requested
126 if(type == PlatformBase && target.contains('.')) 130 if((type == PlatformVariant || type == PlatformVariantDisabled)
131 && (targetbase != variant))
127 continue; 132 continue;
128 // report only matching target if PlatformVariant is requested 133 // report only base targets when PlatformBase* is requested
129 if(type == PlatformVariant && !target.startsWith(variant)) 134 if((type == PlatformBase || type == PlatformBaseDisabled))
130 continue; 135 result.append(targetbase);
131 result.append(target); 136 else
137 result.append(target);
132 } 138 }
139 result.removeDuplicates();
133 return result; 140 return result;
134} 141}
135 142