summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/base
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/rbutilqt/base')
-rw-r--r--rbutil/rbutilqt/base/playerbuildinfo.cpp47
-rw-r--r--rbutil/rbutilqt/base/playerbuildinfo.h7
-rw-r--r--rbutil/rbutilqt/base/systeminfo.cpp33
-rw-r--r--rbutil/rbutilqt/base/systeminfo.h12
4 files changed, 45 insertions, 54 deletions
diff --git a/rbutil/rbutilqt/base/playerbuildinfo.cpp b/rbutil/rbutilqt/base/playerbuildinfo.cpp
index fb8b121e8f..f49917cfef 100644
--- a/rbutil/rbutilqt/base/playerbuildinfo.cpp
+++ b/rbutil/rbutilqt/base/playerbuildinfo.cpp
@@ -57,15 +57,17 @@ const static struct {
57 PlayerBuildInfo::DeviceInfo item; 57 PlayerBuildInfo::DeviceInfo item;
58 const char* name; 58 const char* name;
59} PlayerInfoList[] = { 59} PlayerInfoList[] = {
60 { PlayerBuildInfo::BuildStatus, "status/:target:" }, 60 { PlayerBuildInfo::BuildStatus, "status/:target:" },
61 { PlayerBuildInfo::DisplayName, ":target:/name" }, 61 { PlayerBuildInfo::DisplayName, ":target:/name" },
62 { PlayerBuildInfo::BootloaderMethod, ":target:/bootloadermethod" }, 62 { PlayerBuildInfo::BootloaderMethod, ":target:/bootloadermethod" },
63 { PlayerBuildInfo::BootloaderName, ":target:/bootloadername" }, 63 { PlayerBuildInfo::BootloaderName, ":target:/bootloadername" },
64 { PlayerBuildInfo::BootloaderFile, ":target:/bootloaderfile" }, 64 { PlayerBuildInfo::BootloaderFile, ":target:/bootloaderfile" },
65 { PlayerBuildInfo::BootloaderFilter, ":target:/bootloaderfilter" }, 65 { PlayerBuildInfo::BootloaderFilter, ":target:/bootloaderfilter" },
66 { PlayerBuildInfo::Encoder, ":target:/encoder" }, 66 { PlayerBuildInfo::Encoder, ":target:/encoder" },
67 { PlayerBuildInfo::Brand, ":target:/brand" }, 67 { PlayerBuildInfo::Brand, ":target:/brand" },
68 { PlayerBuildInfo::PlayerPicture, ":target:/playerpic" }, 68 { PlayerBuildInfo::PlayerPicture, ":target:/playerpic" },
69 { PlayerBuildInfo::TargetNamesAll, "" },
70 { PlayerBuildInfo::TargetNamesEnabled, "" },
69}; 71};
70 72
71const static struct { 73const static struct {
@@ -216,6 +218,14 @@ QVariant PlayerBuildInfo::value(DeviceInfo item, QString target)
216 result = -1; 218 result = -1;
217 break; 219 break;
218 } 220 }
221 case TargetNamesAll:
222 // list of all internal target names. Doesn't depend on the passed target.
223 result = targetNames(true);
224 break;
225 case TargetNamesEnabled:
226 // list of all non-disabled target names. Doesn't depend on the passed target.
227 result = targetNames(false);
228 break;
219 229
220 default: 230 default:
221 result = playerInfo.value(s); 231 result = playerInfo.value(s);
@@ -263,3 +273,22 @@ QString PlayerBuildInfo::statusAsString(QString platform)
263 273
264 return result; 274 return result;
265} 275}
276
277
278QStringList PlayerBuildInfo::targetNames(bool all)
279{
280 QStringList result;
281 playerInfo.beginGroup("platforms");
282 QStringList a = playerInfo.childKeys();
283 playerInfo.endGroup();
284 for(int i = 0; i < a.size(); i++)
285 {
286 QString target = playerInfo.value("platforms/" + a.at(i), "null").toString();
287 if(playerInfo.value(target + "/status").toString() != "disabled" || all) {
288 result.append(target);
289 }
290 }
291 result.removeDuplicates();
292 return result;
293}
294
diff --git a/rbutil/rbutilqt/base/playerbuildinfo.h b/rbutil/rbutilqt/base/playerbuildinfo.h
index 81d7d97312..5307148ff5 100644
--- a/rbutil/rbutilqt/base/playerbuildinfo.h
+++ b/rbutil/rbutilqt/base/playerbuildinfo.h
@@ -66,6 +66,9 @@ public:
66 Encoder, 66 Encoder,
67 Brand, 67 Brand,
68 PlayerPicture, 68 PlayerPicture,
69
70 TargetNamesAll,
71 TargetNamesEnabled,
69 }; 72 };
70 73
71 enum SystemUrl { 74 enum SystemUrl {
@@ -97,6 +100,10 @@ protected:
97 explicit PlayerBuildInfo(); 100 explicit PlayerBuildInfo();
98 101
99private: 102private:
103 //! Return a list with all target names (as used internally).
104 //! @all false filter out all targets with status = disabled.
105 QStringList targetNames(bool all);
106
100 static PlayerBuildInfo* infoInstance; 107 static PlayerBuildInfo* infoInstance;
101 QSettings* serverInfo; 108 QSettings* serverInfo;
102 QSettings playerInfo; 109 QSettings playerInfo;
diff --git a/rbutil/rbutilqt/base/systeminfo.cpp b/rbutil/rbutilqt/base/systeminfo.cpp
index aa847540b9..6717b120cc 100644
--- a/rbutil/rbutilqt/base/systeminfo.cpp
+++ b/rbutil/rbutilqt/base/systeminfo.cpp
@@ -38,39 +38,6 @@ void SystemInfo::ensureSystemInfoExists()
38} 38}
39 39
40 40
41QStringList SystemInfo::platforms(enum SystemInfo::PlatformType type, QString variant)
42{
43 ensureSystemInfoExists();
44
45 QStringList result;
46 systemInfos->beginGroup("platforms");
47 QStringList a = systemInfos->childKeys();
48 systemInfos->endGroup();
49 for(int i = 0; i < a.size(); i++)
50 {
51 QString target = systemInfos->value("platforms/"+a.at(i), "null").toString();
52 QRegExp regex("\\..*$");
53 QString targetbase = target;
54 targetbase.remove(regex);
55 // only add target if its not disabled unless Platform*Disabled requested
56 if(type != PlatformAllDisabled && type != PlatformBaseDisabled
57 && type != PlatformVariantDisabled
58 && systemInfos->value(target+"/status").toString() == "disabled")
59 continue;
60 // report only matching target if PlatformVariant* is requested
61 if((type == PlatformVariant || type == PlatformVariantDisabled)
62 && (targetbase != variant))
63 continue;
64 // report only base targets when PlatformBase* is requested
65 if((type == PlatformBase || type == PlatformBaseDisabled))
66 result.append(targetbase);
67 else
68 result.append(target);
69 }
70 result.removeDuplicates();
71 return result;
72}
73
74QMap<QString, QStringList> SystemInfo::languages(bool namesOnly) 41QMap<QString, QStringList> SystemInfo::languages(bool namesOnly)
75{ 42{
76 ensureSystemInfoExists(); 43 ensureSystemInfoExists();
diff --git a/rbutil/rbutilqt/base/systeminfo.h b/rbutil/rbutilqt/base/systeminfo.h
index 7b5b68131b..d5a99082aa 100644
--- a/rbutil/rbutilqt/base/systeminfo.h
+++ b/rbutil/rbutilqt/base/systeminfo.h
@@ -34,18 +34,6 @@ class SystemInfo : public QObject
34 MapIncompatible, 34 MapIncompatible,
35 }; 35 };
36 36
37 enum PlatformType {
38 PlatformAll,
39 PlatformAllDisabled,
40 PlatformBase,
41 PlatformBaseDisabled,
42 PlatformVariant,
43 PlatformVariantDisabled
44 };
45
46 //! return a list of all platforms (rbutil internal names)
47 static QStringList platforms(enum PlatformType type = PlatformAll,
48 QString variant="");
49 //! returns a map of all languages. 37 //! returns a map of all languages.
50 //! Maps <language code> to (<language name>, <display name>) 38 //! Maps <language code> to (<language name>, <display name>)
51 static QMap<QString, QStringList> languages(bool namesOnly = false); 39 static QMap<QString, QStringList> languages(bool namesOnly = false);