diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2010-01-31 21:57:45 +0000 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2010-01-31 21:57:45 +0000 |
commit | ea4130fd2d91d99fec3135bc83128fe702a846ab (patch) | |
tree | d5d677b796200036eae47721290a13145b628982 /rbutil/rbutilqt/base | |
parent | e9538363286e22bf21be1f8b3d5a4e83cdc2e4a4 (diff) | |
download | rockbox-ea4130fd2d91d99fec3135bc83128fe702a846ab.tar.gz rockbox-ea4130fd2d91d99fec3135bc83128fe702a846ab.zip |
Extend SystemInfo to allow distinguishing between platforms and variants.
Doing so removes the need to loop over all targets to fill in values for
target variants in ServerInfo.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24427 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/base')
-rw-r--r-- | rbutil/rbutilqt/base/serverinfo.cpp | 53 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/serverinfo.h | 2 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/systeminfo.cpp | 15 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/systeminfo.h | 13 |
4 files changed, 49 insertions, 34 deletions
diff --git a/rbutil/rbutilqt/base/serverinfo.cpp b/rbutil/rbutilqt/base/serverinfo.cpp index e54fd03f8a..e581e952ac 100644 --- a/rbutil/rbutilqt/base/serverinfo.cpp +++ b/rbutil/rbutilqt/base/serverinfo.cpp | |||
@@ -51,33 +51,47 @@ void ServerInfo::readBuildInfo(QString file) | |||
51 | 51 | ||
52 | info.beginGroup("release"); | 52 | info.beginGroup("release"); |
53 | QStringList keys = info.allKeys(); | 53 | QStringList keys = info.allKeys(); |
54 | for(int i=0; i < keys.size(); i++) | ||
55 | { | ||
56 | setAllConfigPlatformValue(keys[i],ServerInfo::CurReleaseVersion,info.value(keys[i])); | ||
57 | } | ||
58 | info.endGroup(); | 54 | info.endGroup(); |
59 | 55 | ||
60 | info.beginGroup("status"); | 56 | // get base platforms, handle variants with platforms in the loop |
61 | keys = info.allKeys(); | 57 | QStringList platforms = SystemInfo::platforms(SystemInfo::PlatformBase); |
62 | for(int i=0; i < keys.size(); i++) | 58 | for(int i = 0; i < platforms.size(); i++) |
63 | { | 59 | { |
64 | switch(info.value(keys[i]).toInt()) | 60 | // check if there are rbutil-variants of the current platform and handle |
61 | // them the same time. | ||
62 | QStringList variants; | ||
63 | variants = SystemInfo::platforms(SystemInfo::PlatformVariant, platforms.at(i)); | ||
64 | QVariant release; | ||
65 | info.beginGroup("release"); | ||
66 | if(keys.contains(platforms.at(i))) { | ||
67 | release = info.value(platforms.at(i)); | ||
68 | } | ||
69 | |||
70 | info.endGroup(); | ||
71 | info.beginGroup("status"); | ||
72 | QString status = tr("Unknown"); | ||
73 | switch(info.value(platforms.at(i)).toInt()) | ||
65 | { | 74 | { |
66 | case 1: | 75 | case 1: |
67 | ServerInfo::setAllConfigPlatformValue(keys[i],ServerInfo::CurStatus,tr("Unusable")); | 76 | status = tr("Unusable"); |
68 | break; | 77 | break; |
69 | case 2: | 78 | case 2: |
70 | ServerInfo::setAllConfigPlatformValue(keys[i],ServerInfo::CurStatus,tr("Unstable")); | 79 | status = tr("Unstable"); |
71 | break; | 80 | break; |
72 | case 3: | 81 | case 3: |
73 | ServerInfo::setAllConfigPlatformValue(keys[i],ServerInfo::CurStatus,tr("Stable")); | 82 | status = tr("Stable"); |
74 | break; | 83 | break; |
75 | default: | 84 | default: |
76 | ServerInfo::setAllConfigPlatformValue(keys[i],ServerInfo::CurStatus,tr("Unknown")); | ||
77 | break; | 85 | break; |
78 | } | 86 | } |
87 | info.endGroup(); | ||
88 | // set variants (if any) | ||
89 | for(int j = 0; j < variants.size(); ++j) { | ||
90 | setPlatformValue(variants.at(j), ServerInfo::CurStatus, status); | ||
91 | setPlatformValue(variants.at(j), ServerInfo::CurReleaseVersion, release); | ||
92 | } | ||
93 | |||
79 | } | 94 | } |
80 | info.endGroup(); | ||
81 | } | 95 | } |
82 | 96 | ||
83 | void ServerInfo::readBleedingInfo(QString file) | 97 | void ServerInfo::readBleedingInfo(QString file) |
@@ -121,17 +135,6 @@ void ServerInfo::setPlatformValue(QString platform, enum ServerInfos info, QVari | |||
121 | qDebug() << "[ServerInfo] SET:" << s << serverInfos.value(s).toString(); | 135 | qDebug() << "[ServerInfo] SET:" << s << serverInfos.value(s).toString(); |
122 | } | 136 | } |
123 | 137 | ||
124 | void ServerInfo::setAllConfigPlatformValue(QString configplatform, ServerInfos info, QVariant value) | ||
125 | { | ||
126 | // insert intp all platforms where configurename matches | ||
127 | QStringList platforms = SystemInfo::platforms(); | ||
128 | for(int i =0; i < platforms.size(); i++) | ||
129 | { | ||
130 | if(SystemInfo::platformValue(platforms.at(i),SystemInfo::CurConfigureModel) == configplatform) | ||
131 | setPlatformValue(platforms.at(i),info,value); | ||
132 | } | ||
133 | } | ||
134 | |||
135 | QVariant ServerInfo::platformValue(QString platform, enum ServerInfos info) | 138 | QVariant ServerInfo::platformValue(QString platform, enum ServerInfos info) |
136 | { | 139 | { |
137 | // locate setting item | 140 | // locate setting item |
diff --git a/rbutil/rbutilqt/base/serverinfo.h b/rbutil/rbutilqt/base/serverinfo.h index 742ea277ff..6683a7adab 100644 --- a/rbutil/rbutilqt/base/serverinfo.h +++ b/rbutil/rbutilqt/base/serverinfo.h | |||
@@ -49,8 +49,6 @@ class ServerInfo : public QObject | |||
49 | static QVariant platformValue(QString platform, enum ServerInfos setting); | 49 | static QVariant platformValue(QString platform, enum ServerInfos setting); |
50 | 50 | ||
51 | private: | 51 | private: |
52 | //! set a server info to all platforms where configurename matches | ||
53 | static void setAllConfigPlatformValue(QString configplatform,ServerInfos info, QVariant value); | ||
54 | //! set a server info value | 52 | //! set a server info value |
55 | static void setValue(enum ServerInfos setting , QVariant value); | 53 | static void setValue(enum ServerInfos setting , QVariant value); |
56 | //! set a value for a server info for a named platform. | 54 | //! set a value for a server info for a named platform. |
diff --git a/rbutil/rbutilqt/base/systeminfo.cpp b/rbutil/rbutilqt/base/systeminfo.cpp index 3760901c15..ff221db63d 100644 --- a/rbutil/rbutilqt/base/systeminfo.cpp +++ b/rbutil/rbutilqt/base/systeminfo.cpp | |||
@@ -107,7 +107,7 @@ QVariant SystemInfo::platformValue(QString platform, enum SystemInfos info) | |||
107 | return systemInfos->value(s, d); | 107 | return systemInfos->value(s, d); |
108 | } | 108 | } |
109 | 109 | ||
110 | QStringList SystemInfo::platforms() | 110 | QStringList SystemInfo::platforms(enum SystemInfo::PlatformType type, QString variant) |
111 | { | 111 | { |
112 | ensureSystemInfoExists(); | 112 | ensureSystemInfoExists(); |
113 | 113 | ||
@@ -117,10 +117,17 @@ QStringList SystemInfo::platforms() | |||
117 | systemInfos->endGroup(); | 117 | systemInfos->endGroup(); |
118 | for(int i = 0; i < a.size(); i++) | 118 | for(int i = 0; i < a.size(); i++) |
119 | { | 119 | { |
120 | //only add not disabled targets | ||
121 | QString target = systemInfos->value("platforms/"+a.at(i), "null").toString(); | 120 | QString target = systemInfos->value("platforms/"+a.at(i), "null").toString(); |
122 | if(systemInfos->value(target+"/status").toString() != "disabled") | 121 | // only add target if its not disabled |
123 | result.append(target); | 122 | if(systemInfos->value(target+"/status").toString() == "disabled") |
123 | continue; | ||
124 | // report only base targets when PlatformBase is requested | ||
125 | if(type == PlatformBase && target.contains('.')) | ||
126 | continue; | ||
127 | // report only matching target if PlatformVariant is requested | ||
128 | if(type == PlatformVariant && !target.startsWith(variant)) | ||
129 | continue; | ||
130 | result.append(target); | ||
124 | } | 131 | } |
125 | return result; | 132 | return result; |
126 | } | 133 | } |
diff --git a/rbutil/rbutilqt/base/systeminfo.h b/rbutil/rbutilqt/base/systeminfo.h index 1794b00a76..45984d4789 100644 --- a/rbutil/rbutilqt/base/systeminfo.h +++ b/rbutil/rbutilqt/base/systeminfo.h | |||
@@ -63,14 +63,21 @@ class SystemInfo : public QObject | |||
63 | CurConfigureModel, | 63 | CurConfigureModel, |
64 | }; | 64 | }; |
65 | 65 | ||
66 | enum PlatformType { | ||
67 | PlatformAll, | ||
68 | PlatformBase, | ||
69 | PlatformVariant | ||
70 | }; | ||
71 | |||
66 | //! return a list of all platforms (rbutil internal names) | 72 | //! return a list of all platforms (rbutil internal names) |
67 | static QStringList platforms(void); | 73 | static QStringList platforms(enum PlatformType type = PlatformAll, |
74 | QString variant=""); | ||
68 | //! returns a list of all languages | 75 | //! returns a list of all languages |
69 | static QStringList languages(void); | 76 | static QStringList languages(void); |
70 | //! maps a platform to its name | 77 | //! maps a platform to its name |
71 | static QString name(QString plattform); | 78 | static QString name(QString platform); |
72 | //! maps a platform to its brand | 79 | //! maps a platform to its brand |
73 | static QString brand(QString plattform); | 80 | static QString brand(QString platform); |
74 | //! returns a map of usb-ids and their targets | 81 | //! returns a map of usb-ids and their targets |
75 | static QMap<int, QString> usbIdMap(enum MapType); | 82 | static QMap<int, QString> usbIdMap(enum MapType); |
76 | //! get a value from system settings | 83 | //! get a value from system settings |