forked from qt-creator/qt-creator
Kit: Only make SDK-set KitInformation read-only
Leave the rest user-editable. Task-number: QTCREATORBUG-9030 Change-Id: I77c9ff980dd9a497bff53ee04dae7e771e4e7e82 Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
@@ -105,6 +105,7 @@ public:
|
||||
bool m_mustNotifyAboutDisplayName;
|
||||
|
||||
QHash<Core::Id, QVariant> m_data;
|
||||
QSet<Core::Id> m_sticky;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
@@ -161,6 +162,7 @@ Kit *Kit::clone(bool keepName) const
|
||||
k->d->m_isValid = d->m_isValid;
|
||||
k->d->m_icon = d->m_icon;
|
||||
k->d->m_iconPath = d->m_iconPath;
|
||||
k->d->m_sticky = d->m_sticky;
|
||||
return k;
|
||||
}
|
||||
|
||||
@@ -174,6 +176,7 @@ void Kit::copyFrom(const Kit *k)
|
||||
d->m_displayName = k->d->m_displayName;
|
||||
d->m_mustNotify = true;
|
||||
d->m_mustNotifyAboutDisplayName = true;
|
||||
d->m_sticky = k->d->m_sticky;
|
||||
}
|
||||
|
||||
bool Kit::isValid() const
|
||||
@@ -337,9 +340,15 @@ void Kit::removeKey(Id key)
|
||||
if (!d->m_data.contains(key))
|
||||
return;
|
||||
d->m_data.remove(key);
|
||||
d->m_sticky.remove(key);
|
||||
kitUpdated();
|
||||
}
|
||||
|
||||
bool Kit::isSticky(Core::Id id) const
|
||||
{
|
||||
return d->m_sticky.contains(id);
|
||||
}
|
||||
|
||||
bool Kit::isDataEqual(const Kit *other) const
|
||||
{
|
||||
return d->m_data == other->d->m_data;
|
||||
@@ -451,6 +460,7 @@ bool Kit::fromMap(const QVariantMap &data)
|
||||
setIconPath(data.value(QLatin1String(ICON_KEY)).toString());
|
||||
|
||||
QVariantMap extra = data.value(QLatin1String(DATA_KEY)).toMap();
|
||||
d->m_data.clear(); // remove default values
|
||||
const QVariantMap::ConstIterator cend = extra.constEnd();
|
||||
for (QVariantMap::ConstIterator it = extra.constBegin(); it != cend; ++it)
|
||||
setValue(Id::fromString(it.key()), it.value());
|
||||
@@ -468,6 +478,19 @@ void Kit::setSdkProvided(bool sdkProvided)
|
||||
d->m_sdkProvided = sdkProvided;
|
||||
}
|
||||
|
||||
void Kit::makeSticky()
|
||||
{
|
||||
foreach (KitInformation *ki, KitManager::instance()->kitInformation()) {
|
||||
if (hasValue(ki->dataId()))
|
||||
makeSticky(ki->dataId());
|
||||
}
|
||||
}
|
||||
|
||||
void Kit::makeSticky(Core::Id id)
|
||||
{
|
||||
d->m_sticky.insert(id);
|
||||
}
|
||||
|
||||
void Kit::kitUpdated()
|
||||
{
|
||||
if (d->m_nestedBlockingLevel > 0 && !d->m_mustNotifyAboutDisplayName) {
|
||||
|
||||
Reference in New Issue
Block a user