Merge remote-tracking branch 'origin/4.3'

Conflicts:
	tests/auto/debugger/tst_dumpers.cpp

Change-Id: Id8b53b000f94a1b5ab923db79f67bad3276d09dc
This commit is contained in:
Eike Ziller
2017-05-04 10:03:50 +02:00
59 changed files with 604 additions and 632 deletions

View File

@@ -192,6 +192,9 @@ namespace Internal {
QbsRootProjectNode *QbsNodeTreeBuilder::buildTree(QbsProject *project)
{
if (!project->qbsProjectData().isValid())
return nullptr;
auto root = new QbsRootProjectNode(project);
setupProjectNode(root, project->qbsProjectData(), project->qbsProject());
auto buildSystemFiles

View File

@@ -133,7 +133,7 @@ QbsProject::QbsProject(const FileName &fileName) :
setProjectContext(Context(Constants::PROJECT_ID));
setProjectLanguages(Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
setDisplayName(fileName.toFileInfo().completeBaseName());
rebuildProjectTree();
connect(this, &Project::activeTargetChanged, this, &QbsProject::changeActiveTarget);
connect(this, &Project::addedTarget, this, &QbsProject::targetWasAdded);
@@ -255,7 +255,7 @@ bool QbsProject::addFilesToProduct(const QStringList &filePaths,
}
if (notAdded->count() != filePaths.count()) {
m_projectData = m_qbsProject.projectData();
setRootProjectNode(Internal::QbsNodeTreeBuilder::buildTree(this));
rebuildProjectTree();
}
return notAdded->isEmpty();
}
@@ -282,7 +282,7 @@ bool QbsProject::removeFilesFromProduct(const QStringList &filePaths,
}
if (notRemoved->count() != filePaths.count()) {
m_projectData = m_qbsProject.projectData();
setRootProjectNode(Internal::QbsNodeTreeBuilder::buildTree(this));
rebuildProjectTree();
emit fileListChanged();
}
return notRemoved->isEmpty();
@@ -454,7 +454,7 @@ void QbsProject::updateAfterParse()
void QbsProject::updateProjectNodes()
{
OpTimer opTimer("updateProjectNodes");
setRootProjectNode(Internal::QbsNodeTreeBuilder::buildTree(this));
rebuildProjectTree();
}
void QbsProject::handleQbsParsingDone(bool success)
@@ -495,6 +495,13 @@ void QbsProject::handleQbsParsingDone(bool success)
emit parsingFinished();
}
void QbsProject::rebuildProjectTree()
{
QbsProjectNode *newRoot = Internal::QbsNodeTreeBuilder::buildTree(this);
setDisplayName(newRoot ? newRoot->displayName() : projectFilePath().toFileInfo().completeBaseName());
setRootProjectNode(newRoot);
}
void QbsProject::handleRuleExecutionDone()
{
qCDebug(qbsPmLog) << "Rule execution done";

View File

@@ -114,6 +114,8 @@ signals:
private:
void handleQbsParsingDone(bool success);
void rebuildProjectTree();
void targetWasAdded(ProjectExplorer::Target *t);
void targetWasRemoved(ProjectExplorer::Target *t);
void changeActiveTarget(ProjectExplorer::Target *t);

View File

@@ -112,9 +112,14 @@ QbsRunConfiguration::QbsRunConfiguration(Target *parent, Core::Id id) :
m_uniqueProductName(uniqueProductNameFromId(id)),
m_currentBuildStepList(0)
{
addExtraAspect(new LocalEnvironmentAspect(this, [](RunConfiguration *rc, Environment &env) {
static_cast<QbsRunConfiguration *>(rc)->addToBaseEnvironment(env);
}));
auto * const envAspect = new LocalEnvironmentAspect(this,
[](RunConfiguration *rc, Environment &env) {
static_cast<QbsRunConfiguration *>(rc)->addToBaseEnvironment(env);
}
);
addExtraAspect(envAspect);
connect(static_cast<QbsProject *>(parent->project()), &QbsProject::parsingFinished, this,
[envAspect]() { envAspect->buildEnvironmentHasChanged(); });
addExtraAspect(new ArgumentsAspect(this, QStringLiteral("Qbs.RunConfiguration.CommandLineArguments")));
addExtraAspect(new WorkingDirectoryAspect(this, QStringLiteral("Qbs.RunConfiguration.WorkingDirectory")));