From d56fa44964f7084f8e29075facb2c2d5cd3c7ae9 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 19 Jun 2019 17:28:20 +0200 Subject: [PATCH] ProjectExplorer: Use data member for ToolChain::typeDisplayName Change-Id: Ia78ea3f8628b759706c5b024d687d917b203ec4d Reviewed-by: Christian Kandeler --- src/plugins/android/androidtoolchain.cpp | 16 +++------ src/plugins/android/androidtoolchain.h | 1 - src/plugins/baremetal/iarewtoolchain.cpp | 5 +-- src/plugins/baremetal/iarewtoolchain.h | 2 -- src/plugins/baremetal/keiltoolchain.cpp | 5 +-- src/plugins/baremetal/keiltoolchain.h | 2 -- src/plugins/baremetal/sdcctoolchain.cpp | 5 +-- src/plugins/baremetal/sdcctoolchain.h | 2 -- src/plugins/nim/project/nimtoolchain.cpp | 14 +------- src/plugins/nim/project/nimtoolchain.h | 3 -- .../projectexplorer/customtoolchain.cpp | 5 +-- src/plugins/projectexplorer/customtoolchain.h | 1 - src/plugins/projectexplorer/gcctoolchain.cpp | 34 +++++-------------- src/plugins/projectexplorer/gcctoolchain.h | 8 +---- src/plugins/projectexplorer/msvctoolchain.cpp | 12 ++----- src/plugins/projectexplorer/msvctoolchain.h | 3 -- src/plugins/projectexplorer/toolchain.cpp | 11 ++++++ src/plugins/projectexplorer/toolchain.h | 6 +++- .../toolchainsettingsaccessor.cpp | 6 ++-- src/plugins/qnx/qnxtoolchain.cpp | 6 +--- src/plugins/qnx/qnxtoolchain.h | 2 -- 21 files changed, 40 insertions(+), 109 deletions(-) diff --git a/src/plugins/android/androidtoolchain.cpp b/src/plugins/android/androidtoolchain.cpp index 8beb1a31016..c0709d374dc 100644 --- a/src/plugins/android/androidtoolchain.cpp +++ b/src/plugins/android/androidtoolchain.cpp @@ -72,13 +72,14 @@ static ToolChain *findToolChain(Utils::FilePath &compilerPath, Core::Id lang, co return tc; } -AndroidToolChain::~AndroidToolChain() = default; - -QString AndroidToolChain::typeDisplayName() const +AndroidToolChain::AndroidToolChain() + : ClangToolChain(Constants::ANDROID_TOOLCHAIN_TYPEID) { - return AndroidToolChainFactory::tr("Android Clang"); + setTypeDisplayName(AndroidToolChainFactory::tr("Android Clang")); } +AndroidToolChain::~AndroidToolChain() = default; + bool AndroidToolChain::isValid() const { return ClangToolChain::isValid() @@ -211,12 +212,5 @@ ToolChainList AndroidToolChainFactory::autodetectToolChainsForNdk(const ToolChai return result; } -// for fromMap -AndroidToolChain::AndroidToolChain() - : ClangToolChain(Constants::ANDROID_TOOLCHAIN_TYPEID) -{ -} - - } // namespace Internal } // namespace Android diff --git a/src/plugins/android/androidtoolchain.h b/src/plugins/android/androidtoolchain.h index e46324d8511..7f620dd9805 100644 --- a/src/plugins/android/androidtoolchain.h +++ b/src/plugins/android/androidtoolchain.h @@ -37,7 +37,6 @@ class AndroidToolChain : public ProjectExplorer::ClangToolChain public: ~AndroidToolChain() override; - QString typeDisplayName() const override; bool isValid() const override; void addToEnvironment(Utils::Environment &env) const override; diff --git a/src/plugins/baremetal/iarewtoolchain.cpp b/src/plugins/baremetal/iarewtoolchain.cpp index 253fcc25080..f18bcdaa8b5 100644 --- a/src/plugins/baremetal/iarewtoolchain.cpp +++ b/src/plugins/baremetal/iarewtoolchain.cpp @@ -224,11 +224,8 @@ static QString buildDisplayName(Abi::Architecture arch, Core::Id language, IarToolChain::IarToolChain() : ToolChain(Constants::IAREW_TOOLCHAIN_TYPEID) -{ } - -QString IarToolChain::typeDisplayName() const { - return Internal::IarToolChainFactory::tr("IAREW"); + setTypeDisplayName(Internal::IarToolChainFactory::tr("IAREW")); } void IarToolChain::setTargetAbi(const Abi &abi) diff --git a/src/plugins/baremetal/iarewtoolchain.h b/src/plugins/baremetal/iarewtoolchain.h index 019c9e71853..035c4aa70e6 100644 --- a/src/plugins/baremetal/iarewtoolchain.h +++ b/src/plugins/baremetal/iarewtoolchain.h @@ -52,8 +52,6 @@ class IarToolChain final : public ProjectExplorer::ToolChain Q_DECLARE_TR_FUNCTIONS(IarToolChain) public: - QString typeDisplayName() const final; - void setTargetAbi(const ProjectExplorer::Abi &abi); ProjectExplorer::Abi targetAbi() const final; diff --git a/src/plugins/baremetal/keiltoolchain.cpp b/src/plugins/baremetal/keiltoolchain.cpp index 28863e0e66a..3c4dea51796 100644 --- a/src/plugins/baremetal/keiltoolchain.cpp +++ b/src/plugins/baremetal/keiltoolchain.cpp @@ -238,11 +238,8 @@ static QString buildDisplayName(Abi::Architecture arch, Core::Id language, KeilToolchain::KeilToolchain() : ToolChain(Constants::KEIL_TOOLCHAIN_TYPEID) -{ } - -QString KeilToolchain::typeDisplayName() const { - return Internal::KeilToolchainFactory::tr("KEIL"); + setTypeDisplayName(Internal::KeilToolchainFactory::tr("KEIL")); } void KeilToolchain::setTargetAbi(const Abi &abi) diff --git a/src/plugins/baremetal/keiltoolchain.h b/src/plugins/baremetal/keiltoolchain.h index 5ccf9e05ff0..3ebfa8a5f1d 100644 --- a/src/plugins/baremetal/keiltoolchain.h +++ b/src/plugins/baremetal/keiltoolchain.h @@ -52,8 +52,6 @@ class KeilToolchain final : public ProjectExplorer::ToolChain Q_DECLARE_TR_FUNCTIONS(KeilToolchain) public: - QString typeDisplayName() const final; - void setTargetAbi(const ProjectExplorer::Abi &abi); ProjectExplorer::Abi targetAbi() const final; diff --git a/src/plugins/baremetal/sdcctoolchain.cpp b/src/plugins/baremetal/sdcctoolchain.cpp index 277af6de129..9595bdeedeb 100644 --- a/src/plugins/baremetal/sdcctoolchain.cpp +++ b/src/plugins/baremetal/sdcctoolchain.cpp @@ -212,11 +212,8 @@ static Utils::FilePath compilerPathFromEnvironment(const QString &compilerName) SdccToolChain::SdccToolChain() : ToolChain(Constants::SDCC_TOOLCHAIN_TYPEID) -{ } - -QString SdccToolChain::typeDisplayName() const { - return Internal::SdccToolChainFactory::tr("SDCC"); + setTypeDisplayName(Internal::SdccToolChainFactory::tr("SDCC")); } void SdccToolChain::setTargetAbi(const Abi &abi) diff --git a/src/plugins/baremetal/sdcctoolchain.h b/src/plugins/baremetal/sdcctoolchain.h index 15ed5995244..5bd4d1c4280 100644 --- a/src/plugins/baremetal/sdcctoolchain.h +++ b/src/plugins/baremetal/sdcctoolchain.h @@ -52,8 +52,6 @@ class SdccToolChain final : public ProjectExplorer::ToolChain Q_DECLARE_TR_FUNCTIONS(SdccToolChain) public: - QString typeDisplayName() const final; - void setTargetAbi(const ProjectExplorer::Abi &abi); ProjectExplorer::Abi targetAbi() const final; diff --git a/src/plugins/nim/project/nimtoolchain.cpp b/src/plugins/nim/project/nimtoolchain.cpp index 3e7fcbef726..b2470e84b23 100644 --- a/src/plugins/nim/project/nimtoolchain.cpp +++ b/src/plugins/nim/project/nimtoolchain.cpp @@ -49,19 +49,7 @@ NimToolChain::NimToolChain(Core::Id typeId) , m_version(std::make_tuple(-1,-1,-1)) { setLanguage(Constants::C_NIMLANGUAGE_ID); -} - -NimToolChain::NimToolChain(const NimToolChain &other) - : ToolChain(other.typeId()) - , m_compilerCommand(other.m_compilerCommand) - , m_version(other.m_version) -{ - setLanguage(Constants::C_NIMLANGUAGE_ID); -} - -QString NimToolChain::typeDisplayName() const -{ - return NimToolChainFactory::tr("Nim"); + setTypeDisplayName(NimToolChainFactory::tr("Nim")); } Abi NimToolChain::targetAbi() const diff --git a/src/plugins/nim/project/nimtoolchain.h b/src/plugins/nim/project/nimtoolchain.h index b35e073ccde..5bfb6bd2dd3 100644 --- a/src/plugins/nim/project/nimtoolchain.h +++ b/src/plugins/nim/project/nimtoolchain.h @@ -36,7 +36,6 @@ public: NimToolChain(); explicit NimToolChain(Core::Id typeId); - QString typeDisplayName() const override; ProjectExplorer::Abi targetAbi() const override; bool isValid() const override; @@ -62,8 +61,6 @@ public: static bool parseVersion(const Utils::FilePath &path, std::tuple &version); private: - NimToolChain(const NimToolChain &other); - Utils::FilePath m_compilerCommand; std::tuple m_version; }; diff --git a/src/plugins/projectexplorer/customtoolchain.cpp b/src/plugins/projectexplorer/customtoolchain.cpp index e1175963ea6..7806e4c8bf4 100644 --- a/src/plugins/projectexplorer/customtoolchain.cpp +++ b/src/plugins/projectexplorer/customtoolchain.cpp @@ -84,11 +84,8 @@ static const char warningExampleKeyC[] = "ProjectExplorer.CustomToolChain.Warnin CustomToolChain::CustomToolChain() : ToolChain(Constants::CUSTOM_TOOLCHAIN_TYPEID), m_outputParserId(GccParser::id()) -{ } - -QString CustomToolChain::typeDisplayName() const { - return Internal::CustomToolChainFactory::tr("Custom"); + setTypeDisplayName(Internal::CustomToolChainFactory::tr("Custom")); } Abi CustomToolChain::targetAbi() const diff --git a/src/plugins/projectexplorer/customtoolchain.h b/src/plugins/projectexplorer/customtoolchain.h index 415cf89abdd..04078482f1d 100644 --- a/src/plugins/projectexplorer/customtoolchain.h +++ b/src/plugins/projectexplorer/customtoolchain.h @@ -65,7 +65,6 @@ public: QString displayName; ///< A translateable name to show in the user interface }; - QString typeDisplayName() const override; Abi targetAbi() const override; void setTargetAbi(const Abi &); diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp index f469687eb13..69b1c8050d3 100644 --- a/src/plugins/projectexplorer/gcctoolchain.cpp +++ b/src/plugins/projectexplorer/gcctoolchain.cpp @@ -232,13 +232,11 @@ static QString gccVersion(const FilePath &path, const QStringList &env) // GccToolChain // -------------------------------------------------------------------------- -GccToolChain::GccToolChain() : - GccToolChain(Constants::GCC_TOOLCHAIN_TYPEID) -{ } - GccToolChain::GccToolChain(Core::Id typeId) : ToolChain(typeId) -{ } +{ + setTypeDisplayName(GccToolChainFactory::tr("GCC")); +} void GccToolChain::setCompilerCommand(const FilePath &path) { @@ -289,11 +287,6 @@ LanguageExtensions GccToolChain::defaultLanguageExtensions() const return LanguageExtension::Gnu; } -QString GccToolChain::typeDisplayName() const -{ - return GccToolChainFactory::tr("GCC"); -} - Abi GccToolChain::targetAbi() const { return m_targetAbi; @@ -867,7 +860,7 @@ GccToolChainFactory::GccToolChainFactory() setDisplayName(tr("GCC")); setSupportedToolChainType(Constants::GCC_TOOLCHAIN_TYPEID); setSupportedLanguages({Constants::C_LANGUAGE_ID, Constants::CXX_LANGUAGE_ID}); - setToolchainConstructor([] { return new GccToolChain; }); + setToolchainConstructor([] { return new GccToolChain(Constants::GCC_TOOLCHAIN_TYPEID); }); setUserCreatable(true); } @@ -1265,14 +1258,14 @@ void ClangToolChain::syncAutodetectedWithParentToolchains() } ClangToolChain::ClangToolChain() : - GccToolChain(Constants::CLANG_TOOLCHAIN_TYPEID) + ClangToolChain(Constants::CLANG_TOOLCHAIN_TYPEID) { - syncAutodetectedWithParentToolchains(); } ClangToolChain::ClangToolChain(Core::Id typeId) : GccToolChain(typeId) { + setTypeDisplayName(ClangToolChainFactory::tr("Clang")); syncAutodetectedWithParentToolchains(); } @@ -1282,11 +1275,6 @@ ClangToolChain::~ClangToolChain() QObject::disconnect(m_mingwToolchainAddedConnection); } -QString ClangToolChain::typeDisplayName() const -{ - return ClangToolChainFactory::tr("Clang"); -} - FilePath ClangToolChain::makeCommand(const Environment &environment) const { const QStringList makes @@ -1594,11 +1582,8 @@ void ClangToolChainConfigWidget::makeReadOnlyImpl() MingwToolChain::MingwToolChain() : GccToolChain(Constants::MINGW_TOOLCHAIN_TYPEID) -{ } - -QString MingwToolChain::typeDisplayName() const { - return MingwToolChainFactory::tr("MinGW"); + setTypeDisplayName(MingwToolChainFactory::tr("MinGW")); } QStringList MingwToolChain::suggestedMkspecList() const @@ -1673,11 +1658,8 @@ QList MingwToolChainFactory::autoDetect(const FilePath &compilerPat LinuxIccToolChain::LinuxIccToolChain() : GccToolChain(Constants::LINUXICC_TOOLCHAIN_TYPEID) -{ } - -QString LinuxIccToolChain::typeDisplayName() const { - return LinuxIccToolChainFactory::tr("Linux ICC"); + setTypeDisplayName(LinuxIccToolChainFactory::tr("Linux ICC")); } /** diff --git a/src/plugins/projectexplorer/gcctoolchain.h b/src/plugins/projectexplorer/gcctoolchain.h index 240ae342477..b2651af4872 100644 --- a/src/plugins/projectexplorer/gcctoolchain.h +++ b/src/plugins/projectexplorer/gcctoolchain.h @@ -68,7 +68,7 @@ class PROJECTEXPLORER_EXPORT GccToolChain : public ToolChain { public: GccToolChain(Core::Id typeId); - QString typeDisplayName() const override; + Abi targetAbi() const override; QString originalTargetTriple() const override; QString version() const; @@ -174,8 +174,6 @@ protected: }; private: - explicit GccToolChain(); - void updateSupportedAbis() const; static QStringList gccPrepareArguments(const QStringList &flags, const QString &sysRoot, @@ -214,7 +212,6 @@ public: explicit ClangToolChain(Core::Id typeId); ~ClangToolChain() override; - QString typeDisplayName() const override; Utils::FilePath makeCommand(const Utils::Environment &environment) const override; Utils::LanguageExtensions languageExtensions(const QStringList &cxxflags) const override; @@ -256,7 +253,6 @@ private: class PROJECTEXPLORER_EXPORT MingwToolChain : public GccToolChain { public: - QString typeDisplayName() const override; Utils::FilePath makeCommand(const Utils::Environment &environment) const override; QStringList suggestedMkspecList() const override; @@ -275,8 +271,6 @@ private: class PROJECTEXPLORER_EXPORT LinuxIccToolChain : public GccToolChain { public: - QString typeDisplayName() const override; - Utils::LanguageExtensions languageExtensions(const QStringList &cxxflags) const override; IOutputParser *outputParser() const override; diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp index a7de4bc1aaa..15f345dc5bf 100644 --- a/src/plugins/projectexplorer/msvctoolchain.cpp +++ b/src/plugins/projectexplorer/msvctoolchain.cpp @@ -847,6 +847,7 @@ MsvcToolChain::MsvcToolChain(Core::Id typeId) : ToolChain(typeId) { setDisplayName("Microsoft Visual C++ Compiler"); + setTypeDisplayName(MsvcToolChainFactory::tr("MSVC")); } void MsvcToolChain::inferWarningsForLevel(int warningLevel, WarningFlags &flags) @@ -902,11 +903,6 @@ QString MsvcToolChain::originalTargetTriple() const : QLatin1String("i686-pc-windows-msvc"); } -QString MsvcToolChain::typeDisplayName() const -{ - return MsvcToolChainFactory::tr("MSVC"); -} - QStringList MsvcToolChain::suggestedMkspecList() const { // "win32-msvc" is the common MSVC mkspec introduced in Qt 5.8.1 @@ -1651,6 +1647,7 @@ ClangClToolChain::ClangClToolChain() : MsvcToolChain(Constants::CLANG_CL_TOOLCHAIN_TYPEID) { setDisplayName("clang-cl"); + setTypeDisplayName(QCoreApplication::translate("ProjectExplorer::ClangToolChainFactory", "Clang")); } bool ClangClToolChain::isValid() const @@ -1671,11 +1668,6 @@ Utils::FilePath ClangClToolChain::compilerCommand() const return Utils::FilePath::fromString(m_clangPath); } -QString ClangClToolChain::typeDisplayName() const -{ - return QCoreApplication::translate("ProjectExplorer::ClangToolChainFactory", "Clang"); -} - QStringList ClangClToolChain::suggestedMkspecList() const { const QString mkspec = "win32-clang-" + Abi::toString(targetAbi().osFlavor()); diff --git a/src/plugins/projectexplorer/msvctoolchain.h b/src/plugins/projectexplorer/msvctoolchain.h index 3bc92241e46..89737807e2e 100644 --- a/src/plugins/projectexplorer/msvctoolchain.h +++ b/src/plugins/projectexplorer/msvctoolchain.h @@ -70,8 +70,6 @@ public: QStringList suggestedMkspecList() const override; - QString typeDisplayName() const override; - QVariantMap toMap() const override; bool fromMap(const QVariantMap &data) override; @@ -170,7 +168,6 @@ public: ClangClToolChain(); bool isValid() const override; - QString typeDisplayName() const override; QStringList suggestedMkspecList() const override; void addToEnvironment(Utils::Environment &env) const override; Utils::FilePath compilerCommand() const override; diff --git a/src/plugins/projectexplorer/toolchain.cpp b/src/plugins/projectexplorer/toolchain.cpp index 76041a38d8e..5dae6cfac3f 100644 --- a/src/plugins/projectexplorer/toolchain.cpp +++ b/src/plugins/projectexplorer/toolchain.cpp @@ -70,6 +70,7 @@ public: QByteArray m_id; QSet m_supportedLanguages; mutable QString m_displayName; + QString m_typeDisplayName; Core::Id m_typeId; Core::Id m_language; Detection m_detection = ToolChain::UninitializedDetection; @@ -257,6 +258,16 @@ void ToolChain::setDetection(ToolChain::Detection de) } } +QString ToolChain::typeDisplayName() const +{ + return d->m_typeDisplayName; +} + +void ToolChain::setTypeDisplayName(const QString &typeName) +{ + d->m_typeDisplayName = typeName; +} + /*! Used by the tool chain manager to load user-generated tool chains. diff --git a/src/plugins/projectexplorer/toolchain.h b/src/plugins/projectexplorer/toolchain.h index cbac188278e..fa14b4f127b 100644 --- a/src/plugins/projectexplorer/toolchain.h +++ b/src/plugins/projectexplorer/toolchain.h @@ -101,8 +101,10 @@ public: virtual QStringList suggestedMkspecList() const; Core::Id typeId() const; - virtual QString typeDisplayName() const = 0; + QString typeDisplayName() const; + virtual Abi targetAbi() const = 0; + virtual ProjectExplorer::Abis supportedAbis() const; virtual QString originalTargetTriple() const { return QString(); } virtual QStringList extraCodeModelFlags() const { return QStringList(); } @@ -163,6 +165,8 @@ public: protected: explicit ToolChain(Core::Id typeId); + void setTypeDisplayName(const QString &typeName); + const MacrosCache &predefinedMacrosCache() const; const HeaderPathsCache &headerPathsCache() const; diff --git a/src/plugins/projectexplorer/toolchainsettingsaccessor.cpp b/src/plugins/projectexplorer/toolchainsettingsaccessor.cpp index d2c347dd372..1d8ea687b3f 100644 --- a/src/plugins/projectexplorer/toolchainsettingsaccessor.cpp +++ b/src/plugins/projectexplorer/toolchainsettingsaccessor.cpp @@ -299,21 +299,19 @@ const char TestToolChainType[] = "TestToolChainType"; class TTC : public ToolChain { public: - TTC() : ToolChain(TestToolChainType) {} - - TTC(const QByteArray &t, bool v = true) : + TTC(const QByteArray &t = {}, bool v = true) : ToolChain(TestToolChainType), token(t), m_valid(v) { m_toolChains.append(this); setLanguage(Constants::CXX_LANGUAGE_ID); + setTypeDisplayName("Test Tool Chain"); } static QList toolChains(); static bool hasToolChains() { return !m_toolChains.isEmpty(); } - QString typeDisplayName() const override { return QString("Test Tool Chain"); } Abi targetAbi() const override { return Abi::hostAbi(); } bool isValid() const override { return m_valid; } MacroInspectionRunner createMacroInspectionRunner() const override { return MacroInspectionRunner(); } diff --git a/src/plugins/qnx/qnxtoolchain.cpp b/src/plugins/qnx/qnxtoolchain.cpp index 82399b9b277..6ad191fbeaa 100644 --- a/src/plugins/qnx/qnxtoolchain.cpp +++ b/src/plugins/qnx/qnxtoolchain.cpp @@ -103,11 +103,7 @@ QnxToolChain::QnxToolChain() : GccToolChain(Constants::QNX_TOOLCHAIN_ID) { setOptionsReinterpreter(&reinterpretOptions); -} - -QString QnxToolChain::typeDisplayName() const -{ - return QnxToolChainFactory::tr("QCC"); + setTypeDisplayName(QnxToolChainFactory::tr("QCC")); } std::unique_ptr QnxToolChain::createConfigurationWidget() diff --git a/src/plugins/qnx/qnxtoolchain.h b/src/plugins/qnx/qnxtoolchain.h index b514ac15f33..71e10a2879d 100644 --- a/src/plugins/qnx/qnxtoolchain.h +++ b/src/plugins/qnx/qnxtoolchain.h @@ -36,8 +36,6 @@ class QnxToolChain : public ProjectExplorer::GccToolChain public: QnxToolChain(); - QString typeDisplayName() const override; - std::unique_ptr createConfigurationWidget() override; void addToEnvironment(Utils::Environment &env) const override;