From 8a70f66c9c046cd23893d16c5012258e9510f13f Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 21 Jan 2022 10:44:53 +0100 Subject: [PATCH] ProjectExplorer: Move GCC config widgets out of header file They are only used in one source file. Change-Id: I9a267be83156fb50c98da63fab165ef6123e7e59 Reviewed-by: hjk Reviewed-by: Qt CI Bot --- src/plugins/projectexplorer/gcctoolchain.cpp | 56 ++++++++++++++++ .../projectexplorer/gcctoolchainfactories.h | 67 ------------------- src/plugins/qnx/qnxtoolchain.cpp | 1 + src/plugins/qnx/qnxtoolchain.h | 4 ++ 4 files changed, 61 insertions(+), 67 deletions(-) diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp index 3869ec2fe11..5e5ea06f21c 100644 --- a/src/plugins/projectexplorer/gcctoolchain.cpp +++ b/src/plugins/projectexplorer/gcctoolchain.cpp @@ -24,11 +24,14 @@ ****************************************************************************/ #include "gcctoolchain.h" + +#include "abiwidget.h" #include "clangparser.h" #include "gcctoolchainfactories.h" #include "gccparser.h" #include "linuxiccparser.h" #include "projectmacro.h" +#include "toolchainconfigwidget.h" #include "toolchainmanager.h" #include @@ -63,6 +66,59 @@ static Q_LOGGING_CATEGORY(gccLog, "qtc.projectexplorer.toolchain.gcc", QtWarning using namespace Utils; namespace ProjectExplorer { +namespace Internal { + +class TargetTripleWidget; +class GccToolChainConfigWidget : public ToolChainConfigWidget +{ + Q_OBJECT + +public: + explicit GccToolChainConfigWidget(GccToolChain *tc); + +protected: + void handleCompilerCommandChange(); + void handlePlatformCodeGenFlagsChange(); + void handlePlatformLinkerFlagsChange(); + + void applyImpl() override; + void discardImpl() override { setFromToolchain(); } + bool isDirtyImpl() const override; + void makeReadOnlyImpl() override; + + void setFromToolchain(); + + AbiWidget *m_abiWidget; + +private: + Utils::PathChooser *m_compilerCommand; + QLineEdit *m_platformCodeGenFlagsLineEdit; + QLineEdit *m_platformLinkerFlagsLineEdit; + TargetTripleWidget * const m_targetTripleWidget; + + bool m_isReadOnly = false; + ProjectExplorer::Macros m_macros; +}; + +class ClangToolChainConfigWidget : public GccToolChainConfigWidget +{ + Q_OBJECT +public: + explicit ClangToolChainConfigWidget(ClangToolChain *tc); + +private: + void applyImpl() override; + void discardImpl() override { setFromClangToolchain(); } + bool isDirtyImpl() const override; + void makeReadOnlyImpl() override; + + void setFromClangToolchain(); + void updateParentToolChainComboBox(); + QList m_parentToolChainConnections; + QComboBox *m_parentToolchainCombo = nullptr; +}; + +} // namespace Internal using namespace Internal; diff --git a/src/plugins/projectexplorer/gcctoolchainfactories.h b/src/plugins/projectexplorer/gcctoolchainfactories.h index efc75677c47..0b2e4a0e631 100644 --- a/src/plugins/projectexplorer/gcctoolchainfactories.h +++ b/src/plugins/projectexplorer/gcctoolchainfactories.h @@ -26,21 +26,13 @@ #pragma once #include "toolchain.h" -#include "toolchainconfigwidget.h" #include "abi.h" -#include "abiwidget.h" #include #include #include -QT_BEGIN_NAMESPACE -class QComboBox; -QT_END_NAMESPACE - -namespace Utils { class PathChooser; } - namespace ProjectExplorer { class ClangToolChain; class GccToolChain; @@ -67,65 +59,6 @@ protected: const ToolchainChecker &checker = {}) const; }; -// -------------------------------------------------------------------------- -// GccToolChainConfigWidget -// -------------------------------------------------------------------------- - -class TargetTripleWidget; - -class GccToolChainConfigWidget : public ToolChainConfigWidget -{ - Q_OBJECT - -public: - explicit GccToolChainConfigWidget(GccToolChain *tc); - -protected: - void handleCompilerCommandChange(); - void handlePlatformCodeGenFlagsChange(); - void handlePlatformLinkerFlagsChange(); - - void applyImpl() override; - void discardImpl() override { setFromToolchain(); } - bool isDirtyImpl() const override; - void makeReadOnlyImpl() override; - - void setFromToolchain(); - - AbiWidget *m_abiWidget; - -private: - Utils::PathChooser *m_compilerCommand; - QLineEdit *m_platformCodeGenFlagsLineEdit; - QLineEdit *m_platformLinkerFlagsLineEdit; - TargetTripleWidget * const m_targetTripleWidget; - - bool m_isReadOnly = false; - ProjectExplorer::Macros m_macros; -}; - -// -------------------------------------------------------------------------- -// ClangToolChainConfigWidget -// -------------------------------------------------------------------------- - -class ClangToolChainConfigWidget : public GccToolChainConfigWidget -{ - Q_OBJECT -public: - explicit ClangToolChainConfigWidget(ClangToolChain *tc); - -private: - void applyImpl() override; - void discardImpl() override { setFromClangToolchain(); } - bool isDirtyImpl() const override; - void makeReadOnlyImpl() override; - - void setFromClangToolchain(); - void updateParentToolChainComboBox(); - QList m_parentToolChainConnections; - QComboBox *m_parentToolchainCombo = nullptr; -}; - // -------------------------------------------------------------------------- // ClangToolChainFactory // -------------------------------------------------------------------------- diff --git a/src/plugins/qnx/qnxtoolchain.cpp b/src/plugins/qnx/qnxtoolchain.cpp index d8d908a0181..1503552a8ee 100644 --- a/src/plugins/qnx/qnxtoolchain.cpp +++ b/src/plugins/qnx/qnxtoolchain.cpp @@ -29,6 +29,7 @@ #include "qnxconstants.h" #include "qnxutils.h" +#include #include #include #include diff --git a/src/plugins/qnx/qnxtoolchain.h b/src/plugins/qnx/qnxtoolchain.h index 137a9dc779e..53142d95022 100644 --- a/src/plugins/qnx/qnxtoolchain.h +++ b/src/plugins/qnx/qnxtoolchain.h @@ -27,6 +27,10 @@ #include #include +#include + +namespace ProjectExplorer { class AbiWidget; } +namespace Utils { class PathChooser; } namespace Qnx { namespace Internal {