forked from qt-creator/qt-creator
QmakeAndroidSupport: Minor cleanup
Add a helper function that casts the project to QmakeProject. Will be used in the follow-up commit for connecting a slot. Change-Id: I17e23630ac88c117da9bac61dd045f94661e35f0 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
3410fee65f
commit
c8688c0798
@@ -76,29 +76,32 @@ QmakeAndroidRunConfiguration::QmakeAndroidRunConfiguration(Target *parent, Qmake
|
|||||||
void QmakeAndroidRunConfiguration::init()
|
void QmakeAndroidRunConfiguration::init()
|
||||||
{
|
{
|
||||||
setDefaultDisplayName(defaultDisplayName());
|
setDefaultDisplayName(defaultDisplayName());
|
||||||
connect(target()->project(), SIGNAL(proFileUpdated(QmakeProjectManager::QmakeProFileNode*,bool,bool)),
|
connect(qmakeProject(), SIGNAL(proFileUpdated(QmakeProjectManager::QmakeProFileNode*,bool,bool)),
|
||||||
this, SLOT(proFileUpdated(QmakeProjectManager::QmakeProFileNode*,bool,bool)));
|
this, SLOT(proFileUpdated(QmakeProjectManager::QmakeProFileNode*,bool,bool)));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QmakeAndroidRunConfiguration::fromMap(const QVariantMap &map)
|
bool QmakeAndroidRunConfiguration::fromMap(const QVariantMap &map)
|
||||||
{
|
{
|
||||||
const QDir projectDir = QDir(target()->project()->projectDirectory().toString());
|
QmakeProject *project = qmakeProject();
|
||||||
|
QTC_ASSERT(project, return false);
|
||||||
|
const QDir projectDir = QDir(project->projectDirectory().toString());
|
||||||
m_proFilePath = Utils::FileName::fromUserInput(projectDir.filePath(map.value(PRO_FILE_KEY).toString()));
|
m_proFilePath = Utils::FileName::fromUserInput(projectDir.filePath(map.value(PRO_FILE_KEY).toString()));
|
||||||
m_parseSuccess = static_cast<QmakeProject *>(target()->project())->validParse(m_proFilePath);
|
m_parseSuccess = project->validParse(m_proFilePath);
|
||||||
m_parseInProgress = static_cast<QmakeProject *>(target()->project())->parseInProgress(m_proFilePath);
|
m_parseInProgress = project->parseInProgress(m_proFilePath);
|
||||||
|
|
||||||
return RunConfiguration::fromMap(map);
|
return RunConfiguration::fromMap(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariantMap QmakeAndroidRunConfiguration::toMap() const
|
QVariantMap QmakeAndroidRunConfiguration::toMap() const
|
||||||
{
|
{
|
||||||
|
QmakeProject *project = qmakeProject();
|
||||||
if (m_proFilePath.isEmpty()) {
|
if (m_proFilePath.isEmpty()) {
|
||||||
if (!target()->project()->rootProjectNode())
|
if (!project->rootProjectNode())
|
||||||
return QVariantMap();
|
return QVariantMap();
|
||||||
m_proFilePath = target()->project()->rootProjectNode()->filePath();
|
m_proFilePath = project->rootProjectNode()->filePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
const QDir projectDir = QDir(target()->project()->projectDirectory().toString());
|
const QDir projectDir = QDir(project->projectDirectory().toString());
|
||||||
QVariantMap map(RunConfiguration::toMap());
|
QVariantMap map(RunConfiguration::toMap());
|
||||||
map.insert(PRO_FILE_KEY, projectDir.relativeFilePath(m_proFilePath.toString()));
|
map.insert(PRO_FILE_KEY, projectDir.relativeFilePath(m_proFilePath.toString()));
|
||||||
return map;
|
return map;
|
||||||
@@ -106,7 +109,7 @@ QVariantMap QmakeAndroidRunConfiguration::toMap() const
|
|||||||
|
|
||||||
QString QmakeAndroidRunConfiguration::defaultDisplayName()
|
QString QmakeAndroidRunConfiguration::defaultDisplayName()
|
||||||
{
|
{
|
||||||
auto project = static_cast<QmakeProject *>(target()->project());
|
QmakeProject *project = qmakeProject();
|
||||||
const QmakeProjectManager::QmakeProFileNode *root = project->rootProjectNode();
|
const QmakeProjectManager::QmakeProFileNode *root = project->rootProjectNode();
|
||||||
if (root) {
|
if (root) {
|
||||||
const QmakeProjectManager::QmakeProFileNode *node = root->findProFileFor(m_proFilePath);
|
const QmakeProjectManager::QmakeProFileNode *node = root->findProFileFor(m_proFilePath);
|
||||||
@@ -129,15 +132,15 @@ QString QmakeAndroidRunConfiguration::disabledReason() const
|
|||||||
.arg(m_proFilePath.fileName());
|
.arg(m_proFilePath.fileName());
|
||||||
|
|
||||||
if (!m_parseSuccess)
|
if (!m_parseSuccess)
|
||||||
return static_cast<QmakeProject *>(target()->project())->disabledReasonForRunConfiguration(m_proFilePath);
|
return qmakeProject()->disabledReasonForRunConfiguration(m_proFilePath);
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmakeAndroidRunConfiguration::proFileUpdated(QmakeProjectManager::QmakeProFileNode *pro, bool success, bool parseInProgress)
|
void QmakeAndroidRunConfiguration::proFileUpdated(QmakeProjectManager::QmakeProFileNode *pro, bool success, bool parseInProgress)
|
||||||
{
|
{
|
||||||
if (m_proFilePath.isEmpty() && target()->project()->rootProjectNode()) {
|
QmakeProject *project = qmakeProject();
|
||||||
m_proFilePath = target()->project()->rootProjectNode()->filePath();
|
if (m_proFilePath.isEmpty() && project->rootProjectNode())
|
||||||
}
|
m_proFilePath = project->rootProjectNode()->filePath();
|
||||||
|
|
||||||
if (m_proFilePath != pro->filePath())
|
if (m_proFilePath != pro->filePath())
|
||||||
return;
|
return;
|
||||||
@@ -153,6 +156,13 @@ void QmakeAndroidRunConfiguration::proFileUpdated(QmakeProjectManager::QmakeProF
|
|||||||
setDefaultDisplayName(defaultDisplayName());
|
setDefaultDisplayName(defaultDisplayName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QmakeProject *QmakeAndroidRunConfiguration::qmakeProject() const
|
||||||
|
{
|
||||||
|
Target *t = target();
|
||||||
|
QTC_ASSERT(t, return nullptr);
|
||||||
|
return static_cast<QmakeProject *>(t->project());
|
||||||
|
}
|
||||||
|
|
||||||
Utils::FileName QmakeAndroidRunConfiguration::proFilePath() const
|
Utils::FileName QmakeAndroidRunConfiguration::proFilePath() const
|
||||||
{
|
{
|
||||||
return m_proFilePath;
|
return m_proFilePath;
|
||||||
|
@@ -29,7 +29,10 @@
|
|||||||
|
|
||||||
#include <utils/fileutils.h>
|
#include <utils/fileutils.h>
|
||||||
|
|
||||||
namespace QmakeProjectManager { class QmakeProFileNode; }
|
namespace QmakeProjectManager {
|
||||||
|
class QmakeProFileNode;
|
||||||
|
class QmakeProject;
|
||||||
|
}
|
||||||
|
|
||||||
namespace QmakeAndroidSupport {
|
namespace QmakeAndroidSupport {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
@@ -59,6 +62,7 @@ private slots:
|
|||||||
void proFileUpdated(QmakeProjectManager::QmakeProFileNode *pro, bool success, bool parseInProgress);
|
void proFileUpdated(QmakeProjectManager::QmakeProFileNode *pro, bool success, bool parseInProgress);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
QmakeProjectManager::QmakeProject *qmakeProject() const;
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
mutable Utils::FileName m_proFilePath;
|
mutable Utils::FileName m_proFilePath;
|
||||||
|
Reference in New Issue
Block a user