forked from qt-creator/qt-creator
Android: List extra packages as well
These packages should get listed as well as they contain (at least on Windows) essential packages. Change-Id: Ia8fb8fc641ac6d9a7fba8f65a31ef65eae560a99 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -261,6 +261,7 @@ public:
|
||||
SdkToolsMarker = 0x100,
|
||||
PlatformToolsMarker = 0x200,
|
||||
EmulatorToolsMarker = 0x400,
|
||||
ExtrasMarker = 0x800,
|
||||
SectionMarkers = InstalledPackagesMarker | AvailablePackagesMarkers | AvailableUpdatesMarker
|
||||
};
|
||||
|
||||
@@ -280,6 +281,7 @@ private:
|
||||
SdkTools *parseSdkToolsPackage(const QStringList &data) const;
|
||||
PlatformTools *parsePlatformToolsPackage(const QStringList &data) const;
|
||||
EmulatorTools *parseEmulatorToolsPackage(const QStringList &data) const;
|
||||
ExtraTools *parseExtraToolsPackage(const QStringList &data) const;
|
||||
MarkerTag parseMarkers(const QString &line);
|
||||
|
||||
MarkerTag m_currentSection = MarkerTag::None;
|
||||
@@ -295,7 +297,8 @@ const std::map<SdkManagerOutputParser::MarkerTag, const char *> markerTags {
|
||||
{SdkManagerOutputParser::MarkerTag::BuildToolsMarker, "build-tools"},
|
||||
{SdkManagerOutputParser::MarkerTag::SdkToolsMarker, "tools"},
|
||||
{SdkManagerOutputParser::MarkerTag::PlatformToolsMarker, "platform-tools"},
|
||||
{SdkManagerOutputParser::MarkerTag::EmulatorToolsMarker, "emulator"}
|
||||
{SdkManagerOutputParser::MarkerTag::EmulatorToolsMarker, "emulator"},
|
||||
{SdkManagerOutputParser::MarkerTag::ExtrasMarker, "extras"}
|
||||
};
|
||||
|
||||
AndroidSdkManager::AndroidSdkManager(const AndroidConfig &config, QObject *parent):
|
||||
@@ -562,6 +565,10 @@ void SdkManagerOutputParser::parsePackageData(MarkerTag packageMarker, const QSt
|
||||
}
|
||||
break;
|
||||
|
||||
case MarkerTag::ExtrasMarker:
|
||||
createPackage(&SdkManagerOutputParser::parseExtraToolsPackage);
|
||||
break;
|
||||
|
||||
default:
|
||||
qCDebug(sdkManagerLog) << "Unhandled package: " << markerTags.at(packageMarker);
|
||||
break;
|
||||
@@ -726,6 +733,22 @@ EmulatorTools *SdkManagerOutputParser::parseEmulatorToolsPackage(const QStringLi
|
||||
return emulatorTools;
|
||||
}
|
||||
|
||||
ExtraTools *SdkManagerOutputParser::parseExtraToolsPackage(const QStringList &data) const
|
||||
{
|
||||
ExtraTools *extraTools = nullptr;
|
||||
GenericPackageData packageData;
|
||||
if (parseAbstractData(packageData, data, 1, "Extras")) {
|
||||
extraTools = new ExtraTools(packageData.revision, data.at(0));
|
||||
extraTools->setDescriptionText(packageData.description);
|
||||
extraTools->setDisplayText(packageData.description);
|
||||
extraTools->setInstalledLocation(packageData.installedLocation);
|
||||
} else {
|
||||
qCDebug(sdkManagerLog) << "Extra-tools: Parsing failed. Minimum required data "
|
||||
"unavailable:" << data;
|
||||
}
|
||||
return extraTools;
|
||||
}
|
||||
|
||||
SdkManagerOutputParser::MarkerTag SdkManagerOutputParser::parseMarkers(const QString &line)
|
||||
{
|
||||
if (line.isEmpty())
|
||||
|
||||
Reference in New Issue
Block a user