ProjectExplorer: Use QList instead of QSet for language ids

There's no point in keeping ~2 items in a set and convert that
to a list every now and then.

Change-Id: I214b1049fb458e3d159478c47f55b97aacaac75a
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2020-09-17 16:25:04 +02:00
parent f18d24efaa
commit d4c7dee48a
6 changed files with 10 additions and 11 deletions

View File

@@ -221,7 +221,7 @@ public:
layout->setContentsMargins(0, 0, 0, 0); layout->setContentsMargins(0, 0, 0, 0);
layout->setColumnStretch(1, 2); layout->setColumnStretch(1, 2);
QList<Utils::Id> languageList = Utils::toList(ToolChainManager::allLanguages()); QList<Utils::Id> languageList = ToolChainManager::allLanguages();
Utils::sort(languageList, [](Utils::Id l1, Utils::Id l2) { Utils::sort(languageList, [](Utils::Id l1, Utils::Id l2) {
return ToolChainManager::displayNameOfLanguageId(l1) return ToolChainManager::displayNameOfLanguageId(l1)
< ToolChainManager::displayNameOfLanguageId(l2); < ToolChainManager::displayNameOfLanguageId(l2);

View File

@@ -514,7 +514,7 @@ ToolChain *ToolChainFactory::createToolChain(Utils::Id toolChainType)
return nullptr; return nullptr;
} }
QSet<Utils::Id> ToolChainFactory::supportedLanguages() const QList<Utils::Id> ToolChainFactory::supportedLanguages() const
{ {
return m_supportsAllLanguages ? ToolChainManager::allLanguages() : m_supportedLanguages; return m_supportsAllLanguages ? ToolChainManager::allLanguages() : m_supportedLanguages;
} }
@@ -529,7 +529,7 @@ void ToolChainFactory::setSupportedToolChainType(const Utils::Id &supportedToolC
m_supportedToolChainType = supportedToolChain; m_supportedToolChainType = supportedToolChain;
} }
void ToolChainFactory::setSupportedLanguages(const QSet<Utils::Id> &supportedLanguages) void ToolChainFactory::setSupportedLanguages(const QList<Utils::Id> &supportedLanguages)
{ {
m_supportedLanguages = supportedLanguages; m_supportedLanguages = supportedLanguages;
} }

View File

@@ -39,7 +39,6 @@
#include <utils/id.h> #include <utils/id.h>
#include <QObject> #include <QObject>
#include <QSet>
#include <QStringList> #include <QStringList>
#include <QVariantMap> #include <QVariantMap>
@@ -221,14 +220,14 @@ public:
static ToolChain *createToolChain(Utils::Id toolChainType); static ToolChain *createToolChain(Utils::Id toolChainType);
QSet<Utils::Id> supportedLanguages() const; QList<Utils::Id> supportedLanguages() const;
void setUserCreatable(bool userCreatable); void setUserCreatable(bool userCreatable);
protected: protected:
void setDisplayName(const QString &name) { m_displayName = name; } void setDisplayName(const QString &name) { m_displayName = name; }
void setSupportedToolChainType(const Utils::Id &supportedToolChainType); void setSupportedToolChainType(const Utils::Id &supportedToolChainType);
void setSupportedLanguages(const QSet<Utils::Id> &supportedLanguages); void setSupportedLanguages(const QList<Utils::Id> &supportedLanguages);
void setSupportsAllLanguages(bool supportsAllLanguages); void setSupportsAllLanguages(bool supportsAllLanguages);
void setToolchainConstructor(const std::function<ToolChain *()> &constructor); void setToolchainConstructor(const std::function<ToolChain *()> &constructor);
@@ -248,7 +247,7 @@ protected:
private: private:
QString m_displayName; QString m_displayName;
Utils::Id m_supportedToolChainType; Utils::Id m_supportedToolChainType;
QSet<Utils::Id> m_supportedLanguages; QList<Utils::Id> m_supportedLanguages;
bool m_supportsAllLanguages = false; bool m_supportsAllLanguages = false;
bool m_userCreatable = false; bool m_userCreatable = false;
std::function<ToolChain *()> m_toolchainConstructor; std::function<ToolChain *()> m_toolchainConstructor;

View File

@@ -227,9 +227,9 @@ void ToolChainManager::deregisterToolChain(ToolChain *tc)
delete tc; delete tc;
} }
QSet<Utils::Id> ToolChainManager::allLanguages() QList<Id> ToolChainManager::allLanguages()
{ {
return Utils::transform<QSet>(d->m_languages, &LanguageDisplayPair::id); return Utils::transform<QList>(d->m_languages, &LanguageDisplayPair::id);
} }
bool ToolChainManager::registerLanguage(const Utils::Id &language, const QString &displayName) bool ToolChainManager::registerLanguage(const Utils::Id &language, const QString &displayName)

View File

@@ -71,7 +71,7 @@ public:
static bool registerToolChain(ToolChain *tc); static bool registerToolChain(ToolChain *tc);
static void deregisterToolChain(ToolChain *tc); static void deregisterToolChain(ToolChain *tc);
static QSet<Utils::Id> allLanguages(); static QList<Utils::Id> allLanguages();
static bool registerLanguage(const Utils::Id &language, const QString &displayName); static bool registerLanguage(const Utils::Id &language, const QString &displayName);
static QString displayNameOfLanguageId(const Utils::Id &id); static QString displayNameOfLanguageId(const Utils::Id &id);
static bool isLanguageSupported(const Utils::Id &id); static bool isLanguageSupported(const Utils::Id &id);

View File

@@ -191,7 +191,7 @@ public:
m_addButton = new QPushButton(ToolChainOptionsPage::tr("Add"), this); m_addButton = new QPushButton(ToolChainOptionsPage::tr("Add"), this);
auto addMenu = new QMenu; auto addMenu = new QMenu;
foreach (ToolChainFactory *factory, m_factories) { foreach (ToolChainFactory *factory, m_factories) {
QList<Utils::Id> languages = Utils::toList(factory->supportedLanguages()); QList<Utils::Id> languages = factory->supportedLanguages();
if (languages.isEmpty()) if (languages.isEmpty())
continue; continue;