Kits: Do not trigger unmanagedKitUpdated signals during construction

Stay below the radar during construction/fromMap. This avoids some
signals from the KitManager about unmanaged kits having been updated.

This signal is used in three places only and always connected only
after the the construction happend. So this should be safe.

Change-Id: If6cc29b6bb98fa161776a9a79f48f88173db04b8
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
Tobias Hunger
2013-10-16 14:31:45 +02:00
committed by hjk
parent 32588b7308
commit 46d4244e01

View File

@@ -107,12 +107,12 @@ public:
Kit::Kit(Core::Id id) : Kit::Kit(Core::Id id) :
d(new Internal::KitPrivate(id)) d(new Internal::KitPrivate(id))
{ {
KitGuard g(this);
foreach (KitInformation *sti, KitManager::kitInformation()) foreach (KitInformation *sti, KitManager::kitInformation())
setValue(sti->id(), sti->defaultValue(this)); d->m_data.insert(sti->id(), sti->defaultValue(this));
setDisplayName(QCoreApplication::translate("ProjectExplorer::Kit", "Unnamed")); d->m_displayName = QCoreApplication::translate("ProjectExplorer::Kit", "Unnamed");
setIconPath(Utils::FileName::fromString(QLatin1String(":///DESKTOP///"))); d->m_iconPath = Utils::FileName::fromString(QLatin1String(":///DESKTOP///"));
d->m_icon = icon(d->m_iconPath);
} }
Kit::~Kit() Kit::~Kit()
@@ -461,14 +461,16 @@ bool Kit::fromMap(const QVariantMap &data)
d->m_sdkProvided = value.toBool(); d->m_sdkProvided = value.toBool();
else else
d->m_sdkProvided = d->m_autodetected; d->m_sdkProvided = d->m_autodetected;
setDisplayName(data.value(QLatin1String(DISPLAYNAME_KEY)).toString());
setIconPath(Utils::FileName::fromString(data.value(QLatin1String(ICON_KEY)).toString())); d->m_displayName = data.value(QLatin1String(DISPLAYNAME_KEY)).toString();
d->m_iconPath = Utils::FileName::fromString(data.value(QLatin1String(ICON_KEY)).toString());
d->m_icon = icon(d->m_iconPath);
QVariantMap extra = data.value(QLatin1String(DATA_KEY)).toMap(); QVariantMap extra = data.value(QLatin1String(DATA_KEY)).toMap();
d->m_data.clear(); // remove default values d->m_data.clear(); // remove default values
const QVariantMap::ConstIterator cend = extra.constEnd(); const QVariantMap::ConstIterator cend = extra.constEnd();
for (QVariantMap::ConstIterator it = extra.constBegin(); it != cend; ++it) for (QVariantMap::ConstIterator it = extra.constBegin(); it != cend; ++it)
setValue(Id::fromString(it.key()), it.value()); d->m_data.insert(Id::fromString(it.key()), it.value());
QStringList mutableInfoList = data.value(QLatin1String(MUTABLE_INFO_KEY)).toStringList(); QStringList mutableInfoList = data.value(QLatin1String(MUTABLE_INFO_KEY)).toStringList();
foreach (const QString &mutableInfo, mutableInfoList) { foreach (const QString &mutableInfo, mutableInfoList) {