forked from qt-creator/qt-creator
Android: read SDK configuration from user editable path
By default, copy the sdk_definitions.json to Qt Creator user resource path. The user can use that to make any updates if desired. Add SdkDownloader instance as a member of AndroidSettingsWidget. Change-Id: Ieabc9c6ddecbe63586f750b26bcf4ca990caee26 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -286,13 +286,27 @@ void AndroidConfig::save(QSettings &settings) const
|
||||
|
||||
void AndroidConfig::parseDependenciesJson()
|
||||
{
|
||||
QString sdkConfigUserFile(Core::ICore::userResourcePath() + JsonFilePath);
|
||||
QString sdkConfigFile(Core::ICore::resourcePath() + JsonFilePath);
|
||||
QFile jsonFile(sdkConfigFile);
|
||||
if (!jsonFile.open(QIODevice::ReadOnly))
|
||||
qCDebug(avdConfigLog, "Couldn't open JSON config file %s.", qPrintable(sdkConfigFile));
|
||||
|
||||
QJsonDocument loadDoc(QJsonDocument::fromJson(jsonFile.readAll()));
|
||||
QJsonObject jsonObject = loadDoc.object();
|
||||
if (!QFile::exists(sdkConfigUserFile)) {
|
||||
QDir(QFileInfo(sdkConfigUserFile).absolutePath()).mkpath(".");
|
||||
QFile::copy(sdkConfigFile, sdkConfigUserFile);
|
||||
}
|
||||
|
||||
if (QFileInfo(sdkConfigFile).lastModified() > QFileInfo(sdkConfigUserFile).lastModified()) {
|
||||
QFile::remove(sdkConfigUserFile + ".old");
|
||||
QFile::rename(sdkConfigUserFile, sdkConfigUserFile + ".old");
|
||||
QFile::copy(sdkConfigFile, sdkConfigUserFile);
|
||||
}
|
||||
|
||||
QFile jsonFile(sdkConfigUserFile);
|
||||
if (!jsonFile.open(QIODevice::ReadOnly)) {
|
||||
qCDebug(avdConfigLog, "Couldn't open JSON config file %s.", qPrintable(jsonFile.fileName()));
|
||||
return;
|
||||
}
|
||||
|
||||
QJsonObject jsonObject = QJsonDocument::fromJson(jsonFile.readAll()).object();
|
||||
|
||||
if (jsonObject.contains(CommonKey) && jsonObject[CommonKey].isObject()) {
|
||||
QJsonObject commonObject = jsonObject[CommonKey].toObject();
|
||||
|
||||
Reference in New Issue
Block a user