forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/2.7'
Conflicts: qtcreator.pri qtcreator.qbs share/qtcreator/qml/qmlpuppet/interfaces/interfaces.pri share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancesignalspy.cpp share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/objectnodeinstance.h src/plugins/debugger/debuggerplugin.cpp src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu_helper.cpp src/plugins/qmldesigner/components/debugview/debugview.cpp src/plugins/qmldesigner/components/formeditor/abstractcustomtool.cpp src/plugins/qmldesigner/components/formeditor/abstractcustomtool.h src/plugins/qmldesigner/components/formeditor/formeditorview.cpp src/plugins/qmldesigner/components/integration/stackedutilitypanelcontroller.h src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp src/plugins/qmldesigner/components/navigator/navigatorview.cpp src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp src/plugins/qmldesigner/designercore/include/abstractview.h src/plugins/qmldesigner/designercore/include/qmldesignercorelib_global.h src/plugins/qmldesigner/designercore/include/rewriterview.h src/plugins/qmldesigner/designercore/metainfo/metainforeader.cpp src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp src/plugins/qmldesigner/designercore/model/abstractview.cpp src/plugins/qmldesigner/designmodewidget.cpp Change-Id: I9d8126e88397c02a87b5e4ab4da44e2bc7089134
This commit is contained in:
@@ -223,6 +223,16 @@ bool AndroidManager::setVersionName(ProjectExplorer::Target *target, const QStri
|
||||
return saveManifest(target, doc);
|
||||
}
|
||||
|
||||
bool AndroidManager::ensureIconAttribute(ProjectExplorer::Target *target)
|
||||
{
|
||||
QDomDocument doc;
|
||||
if (!openManifest(target, doc))
|
||||
return false;
|
||||
QDomElement applicationElem = doc.documentElement().firstChildElement(QLatin1String("application"));
|
||||
applicationElem.setAttribute(QLatin1String("android:icon"), QLatin1String("@drawable/icon"));
|
||||
return saveManifest(target, doc);
|
||||
}
|
||||
|
||||
QString AndroidManager::targetSDK(ProjectExplorer::Target *target)
|
||||
{
|
||||
if (!createAndroidTemplatesIfNecessary(target))
|
||||
@@ -251,7 +261,8 @@ QIcon AndroidManager::highDpiIcon(ProjectExplorer::Target *target)
|
||||
|
||||
bool AndroidManager::setHighDpiIcon(ProjectExplorer::Target *target, const QString &iconFilePath)
|
||||
{
|
||||
return setIcon(target, HighDPI, iconFilePath);
|
||||
return ensureIconAttribute(target) &&
|
||||
setIcon(target, HighDPI, iconFilePath);
|
||||
}
|
||||
|
||||
QIcon AndroidManager::mediumDpiIcon(ProjectExplorer::Target *target)
|
||||
@@ -261,7 +272,8 @@ QIcon AndroidManager::mediumDpiIcon(ProjectExplorer::Target *target)
|
||||
|
||||
bool AndroidManager::setMediumDpiIcon(ProjectExplorer::Target *target, const QString &iconFilePath)
|
||||
{
|
||||
return setIcon(target, MediumDPI, iconFilePath);
|
||||
return ensureIconAttribute(target) &&
|
||||
setIcon(target, MediumDPI, iconFilePath);
|
||||
}
|
||||
|
||||
QIcon AndroidManager::lowDpiIcon(ProjectExplorer::Target *target)
|
||||
@@ -271,7 +283,8 @@ QIcon AndroidManager::lowDpiIcon(ProjectExplorer::Target *target)
|
||||
|
||||
bool AndroidManager::setLowDpiIcon(ProjectExplorer::Target *target, const QString &iconFilePath)
|
||||
{
|
||||
return setIcon(target, LowDPI, iconFilePath);
|
||||
return ensureIconAttribute(target) &&
|
||||
setIcon(target, LowDPI, iconFilePath);
|
||||
}
|
||||
|
||||
Utils::FileName AndroidManager::dirPath(ProjectExplorer::Target *target)
|
||||
@@ -348,6 +361,62 @@ QString AndroidManager::targetApplication(ProjectExplorer::Target *target)
|
||||
return QString();
|
||||
}
|
||||
|
||||
bool AndroidManager::setUseLocalLibs(ProjectExplorer::Target *target, bool useLocalLibs, int deviceAPILevel)
|
||||
{
|
||||
// For Qt 4, the "use local libs" options is handled by passing command line arguments to the
|
||||
// app, so no need to alter the AndroidManifest.xml
|
||||
QtSupport::BaseQtVersion *baseQtVersion = QtSupport::QtKitInformation::qtVersion(target->kit());
|
||||
if (baseQtVersion == 0 || baseQtVersion->qtVersion() < QtSupport::QtVersionNumber(5,0,0))
|
||||
return true;
|
||||
|
||||
QDomDocument doc;
|
||||
if (!openManifest(target, doc))
|
||||
return false;
|
||||
|
||||
QDomElement metadataElem = doc.documentElement().firstChildElement(QLatin1String("application")).firstChildElement(QLatin1String("activity")).firstChildElement(QLatin1String("meta-data"));
|
||||
|
||||
QString localLibs;
|
||||
QString localJars;
|
||||
QString staticInitClasses;
|
||||
if (useLocalLibs) {
|
||||
localLibs = loadLocalLibs(target, deviceAPILevel);
|
||||
localJars = loadLocalJars(target, deviceAPILevel);
|
||||
staticInitClasses = loadLocalJarsInitClasses(target, deviceAPILevel);
|
||||
}
|
||||
|
||||
bool changedManifest = false;
|
||||
while (!metadataElem.isNull()) {
|
||||
if (metadataElem.attribute(QLatin1String("android:name")) == QLatin1String("android.app.use_local_qt_libs")) {
|
||||
if (metadataElem.attribute(QLatin1String("android:value")).toInt() != useLocalLibs) {
|
||||
metadataElem.setAttribute(QLatin1String("android:value"), int(useLocalLibs));
|
||||
changedManifest = true;
|
||||
}
|
||||
} else if (metadataElem.attribute(QLatin1String("android:name")) == QLatin1String("android.app.load_local_libs")) {
|
||||
if (metadataElem.attribute(QLatin1String("android:value")) != localLibs) {
|
||||
metadataElem.setAttribute(QLatin1String("android:value"), localLibs);
|
||||
changedManifest = true;
|
||||
}
|
||||
} else if (metadataElem.attribute(QLatin1String("android:name")) == QLatin1String("android.app.load_local_jars")) {
|
||||
if (metadataElem.attribute(QLatin1String("android:value")) != localJars) {
|
||||
metadataElem.setAttribute(QLatin1String("android:value"), localJars);
|
||||
changedManifest = true;
|
||||
}
|
||||
} else if (metadataElem.attribute(QLatin1String("android:name")) == QLatin1String("android.app.static_init_classes")) {
|
||||
if (metadataElem.attribute(QLatin1String("android:value")) != staticInitClasses) {
|
||||
metadataElem.setAttribute(QLatin1String("android:value"), staticInitClasses);
|
||||
changedManifest = true;
|
||||
}
|
||||
}
|
||||
|
||||
metadataElem = metadataElem.nextSiblingElement(QLatin1String("meta-data"));
|
||||
}
|
||||
|
||||
if (changedManifest)
|
||||
return saveManifest(target, doc);
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
bool AndroidManager::setTargetApplication(ProjectExplorer::Target *target, const QString &name)
|
||||
{
|
||||
QDomDocument doc;
|
||||
@@ -905,6 +974,8 @@ bool AndroidManager::setIcon(ProjectExplorer::Target *target, IconType type, con
|
||||
|
||||
const QString path = iconPath(target, type);
|
||||
QFile::remove(path);
|
||||
QDir dir;
|
||||
dir.mkpath(QFileInfo(path).absolutePath());
|
||||
return QFile::copy(iconFileName, path);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user