ToolChainFactory: Add typeIdFromMap and use it in factories

Change-Id: Id3254bcb3a5c426540bbab49dc61545031af6826
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
This commit is contained in:
Tobias Hunger
2015-07-07 14:20:12 +02:00
parent 468337c56b
commit 6d81730764
9 changed files with 28 additions and 16 deletions

View File

@@ -261,9 +261,22 @@ ToolChain *ToolChainFactory::restore(const QVariantMap &)
return 0;
}
static QPair<QString, QString> rawIdData(const QVariantMap &data)
{
const QString raw = data.value(QLatin1String(ID_KEY)).toString();
const int pos = raw.indexOf(QLatin1Char(':'));
QTC_ASSERT(pos > 0, return qMakePair(QString::fromLatin1("unknown"), QString::fromLatin1("unknown")));
return qMakePair(raw.mid(0, pos), raw.mid(pos + 1));
}
QByteArray ToolChainFactory::idFromMap(const QVariantMap &data)
{
return data.value(QLatin1String(ID_KEY)).toByteArray();
return rawIdData(data).second.toUtf8();
}
Core::Id ToolChainFactory::typeIdFromMap(const QVariantMap &data)
{
return Core::Id::fromString(rawIdData(data).first);
}
void ToolChainFactory::autoDetectionToMap(QVariantMap &data, bool detected)