From dc921cc5408fe8845c32918c1e8eab65f3e01f28 Mon Sep 17 00:00:00 2001 From: Pawel Polanski Date: Tue, 21 Dec 2010 13:22:36 +0100 Subject: [PATCH] Symbian: small change in cert's capabilities --- .../qt-s60/s60certificateinfo.cpp | 53 ++++++++++++++++------ 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt-s60/s60certificateinfo.cpp b/src/plugins/qt4projectmanager/qt-s60/s60certificateinfo.cpp index 5236ba8fc3..204d5ae39e 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60certificateinfo.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60certificateinfo.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include "s60symbiancertificate.h" @@ -90,17 +91,7 @@ static const CapabilitySet capabilitySet[] = { "red", S60CertificateInfo::ManufacturerCapabilities } }; -QStringList createCapabilityList(uint capabilities) -{ - const int capabilityCount = sizeof(capability)/sizeof(capability[0]); - QStringList capabilityList; - for(int i = 0; i < capabilityCount; ++i) - if (capabilities&capability[i].value) - capabilityList << QLatin1String(capability[i].name); - return capabilityList; -} - -QStringList createHtmlCapabilityList(uint capabilities) +QHash createCapabilityMap(uint capabilities) { const int capabilityCount = sizeof(capability)/sizeof(capability[0]); const int capabilitySetCount = sizeof(capabilitySet)/sizeof(capabilitySet[0]); @@ -110,20 +101,52 @@ QStringList createHtmlCapabilityList(uint capabilities) if (capabilities&capability[i].value) { for (int j = 0; j < capabilitySetCount; ++j) if (capability[i].value&capabilitySet[j].value) { - capabilityMap[capabilitySet[j].value] - << QString("%2") - .arg(QLatin1String(capabilitySet[j].color)) - .arg(QLatin1String(capability[i].name)); + capabilityMap[capabilitySet[j].value] << capability[i].name; break; } } + QMutableHashIterator i(capabilityMap); + while (i.hasNext()) { + i.next(); + i.value().sort(); + } + + return capabilityMap; +} + +QStringList createCapabilityList(uint capabilities) +{ + QHash capabilityMap(createCapabilityMap(capabilities)); + return capabilityMap[S60CertificateInfo::UserCapabilities] + capabilityMap[S60CertificateInfo::SystemCapabilities] + capabilityMap[S60CertificateInfo::RestrictedCapabilities] + capabilityMap[S60CertificateInfo::ManufacturerCapabilities]; } +QStringList createHtmlCapabilityList(uint capabilities) +{ + const int capabilitySetCount = sizeof(capabilitySet)/sizeof(capabilitySet[0]); + QHash capabilityMap(createCapabilityMap(capabilities)); + QStringList result; + + for (int j = 0; j < capabilitySetCount; ++j) { + QHashIterator i(capabilityMap); + while (i.hasNext()) { + i.next(); + if (i.key() == capabilitySet[j].value) { + foreach (QString capability, i.value()) { + result << QString("%2") + .arg(capabilitySet[j].color).arg(capability); + } + break; + } + } + } + return result; +} + S60CertificateInfo::S60CertificateInfo(const QString &filePath, QObject* parent) : QObject(parent), m_certificate(new S60SymbianCertificate(filePath)), -- 2.11.0