summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer/buildconfiguration.cpp
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@digia.com>2013-04-19 13:19:46 +0200
committerDaniel Teske <daniel.teske@digia.com>2013-04-19 14:51:39 +0200
commit2d568e79c470430e981a525ac27d4b2f1ed4e05e (patch)
treee67b8ee30386077c68459a5ea82e93b86caa56cc /src/plugins/projectexplorer/buildconfiguration.cpp
parent2ed88c44fd3b05b9e24cc649ecf11bc82fd1f3a3 (diff)
downloadqt-creator-2d568e79c470430e981a525ac27d4b2f1ed4e05e.tar.gz
Cache BuildConfiguration::environment()
Change-Id: I865593f46feb332c385733c53de5884e5cd3751a Reviewed-by: Aurindam Jana <aurindam.jana@digia.com> Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins/projectexplorer/buildconfiguration.cpp')
-rw-r--r--src/plugins/projectexplorer/buildconfiguration.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp
index 0f0754d9cc..65a82aa565 100644
--- a/src/plugins/projectexplorer/buildconfiguration.cpp
+++ b/src/plugins/projectexplorer/buildconfiguration.cpp
@@ -89,6 +89,8 @@ BuildConfiguration::BuildConfiguration(Target *target, const Core::Id id) :
bsl->setDefaultDisplayName(tr("Clean"));
m_stepLists.append(bsl);
+ emitEnvironmentChanged();
+
connect(target, SIGNAL(kitChanged()),
this, SLOT(handleKitUpdate()));
}
@@ -104,6 +106,8 @@ BuildConfiguration::BuildConfiguration(Target *target, BuildConfiguration *sourc
// otherwise BuildStepFactories might reject to set up a BuildStep for us
// since we are not yet the derived class!
+ emitEnvironmentChanged();
+
connect(target, SIGNAL(kitChanged()),
this, SLOT(handleKitUpdate()));
}
@@ -159,7 +163,7 @@ bool BuildConfiguration::fromMap(const QVariantMap &map)
m_clearSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY)).toBool();
m_userEnvironmentChanges = Utils::EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
- m_lastEnvironment = environment();
+ emitEnvironmentChanged();
qDeleteAll(m_stepLists);
m_stepLists.clear();
@@ -193,11 +197,12 @@ bool BuildConfiguration::fromMap(const QVariantMap &map)
void BuildConfiguration::emitEnvironmentChanged()
{
- Utils::Environment env = environment();
- if (env == m_lastEnvironment)
- return;
- m_lastEnvironment = env;
- emit environmentChanged();
+ Utils::Environment env = baseEnvironment();
+ env.modify(userEnvironmentChanges());
+ if (env == m_cachedEnvironment)
+ return;
+ m_cachedEnvironment = env;
+ emit environmentChanged();
}
void BuildConfiguration::handleKitUpdate()
@@ -229,9 +234,7 @@ QString BuildConfiguration::baseEnvironmentText() const
Utils::Environment BuildConfiguration::environment() const
{
- Utils::Environment env = baseEnvironment();
- env.modify(userEnvironmentChanges());
- return env;
+ return m_cachedEnvironment;
}
void BuildConfiguration::setUseSystemEnvironment(bool b)