forked from qt-creator/qt-creator
Android: Use QVariant for targetData/setTargetData
This makes it more similar to the classic QAbstractItemModel::{data/setData}
pattern and hides qmake-specific semantic (variables are QString*Lists*)
behind something more general.
Change-Id: I82d7006affd4af208be2b7640076698d13fd3a61
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
This commit is contained in:
@@ -180,7 +180,7 @@ bool AndroidBuildApkStep::init(QList<const BuildStep *> &earlierSteps)
|
||||
&Utils::FileName::toString));
|
||||
|
||||
AndroidQtSupport *qtSupport = AndroidManager::androidQtSupport(target());
|
||||
QFileInfo sourceDirInfo(qtSupport->targetDataItem(Constants::AndroidPackageSourceDir, target()));
|
||||
QFileInfo sourceDirInfo(qtSupport->targetData(Constants::AndroidPackageSourceDir, target()).toString());
|
||||
parser->setSourceDirectory(Utils::FileName::fromString(sourceDirInfo.canonicalFilePath()));
|
||||
parser->setBuildDirectory(Utils::FileName::fromString(bc->buildDirectory().appendPath(Constants::ANDROID_BUILDDIRECTORY).toString()));
|
||||
setOutputParser(parser);
|
||||
@@ -202,7 +202,7 @@ bool AndroidBuildApkStep::init(QList<const BuildStep *> &earlierSteps)
|
||||
QString outputDir = bc->buildDirectory().appendPath(Constants::ANDROID_BUILDDIRECTORY).toString();
|
||||
|
||||
QString inputFile = AndroidManager::androidQtSupport(target())
|
||||
->targetDataItem(Constants::AndroidDeploySettingsFile, target());
|
||||
->targetData(Constants::AndroidDeploySettingsFile, target()).toString();
|
||||
if (inputFile.isEmpty()) {
|
||||
m_skipBuilding = true;
|
||||
return true;
|
||||
|
||||
@@ -135,8 +135,9 @@ void AndroidDebugSupport::start()
|
||||
qCDebug(androidDebugSupportLog) << "C++ debugging enabled";
|
||||
AndroidQtSupport *qtSupport = AndroidManager::androidQtSupport(target);
|
||||
QStringList solibSearchPath = qtSupport->soLibSearchPath(target);
|
||||
QStringList extraLibs = qtSupport->targetData(Android::Constants::AndroidExtraLibs, target).toStringList();
|
||||
solibSearchPath.append(qtSoPaths(qtVersion));
|
||||
solibSearchPath.append(uniquePaths(qtSupport->targetData(Android::Constants::AndroidExtraLibs, target)));
|
||||
solibSearchPath.append(uniquePaths(extraLibs));
|
||||
setSolibSearchPath(solibSearchPath);
|
||||
qCDebug(androidDebugSupportLog) << "SoLibSearchPath: "<<solibSearchPath;
|
||||
setSymbolFile(target->activeBuildConfiguration()->buildDirectory().toString()
|
||||
|
||||
@@ -191,7 +191,7 @@ bool AndroidDeployQtStep::init(QList<const BuildStep *> &earlierSteps)
|
||||
Utils::QtcProcess::addArg(&m_androiddeployqtArgs, m_workingDirectory);
|
||||
Utils::QtcProcess::addArg(&m_androiddeployqtArgs, QLatin1String("--no-build"));
|
||||
Utils::QtcProcess::addArg(&m_androiddeployqtArgs, QLatin1String("--input"));
|
||||
const QString jsonFile = qtSupport->targetDataItem(Constants::AndroidDeploySettingsFile, target());
|
||||
const QString jsonFile = qtSupport->targetData(Constants::AndroidDeploySettingsFile, target()).toString();
|
||||
if (jsonFile.isEmpty()) {
|
||||
emit addOutput(tr("Cannot find the androiddeploy Json file."), OutputFormat::Stderr);
|
||||
return false;
|
||||
|
||||
@@ -93,7 +93,7 @@ void AndroidExtraLibraryListModel::updateModel()
|
||||
bool enabled;
|
||||
beginResetModel();
|
||||
if (qtSupport->validParse(m_target)) {
|
||||
m_entries = qtSupport->targetData(Constants::AndroidExtraLibs, m_target);
|
||||
m_entries = qtSupport->targetData(Constants::AndroidExtraLibs, m_target).toStringList();
|
||||
enabled = true;
|
||||
} else {
|
||||
// parsing error or not a application template
|
||||
|
||||
@@ -305,7 +305,8 @@ Utils::FileName AndroidManager::apkPath(const ProjectExplorer::Target *target)
|
||||
Utils::FileName AndroidManager::manifestSourcePath(ProjectExplorer::Target *target)
|
||||
{
|
||||
if (AndroidQtSupport *androidQtSupport = AndroidManager::androidQtSupport(target)) {
|
||||
const QString packageSource = androidQtSupport->targetDataItem(Android::Constants::AndroidPackageSourceDir, target);
|
||||
const QString packageSource
|
||||
= androidQtSupport->targetData(Android::Constants::AndroidPackageSourceDir, target).toString();
|
||||
if (!packageSource.isEmpty()) {
|
||||
const FileName manifest = FileName::fromUserInput(packageSource + "/AndroidManifest.xml");
|
||||
if (manifest.exists())
|
||||
@@ -630,7 +631,7 @@ bool AndroidManager::updateGradleProperties(ProjectExplorer::Target *target)
|
||||
if (!qtSupport)
|
||||
return false;
|
||||
|
||||
QFileInfo sourceDirInfo(qtSupport->targetDataItem(Constants::AndroidPackageSourceDir, target));
|
||||
QFileInfo sourceDirInfo(qtSupport->targetData(Constants::AndroidPackageSourceDir, target).toString());
|
||||
FileName packageSourceDir = FileName::fromString(sourceDirInfo.canonicalFilePath());
|
||||
if (!packageSourceDir.appendPath("gradlew").exists())
|
||||
return false;
|
||||
|
||||
@@ -38,10 +38,10 @@ namespace Utils { class FileName; }
|
||||
namespace Android {
|
||||
namespace Constants {
|
||||
|
||||
const char AndroidPackageSourceDir[] = "AndroidPackageSourceDir";
|
||||
const char AndroidDeploySettingsFile[] = "AndroidDeploySettingsFile";
|
||||
const char AndroidExtraLibs[] = "AndroidExtraLibs";
|
||||
const char AndroidArch[] = "AndroidArch";
|
||||
const char AndroidPackageSourceDir[] = "AndroidPackageSourceDir"; // QString
|
||||
const char AndroidDeploySettingsFile[] = "AndroidDeploySettingsFile"; // QString
|
||||
const char AndroidExtraLibs[] = "AndroidExtraLibs"; // QStringList
|
||||
const char AndroidArch[] = "AndroidArch"; // QString
|
||||
|
||||
} // namespace Constants
|
||||
|
||||
@@ -64,9 +64,8 @@ public:
|
||||
virtual QStringList soLibSearchPath(const ProjectExplorer::Target *target) const = 0;
|
||||
virtual QStringList projectTargetApplications(const ProjectExplorer::Target *target) const = 0;
|
||||
|
||||
virtual QString targetDataItem(Core::Id role, const ProjectExplorer::Target *target) const = 0;
|
||||
virtual QStringList targetData(Core::Id role, const ProjectExplorer::Target *target) const = 0;
|
||||
virtual bool setTargetData(Core::Id role, const QStringList &values,
|
||||
virtual QVariant targetData(Core::Id role, const ProjectExplorer::Target *target) const = 0;
|
||||
virtual bool setTargetData(Core::Id role, const QVariant &value,
|
||||
const ProjectExplorer::Target *target) const = 0;
|
||||
|
||||
virtual bool parseInProgress(const ProjectExplorer::Target *target) const = 0;
|
||||
|
||||
@@ -183,7 +183,7 @@ void ChooseDirectoryPage::initializePage()
|
||||
|
||||
AndroidQtSupport *qtSupport = AndroidManager::androidQtSupport(m_wizard->target());
|
||||
const QString androidPackageDir
|
||||
= qtSupport->targetDataItem(Android::Constants::AndroidPackageSourceDir, m_wizard->target());
|
||||
= qtSupport->targetData(Android::Constants::AndroidPackageSourceDir, m_wizard->target()).toString();
|
||||
|
||||
if (androidPackageDir.isEmpty()) {
|
||||
m_label->setText(tr("Select the Android package source directory.\n\n"
|
||||
@@ -348,13 +348,13 @@ void CreateAndroidManifestWizard::createAndroidTemplateFiles()
|
||||
qtSupport->addFiles(m_target, m_buildKey, addedFiles);
|
||||
|
||||
const QString androidPackageDir
|
||||
= qtSupport->targetDataItem(Android::Constants::AndroidPackageSourceDir, m_target);
|
||||
= qtSupport->targetData(Android::Constants::AndroidPackageSourceDir, m_target).toString();
|
||||
|
||||
if (androidPackageDir.isEmpty()) {
|
||||
// and now time for some magic
|
||||
const BuildTargetInfo bti = m_target->applicationTargets().buildTargetInfo(m_buildKey);
|
||||
const QString value = "$$PWD/" + bti.projectFilePath.toFileInfo().absoluteDir().relativeFilePath(m_directory);
|
||||
bool result = qtSupport->setTargetData(Android::Constants::AndroidPackageSourceDir, {value}, m_target);
|
||||
bool result = qtSupport->setTargetData(Android::Constants::AndroidPackageSourceDir, value, m_target);
|
||||
|
||||
if (!result) {
|
||||
QMessageBox::warning(this, tr("Project File not Updated"),
|
||||
|
||||
Reference in New Issue
Block a user