QmakeAndroidSupport: Access parseInProgress and validParse

... via base project node functionality.

Change-Id: Ifd9c5b149e11c1d104abed200881fdfe93749144
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2018-12-04 16:04:09 +01:00
parent 612410e1f9
commit 42f5c8516a
7 changed files with 25 additions and 19 deletions

View File

@@ -85,21 +85,27 @@ QVariant AndroidExtraLibraryListModel::data(const QModelIndex &index, int role)
void AndroidExtraLibraryListModel::updateModel()
{
RunConfiguration *rc = m_target->activeRunConfiguration();
QTC_ASSERT(rc, return);
const ProjectNode *node = m_target->project()->findNodeForBuildKey(rc->buildKey());
QTC_ASSERT(node, return);
AndroidQtSupport *qtSupport = Android::AndroidManager::androidQtSupport(m_target);
QTC_ASSERT(qtSupport, return);
if (qtSupport->parseInProgress(m_target)) {
if (node->parseInProgress()) {
emit enabledChanged(false);
return;
}
bool enabled;
beginResetModel();
if (qtSupport->validParse(m_target)) {
if (node->validParse()) {
m_entries = qtSupport->targetData(Constants::AndroidExtraLibs, m_target).toStringList();
enabled = true;
} else {
// parsing error or not a application template
// parsing error
m_entries.clear();
enabled = false;
}

View File

@@ -67,8 +67,6 @@ public:
virtual bool setTargetData(Core::Id role, const QVariant &value,
const ProjectExplorer::Target *target) const = 0;
virtual bool parseInProgress(const ProjectExplorer::Target *target) const = 0;
virtual bool validParse(const ProjectExplorer::Target *target) const = 0;
virtual bool extraLibraryEnabled(const ProjectExplorer::Target *target) const = 0;
virtual void addFiles(const ProjectExplorer::Target *target, const QString &buildKey,

View File

@@ -342,6 +342,8 @@ public:
const ProjectNode *asProjectNode() const final { return this; }
virtual QStringList targetApplications() const { return {}; }
virtual bool parseInProgress() const { return false; }
virtual bool validParse() const { return false; }
protected:
explicit ProjectNode(const Utils::FileName &projectFilePath, const QByteArray &id = {});

View File

@@ -87,18 +87,6 @@ static QmakeProFile *applicationProFile(const Target *target)
return project->rootProFile()->findProFile(FileName::fromString(rc->buildKey()));
}
bool QmakeAndroidSupport::parseInProgress(const Target *target) const
{
QmakeProjectManager::QmakeProFile *pro = applicationProFile(target);
return !pro || pro->parseInProgress();
}
bool QmakeAndroidSupport::validParse(const Target *target) const
{
QmakeProjectManager::QmakeProFile *pro = applicationProFile(target);
return pro->validParse() && pro->projectType() == ProjectType::ApplicationTemplate;
}
bool QmakeAndroidSupport::extraLibraryEnabled(const Target *target) const
{
QmakeProFile *pro = applicationProFile(target);

View File

@@ -42,8 +42,6 @@ public:
bool setTargetData(Core::Id role, const QVariant &value,
const ProjectExplorer::Target *target) const override;
bool parseInProgress(const ProjectExplorer::Target *target) const override;
bool validParse(const ProjectExplorer::Target *target) const override;
bool extraLibraryEnabled(const ProjectExplorer::Target *target) const override;
void addFiles(const ProjectExplorer::Target *target, const QString &buildKey,

View File

@@ -216,6 +216,18 @@ QString QmakeProFileNode::buildKey() const
return filePath().toString();
}
bool QmakeProFileNode::parseInProgress() const
{
QmakeProjectManager::QmakeProFile *pro = proFile();
return !pro || pro->parseInProgress();
}
bool QmakeProFileNode::validParse() const
{
QmakeProjectManager::QmakeProFile *pro = proFile();
return pro && pro->validParse();
}
QStringList QmakeProFileNode::targetApplications() const
{
QStringList apps;

View File

@@ -93,6 +93,8 @@ public:
bool showInSimpleTree() const override;
QString buildKey() const override;
bool parseInProgress() const override;
bool validParse() const override;
QStringList targetApplications() const override;
AddNewInformation addNewInformation(const QStringList &files, Node *context) const override;