QtVersionManager: Small code cleanup

No QLatin1String, foreach -> for, a few other things.

Change-Id: I80aaff6855e4a38c29d43db917fc37eb975a6de0
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
Eike Ziller
2019-10-07 14:22:53 +02:00
parent 91d785a123
commit 9c2568b8e8
2 changed files with 43 additions and 42 deletions

View File

@@ -65,7 +65,8 @@ const char QTVERSION_TYPE_KEY[] = "QtVersion.Type";
const char QTVERSION_FILE_VERSION_KEY[] = "Version"; const char QTVERSION_FILE_VERSION_KEY[] = "Version";
const char QTVERSION_FILENAME[] = "/qtversion.xml"; const char QTVERSION_FILENAME[] = "/qtversion.xml";
static QMap<int, BaseQtVersion *> m_versions; using VersionMap = QMap<int, BaseQtVersion *>;
static VersionMap m_versions;
static int m_idcount = 0; static int m_idcount = 0;
// managed by QtProjectManagerPlugin // managed by QtProjectManagerPlugin
static QtVersionManager *m_instance = nullptr; static QtVersionManager *m_instance = nullptr;
@@ -173,24 +174,24 @@ QtVersionManager *QtVersionManager::instance()
static bool restoreQtVersions() static bool restoreQtVersions()
{ {
QTC_ASSERT(!m_writer, return false); QTC_ASSERT(!m_writer, return false);
m_writer = new PersistentSettingsWriter(settingsFileName(QLatin1String(QTVERSION_FILENAME)), m_writer = new PersistentSettingsWriter(settingsFileName(QTVERSION_FILENAME),
QLatin1String("QtCreatorQtVersions")); "QtCreatorQtVersions");
const QList<QtVersionFactory *> factories = QtVersionFactory::allQtVersionFactories(); const QList<QtVersionFactory *> factories = QtVersionFactory::allQtVersionFactories();
PersistentSettingsReader reader; PersistentSettingsReader reader;
FilePath filename = settingsFileName(QLatin1String(QTVERSION_FILENAME)); const FilePath filename = settingsFileName(QTVERSION_FILENAME);
if (!reader.load(filename)) if (!reader.load(filename))
return false; return false;
QVariantMap data = reader.restoreValues(); QVariantMap data = reader.restoreValues();
// Check version: // Check version:
int version = data.value(QLatin1String(QTVERSION_FILE_VERSION_KEY), 0).toInt(); const int version = data.value(QTVERSION_FILE_VERSION_KEY, 0).toInt();
if (version < 1) if (version < 1)
return false; return false;
const QString keyPrefix = QLatin1String(QTVERSION_DATA_KEY); const QString keyPrefix(QTVERSION_DATA_KEY);
const QVariantMap::ConstIterator dcend = data.constEnd(); const QVariantMap::ConstIterator dcend = data.constEnd();
for (QVariantMap::ConstIterator it = data.constBegin(); it != dcend; ++it) { for (QVariantMap::ConstIterator it = data.constBegin(); it != dcend; ++it) {
const QString &key = it.key(); const QString &key = it.key();
@@ -202,7 +203,7 @@ static bool restoreQtVersions()
continue; continue;
const QVariantMap qtversionMap = it.value().toMap(); const QVariantMap qtversionMap = it.value().toMap();
const QString type = qtversionMap.value(QLatin1String(QTVERSION_TYPE_KEY)).toString(); const QString type = qtversionMap.value(QTVERSION_TYPE_KEY).toString();
bool restored = false; bool restored = false;
for (QtVersionFactory *f : factories) { for (QtVersionFactory *f : factories) {
@@ -254,7 +255,7 @@ void QtVersionManager::updateFromInstaller(bool emitSignal)
if (debug) { if (debug) {
qDebug()<< "======= Existing Qt versions ======="; qDebug()<< "======= Existing Qt versions =======";
foreach (BaseQtVersion *version, m_versions) { for (BaseQtVersion *version : qAsConst(m_versions)) {
qDebug() << version->qmakeCommand().toString() << "id:"<<version->uniqueId(); qDebug() << version->qmakeCommand().toString() << "id:"<<version->uniqueId();
qDebug() << " autodetection source:"<< version->autodetectionSource(); qDebug() << " autodetection source:"<< version->autodetectionSource();
qDebug() << ""; qDebug() << "";
@@ -264,7 +265,7 @@ void QtVersionManager::updateFromInstaller(bool emitSignal)
QStringList sdkVersions; QStringList sdkVersions;
const QString keyPrefix = QLatin1String(QTVERSION_DATA_KEY); const QString keyPrefix(QTVERSION_DATA_KEY);
const QVariantMap::ConstIterator dcend = data.constEnd(); const QVariantMap::ConstIterator dcend = data.constEnd();
for (QVariantMap::ConstIterator it = data.constBegin(); it != dcend; ++it) { for (QVariantMap::ConstIterator it = data.constBegin(); it != dcend; ++it) {
const QString &key = it.key(); const QString &key = it.key();
@@ -276,12 +277,12 @@ void QtVersionManager::updateFromInstaller(bool emitSignal)
continue; continue;
QVariantMap qtversionMap = it.value().toMap(); QVariantMap qtversionMap = it.value().toMap();
const QString type = qtversionMap.value(QLatin1String(QTVERSION_TYPE_KEY)).toString(); const QString type = qtversionMap.value(QTVERSION_TYPE_KEY).toString();
const QString autoDetectionSource = qtversionMap.value(QLatin1String("autodetectionSource")).toString(); const QString autoDetectionSource = qtversionMap.value("autodetectionSource").toString();
sdkVersions << autoDetectionSource; sdkVersions << autoDetectionSource;
int id = -1; // see BaseQtVersion::fromMap() int id = -1; // see BaseQtVersion::fromMap()
QtVersionFactory *factory = nullptr; QtVersionFactory *factory = nullptr;
foreach (QtVersionFactory *f, factories) { for (QtVersionFactory *f : factories) {
if (f->canRestore(type)) if (f->canRestore(type))
factory = f; factory = f;
} }
@@ -292,14 +293,14 @@ void QtVersionManager::updateFromInstaller(bool emitSignal)
} }
// First try to find a existing Qt version to update // First try to find a existing Qt version to update
bool restored = false; bool restored = false;
foreach (BaseQtVersion *v, m_versions) { for (BaseQtVersion *v : qAsConst(m_versions)) {
if (v->autodetectionSource() == autoDetectionSource) { if (v->autodetectionSource() == autoDetectionSource) {
id = v->uniqueId(); id = v->uniqueId();
if (debug) if (debug)
qDebug() << " Qt version found with same autodetection source" << autoDetectionSource << " => Migrating id:" << id; qDebug() << " Qt version found with same autodetection source" << autoDetectionSource << " => Migrating id:" << id;
m_versions.remove(id); m_versions.remove(id);
qtversionMap[QLatin1String(Constants::QTVERSIONID)] = id; qtversionMap[Constants::QTVERSIONID] = id;
qtversionMap[QLatin1String(Constants::QTVERSIONNAME)] = v->unexpandedDisplayName(); qtversionMap[Constants::QTVERSIONNAME] = v->unexpandedDisplayName();
delete v; delete v;
if (BaseQtVersion *qtv = factory->restore(type, qtversionMap)) { if (BaseQtVersion *qtv = factory->restore(type, qtversionMap)) {
@@ -332,14 +333,14 @@ void QtVersionManager::updateFromInstaller(bool emitSignal)
if (debug) { if (debug) {
qDebug() << "======= Before removing outdated sdk versions ======="; qDebug() << "======= Before removing outdated sdk versions =======";
foreach (BaseQtVersion *version, m_versions) { for (BaseQtVersion *version : qAsConst(m_versions)) {
qDebug() << version->qmakeCommand().toString() << "id:"<<version->uniqueId(); qDebug() << version->qmakeCommand().toString() << "id:"<<version->uniqueId();
qDebug() << " autodetection source:"<< version->autodetectionSource(); qDebug() << " autodetection source:"<< version->autodetectionSource();
qDebug() << ""; qDebug() << "";
} }
} }
foreach (BaseQtVersion *qtVersion, m_versions) { for (BaseQtVersion *qtVersion : qAsConst(m_versions)) {
if (qtVersion->autodetectionSource().startsWith(QLatin1String("SDK."))) { if (qtVersion->autodetectionSource().startsWith("SDK.")) {
if (!sdkVersions.contains(qtVersion->autodetectionSource())) { if (!sdkVersions.contains(qtVersion->autodetectionSource())) {
if (debug) if (debug)
qDebug() << " removing version"<<qtVersion->autodetectionSource(); qDebug() << " removing version"<<qtVersion->autodetectionSource();
@@ -351,8 +352,8 @@ void QtVersionManager::updateFromInstaller(bool emitSignal)
if (debug) { if (debug) {
qDebug()<< "======= End result ======="; qDebug()<< "======= End result =======";
foreach (BaseQtVersion *version, m_versions) { for (BaseQtVersion *version : qAsConst(m_versions)) {
qDebug() << version->qmakeCommand().toString() << "id:"<<version->uniqueId(); qDebug() << version->qmakeCommand().toString() << "id:" << version->uniqueId();
qDebug() << " autodetection source:"<< version->autodetectionSource(); qDebug() << " autodetection source:"<< version->autodetectionSource();
qDebug() << ""; qDebug() << "";
} }
@@ -367,17 +368,16 @@ static void saveQtVersions()
return; return;
QVariantMap data; QVariantMap data;
data.insert(QLatin1String(QTVERSION_FILE_VERSION_KEY), 1); data.insert(QTVERSION_FILE_VERSION_KEY, 1);
int count = 0; int count = 0;
foreach (BaseQtVersion *qtv, m_versions) { for (BaseQtVersion *qtv : qAsConst(m_versions)) {
QVariantMap tmp = qtv->toMap(); QVariantMap tmp = qtv->toMap();
if (tmp.isEmpty()) if (tmp.isEmpty())
continue; continue;
tmp.insert(QLatin1String(QTVERSION_TYPE_KEY), qtv->type()); tmp.insert(QTVERSION_TYPE_KEY, qtv->type());
data.insert(QString::fromLatin1(QTVERSION_DATA_KEY) + QString::number(count), tmp); data.insert(QString::fromLatin1(QTVERSION_DATA_KEY) + QString::number(count), tmp);
++count; ++count;
} }
m_writer->save(data, Core::ICore::mainWindow()); m_writer->save(data, Core::ICore::mainWindow());
} }
@@ -395,10 +395,10 @@ static QList<QByteArray> runQtChooser(const QString &qtchooser, const QStringLis
// Asks qtchooser for the qmake path of a given version // Asks qtchooser for the qmake path of a given version
static QString qmakePath(const QString &qtchooser, const QString &version) static QString qmakePath(const QString &qtchooser, const QString &version)
{ {
QList<QByteArray> outputs = runQtChooser(qtchooser, QStringList() const QList<QByteArray> outputs = runQtChooser(qtchooser,
<< QStringLiteral("-qt=%1").arg(version) {QStringLiteral("-qt=%1").arg(version),
<< QStringLiteral("-print-env")); QStringLiteral("-print-env")});
foreach (const QByteArray &output, outputs) { for (const QByteArray &output : outputs) {
if (output.startsWith("QTTOOLDIR=\"")) { if (output.startsWith("QTTOOLDIR=\"")) {
QByteArray withoutVarName = output.mid(11); // remove QTTOOLDIR=" QByteArray withoutVarName = output.mid(11); // remove QTTOOLDIR="
withoutVarName.chop(1); // remove trailing quote withoutVarName.chop(1); // remove trailing quote
@@ -415,9 +415,9 @@ static FilePathList gatherQmakePathsFromQtChooser()
if (qtchooser.isEmpty()) if (qtchooser.isEmpty())
return FilePathList(); return FilePathList();
QList<QByteArray> versions = runQtChooser(qtchooser, QStringList("-l")); const QList<QByteArray> versions = runQtChooser(qtchooser, QStringList("-l"));
QSet<FilePath> foundQMakes; QSet<FilePath> foundQMakes;
foreach (const QByteArray &version, versions) { for (const QByteArray &version : versions) {
FilePath possibleQMake = FilePath::fromString( FilePath possibleQMake = FilePath::fromString(
qmakePath(qtchooser, QString::fromLocal8Bit(version))); qmakePath(qtchooser, QString::fromLocal8Bit(version)));
if (!possibleQMake.isEmpty()) if (!possibleQMake.isEmpty())
@@ -433,9 +433,11 @@ static void findSystemQt()
systemQMakes.append(gatherQmakePathsFromQtChooser()); systemQMakes.append(gatherQmakePathsFromQtChooser());
foreach (const FilePath &qmakePath, Utils::filteredUnique(systemQMakes)) { const FilePathList uniqueSystemQmakes = Utils::filteredUnique(systemQMakes);
BaseQtVersion *version for (const FilePath &qmakePath : uniqueSystemQmakes) {
= QtVersionFactory::createQtVersionFromQMakePath(qmakePath, false, QLatin1String("PATH")); BaseQtVersion *version = QtVersionFactory::createQtVersionFromQMakePath(qmakePath,
false,
"PATH");
if (version) { if (version) {
version->setUnexpandedDisplayName(BaseQtVersion::defaultUnexpandedDisplayName(qmakePath, true)); version->setUnexpandedDisplayName(BaseQtVersion::defaultUnexpandedDisplayName(qmakePath, true));
m_versions.insert(version->uniqueId(), version); m_versions.insert(version->uniqueId(), version);
@@ -510,7 +512,6 @@ QList<BaseQtVersion *> QtVersionManager::versions(const BaseQtVersion::Predicate
QTC_ASSERT(isLoaded(), return versions); QTC_ASSERT(isLoaded(), return versions);
if (predicate) if (predicate)
return Utils::filtered(m_versions.values(), predicate); return Utils::filtered(m_versions.values(), predicate);
else
return m_versions.values(); return m_versions.values();
} }
@@ -524,7 +525,7 @@ QList<BaseQtVersion *> QtVersionManager::sortVersions(const QList<BaseQtVersion
BaseQtVersion *QtVersionManager::version(int id) BaseQtVersion *QtVersionManager::version(int id)
{ {
QTC_ASSERT(isLoaded(), return nullptr); QTC_ASSERT(isLoaded(), return nullptr);
QMap<int, BaseQtVersion *>::const_iterator it = m_versions.constFind(id); VersionMap::const_iterator it = m_versions.constFind(id);
if (it == m_versions.constEnd()) if (it == m_versions.constEnd())
return nullptr; return nullptr;
return it.value(); return it.value();
@@ -541,7 +542,7 @@ static bool equals(BaseQtVersion *a, BaseQtVersion *b)
return a->equals(b); return a->equals(b);
} }
void QtVersionManager::setNewQtVersions(QList<BaseQtVersion *> newVersions) void QtVersionManager::setNewQtVersions(const QList<BaseQtVersion *> &newVersions)
{ {
// We want to preserve the same order as in the settings dialog // We want to preserve the same order as in the settings dialog
// so we sort a copy // so we sort a copy
@@ -556,7 +557,7 @@ void QtVersionManager::setNewQtVersions(QList<BaseQtVersion *> newVersions)
// newVersions and oldVersions iterator // newVersions and oldVersions iterator
QList<BaseQtVersion *>::const_iterator nit, nend; QList<BaseQtVersion *>::const_iterator nit, nend;
QMap<int, BaseQtVersion *>::const_iterator oit, oend; VersionMap::const_iterator oit, oend;
nit = sortedNewVersions.constBegin(); nit = sortedNewVersions.constBegin();
nend = sortedNewVersions.constEnd(); nend = sortedNewVersions.constEnd();
oit = m_versions.constBegin(); oit = m_versions.constBegin();
@@ -607,9 +608,9 @@ void QtVersionManager::setNewQtVersions(QList<BaseQtVersion *> newVersions)
}); });
qDeleteAll(m_versions); qDeleteAll(m_versions);
m_versions.clear(); m_versions = Utils::transform<VersionMap>(sortedNewVersions, [](BaseQtVersion *v) {
foreach (BaseQtVersion *v, sortedNewVersions) return std::make_pair(v->uniqueId(), v);
m_versions.insert(v->uniqueId(), v); });
saveQtVersions(); saveQtVersions();
if (!changedVersions.isEmpty() || !addedVersions.isEmpty() || !removedVersions.isEmpty()) if (!changedVersions.isEmpty() || !addedVersions.isEmpty() || !removedVersions.isEmpty())

View File

@@ -72,7 +72,7 @@ private:
void triggerQtVersionRestore(); void triggerQtVersionRestore();
// Used by QtOptionsPage // Used by QtOptionsPage
static void setNewQtVersions(QList<BaseQtVersion *> newVersions); static void setNewQtVersions(const QList<BaseQtVersion *> &newVersions);
// Used by QtVersion // Used by QtVersion
static int getUniqueId(); static int getUniqueId();
}; };