aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-01-09 17:32:51 +0100
committerhjk <hjk@qt.io>2020-01-10 12:46:38 +0000
commit1eaf44a270dbc8ed3fb6aab24c7d267510acfd84 (patch)
tree60136b971fe2705d7008007965a0e0ed086e4468 /src/plugins
parent675c414b0799f6bed356d77f9f114578b19bfea7 (diff)
ProjectExplorer: De-QObject-ify BuildConfigurationFactories
The QObject was not heavily used. Object name was for debugging only, translation context can be taken from the corresponding BuildConfiguration objects, the qobject_casts in the three big importers are replaced by dynamic_cast, which is good enough in that context. Take the opportunity to re-use translations from base BuildConfiguration for the common cases and sprinkle in some 'final'. Change-Id: I8e9727c98c6e943cb333556861c24e701c2bdf45 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp4
-rw-r--r--src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.h4
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp10
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h4
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp2
-rw-r--r--src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp2
-rw-r--r--src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.h4
-rw-r--r--src/plugins/genericprojectmanager/genericbuildconfiguration.cpp8
-rw-r--r--src/plugins/genericprojectmanager/genericbuildconfiguration.h4
-rw-r--r--src/plugins/nim/project/nimblebuildconfiguration.cpp4
-rw-r--r--src/plugins/nim/project/nimblebuildconfiguration.h6
-rw-r--r--src/plugins/nim/project/nimbuildconfiguration.cpp4
-rw-r--r--src/plugins/nim/project/nimbuildconfiguration.h6
-rw-r--r--src/plugins/projectexplorer/buildconfiguration.h10
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp16
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildconfiguration.h4
-rw-r--r--src/plugins/qbsprojectmanager/qbsprojectimporter.cpp2
-rw-r--r--src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp12
-rw-r--r--src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h2
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp2
20 files changed, 45 insertions, 65 deletions
diff --git a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp
index eb9b7ad930..257d547f36 100644
--- a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp
+++ b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp
@@ -78,13 +78,13 @@ AutotoolsBuildConfigurationFactory::AutotoolsBuildConfigurationFactory()
setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
BuildInfo info(this);
- info.typeName = tr("Build");
+ info.typeName = BuildConfiguration::tr("Build");
info.buildDirectory = forSetup
? FilePath::fromString(projectPath.toFileInfo().absolutePath()) : projectPath;
info.kitId = k->id();
if (forSetup) {
//: The name of the build configuration created by default for a autotools project.
- info.displayName = tr("Default");
+ info.displayName = BuildConfiguration::tr("Default");
}
return QList<BuildInfo>{info};
});
diff --git a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.h b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.h
index 0a9671e8b8..1e6fa46fba 100644
--- a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.h
+++ b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.h
@@ -40,10 +40,8 @@ class AutotoolsBuildConfiguration : public ProjectExplorer::BuildConfiguration
AutotoolsBuildConfiguration(ProjectExplorer::Target *target, Core::Id id);
};
-class AutotoolsBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
+class AutotoolsBuildConfigurationFactory final : public ProjectExplorer::BuildConfigurationFactory
{
- Q_OBJECT
-
public:
AutotoolsBuildConfigurationFactory();
};
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
index 4865485b1e..8f5565f908 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
@@ -467,27 +467,27 @@ BuildInfo CMakeBuildConfigurationFactory::createBuildInfo(const Kit *k,
switch (buildType) {
case BuildTypeNone:
info.typeName = "Build";
- info.displayName = tr("Build");
+ info.displayName = BuildConfiguration::tr("Build");
info.buildType = BuildConfiguration::Unknown;
break;
case BuildTypeDebug:
info.typeName = "Debug";
- info.displayName = tr("Debug");
+ info.displayName = BuildConfiguration::tr("Debug");
info.buildType = BuildConfiguration::Debug;
break;
case BuildTypeRelease:
info.typeName = "Release";
- info.displayName = tr("Release");
+ info.displayName = BuildConfiguration::tr("Release");
info.buildType = BuildConfiguration::Release;
break;
case BuildTypeMinSizeRel:
info.typeName = "MinSizeRel";
- info.displayName = tr("Minimum Size Release");
+ info.displayName = CMakeBuildConfiguration::tr("Minimum Size Release");
info.buildType = BuildConfiguration::Release;
break;
case BuildTypeRelWithDebInfo:
info.typeName = "RelWithDebInfo";
- info.displayName = tr("Release with Debug Information");
+ info.displayName = CMakeBuildConfiguration::tr("Release with Debug Information");
info.buildType = BuildConfiguration::Profile;
break;
default:
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h
index b02204af49..a495d135e4 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h
@@ -109,10 +109,8 @@ private:
class CMakeProjectImporter;
-class CMakeBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
+class CMakeBuildConfigurationFactory final : public ProjectExplorer::BuildConfigurationFactory
{
- Q_OBJECT
-
public:
CMakeBuildConfigurationFactory();
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp
index 00302f6d35..1cda2387f4 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp
@@ -338,7 +338,7 @@ Kit *CMakeProjectImporter::createKit(void *directoryData) const
const QList<BuildInfo> CMakeProjectImporter::buildInfoListForKit(const Kit *k, void *directoryData) const
{
auto data = static_cast<const DirectoryData *>(directoryData);
- auto factory = qobject_cast<CMakeBuildConfigurationFactory *>(
+ auto factory = dynamic_cast<CMakeBuildConfigurationFactory *>(
BuildConfigurationFactory::find(k, projectFilePath()));
if (!factory)
return {};
diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
index a1714ef8a6..a5629ce2a1 100644
--- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
+++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
@@ -540,7 +540,7 @@ CompilationDatabaseBuildConfigurationFactory::CompilationDatabaseBuildConfigurat
setSupportedProjectMimeTypeName(Constants::COMPILATIONDATABASEMIMETYPE);
setBuildGenerator([this](const Kit *kit, const FilePath &projectPath, bool) {
- const QString name = tr("Release");
+ const QString name = BuildConfiguration::tr("Release");
ProjectExplorer::BuildInfo info(this);
info.typeName = name;
info.displayName = name;
diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.h b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.h
index 778cb98b3b..f2aa9e6dbd 100644
--- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.h
+++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.h
@@ -94,10 +94,8 @@ public:
CompilationDatabaseEditorFactory();
};
-class CompilationDatabaseBuildConfigurationFactory
- : public ProjectExplorer::BuildConfigurationFactory
+class CompilationDatabaseBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
{
- Q_OBJECT
public:
CompilationDatabaseBuildConfigurationFactory();
};
diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp
index 3c04417c77..cab18f9082 100644
--- a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp
+++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp
@@ -65,9 +65,7 @@ GenericBuildConfiguration::GenericBuildConfiguration(Target *parent, Core::Id id
}
-/*!
- \class GenericBuildConfigurationFactory
-*/
+// GenericBuildConfigurationFactory
GenericBuildConfigurationFactory::GenericBuildConfigurationFactory()
{
@@ -79,13 +77,13 @@ GenericBuildConfigurationFactory::GenericBuildConfigurationFactory()
setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
BuildInfo info(this);
- info.typeName = tr("Build");
+ info.typeName = BuildConfiguration::tr("Build");
info.buildDirectory = forSetup ? Project::projectDirectory(projectPath) : projectPath;
info.kitId = k->id();
if (forSetup) {
//: The name of the build configuration created by default for a generic project.
- info.displayName = tr("Default");
+ info.displayName = BuildConfiguration::tr("Default");
}
return QList<BuildInfo>{info};
diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.h b/src/plugins/genericprojectmanager/genericbuildconfiguration.h
index fbb3970128..32200199bf 100644
--- a/src/plugins/genericprojectmanager/genericbuildconfiguration.h
+++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.h
@@ -40,10 +40,8 @@ class GenericBuildConfiguration : public ProjectExplorer::BuildConfiguration
void addToEnvironment(Utils::Environment &env) const final;
};
-class GenericBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
+class GenericBuildConfigurationFactory final : public ProjectExplorer::BuildConfigurationFactory
{
- Q_OBJECT
-
public:
GenericBuildConfigurationFactory();
};
diff --git a/src/plugins/nim/project/nimblebuildconfiguration.cpp b/src/plugins/nim/project/nimblebuildconfiguration.cpp
index 4035589f14..336545c201 100644
--- a/src/plugins/nim/project/nimblebuildconfiguration.cpp
+++ b/src/plugins/nim/project/nimblebuildconfiguration.cpp
@@ -99,8 +99,8 @@ NimbleBuildConfigurationFactory::NimbleBuildConfigurationFactory()
return info;
};
return QList<BuildInfo>{
- oneBuild(BuildConfiguration::Debug, tr("Debug")),
- oneBuild(BuildConfiguration::Release, tr("Release"))
+ oneBuild(BuildConfiguration::Debug, BuildConfiguration::tr("Debug")),
+ oneBuild(BuildConfiguration::Release, BuildConfiguration::tr("Release"))
};
});
}
diff --git a/src/plugins/nim/project/nimblebuildconfiguration.h b/src/plugins/nim/project/nimblebuildconfiguration.h
index 707e5cef21..2d3f0a93f3 100644
--- a/src/plugins/nim/project/nimblebuildconfiguration.h
+++ b/src/plugins/nim/project/nimblebuildconfiguration.h
@@ -48,12 +48,10 @@ private:
BuildType m_buildType;
};
-class NimbleBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
+class NimbleBuildConfigurationFactory final : public ProjectExplorer::BuildConfigurationFactory
{
- Q_OBJECT
-
public:
NimbleBuildConfigurationFactory();
};
-}
+} // Nim
diff --git a/src/plugins/nim/project/nimbuildconfiguration.cpp b/src/plugins/nim/project/nimbuildconfiguration.cpp
index 82133cb1a0..29eeb31d1e 100644
--- a/src/plugins/nim/project/nimbuildconfiguration.cpp
+++ b/src/plugins/nim/project/nimbuildconfiguration.cpp
@@ -148,8 +148,8 @@ NimBuildConfigurationFactory::NimBuildConfigurationFactory()
return info;
};
return QList<BuildInfo>{
- oneBuild(BuildConfiguration::Debug, tr("Debug")),
- oneBuild(BuildConfiguration::Release, tr("Release"))
+ oneBuild(BuildConfiguration::Debug, BuildConfiguration::tr("Debug")),
+ oneBuild(BuildConfiguration::Release, BuildConfiguration::tr("Release"))
};
});
}
diff --git a/src/plugins/nim/project/nimbuildconfiguration.h b/src/plugins/nim/project/nimbuildconfiguration.h
index 54fd0727ce..cd39e6e40d 100644
--- a/src/plugins/nim/project/nimbuildconfiguration.h
+++ b/src/plugins/nim/project/nimbuildconfiguration.h
@@ -52,12 +52,10 @@ private:
};
-class NimBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
+class NimBuildConfigurationFactory final : public ProjectExplorer::BuildConfigurationFactory
{
- Q_OBJECT
-
public:
NimBuildConfigurationFactory();
};
-}
+} // Nim
diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h
index 95b53b11f6..00de9bb71e 100644
--- a/src/plugins/projectexplorer/buildconfiguration.h
+++ b/src/plugins/projectexplorer/buildconfiguration.h
@@ -132,13 +132,14 @@ private:
Internal::BuildConfigurationPrivate *d = nullptr;
};
-class PROJECTEXPLORER_EXPORT BuildConfigurationFactory : public QObject
+class PROJECTEXPLORER_EXPORT BuildConfigurationFactory
{
- Q_OBJECT
-
protected:
BuildConfigurationFactory();
- ~BuildConfigurationFactory() override;
+ BuildConfigurationFactory(const BuildConfigurationFactory &) = delete;
+ BuildConfigurationFactory &operator=(const BuildConfigurationFactory &) = delete;
+
+ virtual ~BuildConfigurationFactory(); // Needed for dynamic_casts in importers.
public:
// List of build information that can be used to create a new build configuration via
@@ -178,7 +179,6 @@ protected:
template <class BuildConfig>
void registerBuildConfiguration(Core::Id buildConfigId)
{
- setObjectName(buildConfigId.toString() + "BuildConfigurationFactory");
m_creator = [buildConfigId](Target *t) { return new BuildConfig(t, buildConfigId); };
m_buildConfigId = buildConfigId;
}
diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
index 0fedc5e88d..02c306c15e 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
+++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
@@ -430,20 +430,18 @@ QbsBuildConfigurationFactory::QbsBuildConfigurationFactory()
BuildInfo info = createBuildInfo(k, BuildConfiguration::Debug);
//: The name of the debug build configuration created by default for a qbs project.
- info.displayName = tr("Debug");
+ info.displayName = BuildConfiguration::tr("Debug");
//: Non-ASCII characters in directory suffix may cause build issues.
- info.buildDirectory
- = defaultBuildDirectory(projectPath, k, tr("Debug", "Shadow build directory suffix"),
- info.buildType);
+ const QString dbg = QbsBuildConfiguration::tr("Debug", "Shadow build directory suffix");
+ info.buildDirectory = defaultBuildDirectory(projectPath, k, dbg, info.buildType);
result << info;
info = createBuildInfo(k, BuildConfiguration::Release);
//: The name of the release build configuration created by default for a qbs project.
- info.displayName = tr("Release");
+ info.displayName = BuildConfiguration::tr("Release");
//: Non-ASCII characters in directory suffix may cause build issues.
- info.buildDirectory
- = defaultBuildDirectory(projectPath, k, tr("Release", "Shadow build directory suffix"),
- info.buildType);
+ const QString rel = QbsBuildConfiguration::tr("Release", "Shadow build directory suffix");
+ info.buildDirectory = defaultBuildDirectory(projectPath, k, rel, info.buildType);
result << info;
} else {
@@ -462,7 +460,7 @@ BuildInfo QbsBuildConfigurationFactory::createBuildInfo(const Kit *k,
BuildInfo info(this);
info.kitId = k->id();
info.buildType = type;
- info.typeName = tr("Build");
+ info.typeName = BuildConfiguration::tr("Build");
QVariantMap config;
config.insert("configName", type == BuildConfiguration::Debug ? "Debug" : "Release");
info.extraInfo = config;
diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h
index cd303ab52e..c540acff73 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h
+++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h
@@ -95,10 +95,8 @@ private:
QbsBuildSystem *m_buildSystem = nullptr;
};
-class QbsBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
+class QbsBuildConfigurationFactory final : public ProjectExplorer::BuildConfigurationFactory
{
- Q_OBJECT
-
public:
QbsBuildConfigurationFactory();
diff --git a/src/plugins/qbsprojectmanager/qbsprojectimporter.cpp b/src/plugins/qbsprojectmanager/qbsprojectimporter.cpp
index 9e30a86cad..01acfec13e 100644
--- a/src/plugins/qbsprojectmanager/qbsprojectimporter.cpp
+++ b/src/plugins/qbsprojectmanager/qbsprojectimporter.cpp
@@ -221,7 +221,7 @@ Kit *QbsProjectImporter::createKit(void *directoryData) const
const QList<BuildInfo> QbsProjectImporter::buildInfoListForKit(const Kit *k, void *directoryData) const
{
qCDebug(qbsPmLog) << "creating build info for kit" << k->displayName();
- const auto factory = qobject_cast<QbsBuildConfigurationFactory *>(
+ const auto factory = dynamic_cast<QbsBuildConfigurationFactory *>(
BuildConfigurationFactory::find(k, projectFilePath()));
if (!factory) {
qCDebug(qbsPmLog) << "no build config factory found";
diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp
index fdf0baf2aa..ca2680deec 100644
--- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp
@@ -750,9 +750,9 @@ BuildInfo QmakeBuildConfigurationFactory::createBuildInfo(const Kit *k,
if (type == BuildConfiguration::Release) {
//: The name of the release build configuration created by default for a qmake project.
- info.displayName = tr("Release");
+ info.displayName = BuildConfiguration::tr("Release");
//: Non-ASCII characters in directory suffix may cause build issues.
- suffix = tr("Release", "Shadow build directory suffix");
+ suffix = QmakeBuildConfiguration::tr("Release", "Shadow build directory suffix");
if (settings.qtQuickCompiler == TriState::Default) {
if (version && version->isQtQuickCompilerSupported())
extraInfo.config.useQtQuickCompiler = TriState::Enabled;
@@ -760,14 +760,14 @@ BuildInfo QmakeBuildConfigurationFactory::createBuildInfo(const Kit *k,
} else {
if (type == BuildConfiguration::Debug) {
//: The name of the debug build configuration created by default for a qmake project.
- info.displayName = tr("Debug");
+ info.displayName = BuildConfiguration::tr("Debug");
//: Non-ASCII characters in directory suffix may cause build issues.
- suffix = tr("Debug", "Shadow build directory suffix");
+ suffix = QmakeBuildConfiguration::tr("Debug", "Shadow build directory suffix");
} else if (type == BuildConfiguration::Profile) {
//: The name of the profile build configuration created by default for a qmake project.
- info.displayName = tr("Profile");
+ info.displayName = BuildConfiguration::tr("Profile");
//: Non-ASCII characters in directory suffix may cause build issues.
- suffix = tr("Profile", "Shadow build directory suffix");
+ suffix = QmakeBuildConfiguration::tr("Profile", "Shadow build directory suffix");
if (settings.separateDebugInfo == TriState::Default)
extraInfo.config.separateDebugInfo = TriState::Enabled;
diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h
index 28cabf1693..c2e947127f 100644
--- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h
+++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h
@@ -153,8 +153,6 @@ private:
class QMAKEPROJECTMANAGER_EXPORT QmakeBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
{
- Q_OBJECT
-
public:
QmakeBuildConfigurationFactory();
diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp b/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp
index 2af28afa03..2a16f1e7fd 100644
--- a/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp
@@ -235,7 +235,7 @@ Kit *QmakeProjectImporter::createKit(void *directoryData) const
const QList<BuildInfo> QmakeProjectImporter::buildInfoListForKit(const Kit *k, void *directoryData) const
{
auto *data = static_cast<DirectoryData *>(directoryData);
- auto factory = qobject_cast<QmakeBuildConfigurationFactory *>(
+ auto factory = dynamic_cast<QmakeBuildConfigurationFactory *>(
BuildConfigurationFactory::find(k, projectFilePath()));
if (!factory)
return {};