Nim: Move RunConfigurations to .cpp, drop Q_OBJECT

Also remove NimbleRunConfigurationFactory::availableCreators
reimplementation that was the same as the base.

Change-Id: Ied86c08e77a5bb70d8a16cdeddebd99c4ea5120c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2020-02-11 11:09:04 +01:00
parent 7e363e4168
commit 9caf355e11
4 changed files with 78 additions and 84 deletions

View File

@@ -37,29 +37,38 @@
#include <QStandardPaths> #include <QStandardPaths>
using namespace Nim;
using namespace ProjectExplorer; using namespace ProjectExplorer;
NimbleRunConfiguration::NimbleRunConfiguration(ProjectExplorer::Target *target, Core::Id id) namespace Nim {
: RunConfiguration(target, id)
// NimbleRunConfiguration
class NimbleRunConfiguration : public RunConfiguration
{ {
addAspect<LocalEnvironmentAspect>(target); Q_DECLARE_TR_FUNCTIONS(Nim::NimbleRunConfiguration)
addAspect<ExecutableAspect>();
addAspect<ArgumentsAspect>();
addAspect<WorkingDirectoryAspect>();
addAspect<TerminalAspect>();
setUpdater([this] { public:
BuildTargetInfo bti = buildTargetInfo(); NimbleRunConfiguration(Target *target, Core::Id id)
setDisplayName(bti.displayName); : RunConfiguration(target, id)
setDefaultDisplayName(bti.displayName); {
aspect<ExecutableAspect>()->setExecutable(bti.targetFilePath); addAspect<LocalEnvironmentAspect>(target);
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(bti.workingDirectory); addAspect<ExecutableAspect>();
}); addAspect<ArgumentsAspect>();
addAspect<WorkingDirectoryAspect>();
addAspect<TerminalAspect>();
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update); setUpdater([this] {
update(); BuildTargetInfo bti = buildTargetInfo();
} setDisplayName(bti.displayName);
setDefaultDisplayName(bti.displayName);
aspect<ExecutableAspect>()->setExecutable(bti.targetFilePath);
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(bti.workingDirectory);
});
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
update();
}
};
NimbleRunConfigurationFactory::NimbleRunConfigurationFactory() NimbleRunConfigurationFactory::NimbleRunConfigurationFactory()
: RunConfigurationFactory() : RunConfigurationFactory()
@@ -69,22 +78,26 @@ NimbleRunConfigurationFactory::NimbleRunConfigurationFactory()
addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE); addSupportedTargetDeviceType(ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE);
} }
QList<RunConfigurationCreationInfo> NimbleRunConfigurationFactory::availableCreators(Target *parent) const
{
return RunConfigurationFactory::availableCreators(parent);
}
NimbleTestConfiguration::NimbleTestConfiguration(Target *target, Core::Id id) // NimbleTestConfiguration
: RunConfiguration(target, id)
{
addAspect<ExecutableAspect>()->setExecutable(Utils::FilePath::fromString(QStandardPaths::findExecutable("nimble")));
addAspect<ArgumentsAspect>()->setArguments("test");
addAspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(project()->projectDirectory());
addAspect<TerminalAspect>();
setDisplayName(tr("Nimble Test")); class NimbleTestConfiguration : public RunConfiguration
setDefaultDisplayName(tr("Nimble Test")); {
} Q_DECLARE_TR_FUNCTIONS(Nim::NimbleTestConfiguration)
public:
NimbleTestConfiguration(ProjectExplorer::Target *target, Core::Id id)
: RunConfiguration(target, id)
{
addAspect<ExecutableAspect>()->setExecutable(Utils::FilePath::fromString(QStandardPaths::findExecutable("nimble")));
addAspect<ArgumentsAspect>()->setArguments("test");
addAspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(project()->projectDirectory());
addAspect<TerminalAspect>();
setDisplayName(tr("Nimble Test"));
setDefaultDisplayName(tr("Nimble Test"));
}
};
NimbleTestConfigurationFactory::NimbleTestConfigurationFactory() NimbleTestConfigurationFactory::NimbleTestConfigurationFactory()
: FixedRunConfigurationFactory(QString()) : FixedRunConfigurationFactory(QString())
@@ -92,3 +105,5 @@ NimbleTestConfigurationFactory::NimbleTestConfigurationFactory()
registerRunConfiguration<NimbleTestConfiguration>("Nim.NimbleTestConfiguration"); registerRunConfiguration<NimbleTestConfiguration>("Nim.NimbleTestConfiguration");
addSupportedProjectType(Constants::C_NIMBLEPROJECT_ID); addSupportedProjectType(Constants::C_NIMBLEPROJECT_ID);
} }
} // Nim

View File

@@ -29,35 +29,16 @@
namespace Nim { namespace Nim {
class NimbleRunConfiguration : public ProjectExplorer::RunConfiguration class NimbleRunConfigurationFactory final : public ProjectExplorer::RunConfigurationFactory
{
Q_OBJECT
public:
NimbleRunConfiguration(ProjectExplorer::Target *target, Core::Id id);
};
class NimbleRunConfigurationFactory : public ProjectExplorer::RunConfigurationFactory
{ {
public: public:
NimbleRunConfigurationFactory(); NimbleRunConfigurationFactory();
protected:
QList<ProjectExplorer::RunConfigurationCreationInfo> availableCreators(ProjectExplorer::Target *parent) const override;
}; };
class NimbleTestConfiguration : public ProjectExplorer::RunConfiguration class NimbleTestConfigurationFactory final : public ProjectExplorer::FixedRunConfigurationFactory
{
Q_OBJECT
public:
NimbleTestConfiguration(ProjectExplorer::Target *target, Core::Id id);
};
class NimbleTestConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory
{ {
public: public:
NimbleTestConfigurationFactory(); NimbleTestConfigurationFactory();
}; };
} } // Nim

View File

@@ -41,31 +41,37 @@ using namespace Utils;
namespace Nim { namespace Nim {
NimRunConfiguration::NimRunConfiguration(Target *target, Core::Id id) class NimRunConfiguration final : public RunConfiguration
: RunConfiguration(target, id)
{ {
addAspect<LocalEnvironmentAspect>(target); Q_DECLARE_TR_FUNCTIONS(Nim::NimRunConfiguration)
addAspect<ExecutableAspect>();
addAspect<ArgumentsAspect>();
addAspect<WorkingDirectoryAspect>();
addAspect<TerminalAspect>();
setDisplayName(tr("Current Build Target")); public:
setDefaultDisplayName(tr("Current Build Target")); NimRunConfiguration(Target *target, Core::Id id)
: RunConfiguration(target, id)
{
addAspect<LocalEnvironmentAspect>(target);
addAspect<ExecutableAspect>();
addAspect<ArgumentsAspect>();
addAspect<WorkingDirectoryAspect>();
addAspect<TerminalAspect>();
setUpdater([this] { setDisplayName(tr("Current Build Target"));
auto buildConfiguration = qobject_cast<NimBuildConfiguration *>(activeBuildConfiguration()); setDefaultDisplayName(tr("Current Build Target"));
QTC_ASSERT(buildConfiguration, return);
const QFileInfo outFileInfo = buildConfiguration->outFilePath().toFileInfo();
aspect<ExecutableAspect>()->setExecutable(FilePath::fromString(outFileInfo.absoluteFilePath()));
const QString workingDirectory = outFileInfo.absoluteDir().absolutePath();
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(FilePath::fromString(workingDirectory));
});
// Connect target signals setUpdater([this] {
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update); auto buildConfiguration = qobject_cast<NimBuildConfiguration *>(activeBuildConfiguration());
update(); QTC_ASSERT(buildConfiguration, return);
} const QFileInfo outFileInfo = buildConfiguration->outFilePath().toFileInfo();
aspect<ExecutableAspect>()->setExecutable(FilePath::fromString(outFileInfo.absoluteFilePath()));
const QString workingDirectory = outFileInfo.absoluteDir().absolutePath();
aspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(FilePath::fromString(workingDirectory));
});
// Connect target signals
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
update();
}
};
// NimRunConfigurationFactory // NimRunConfigurationFactory

View File

@@ -29,15 +29,7 @@
namespace Nim { namespace Nim {
class NimRunConfiguration : public ProjectExplorer::RunConfiguration class NimRunConfigurationFactory final : public ProjectExplorer::FixedRunConfigurationFactory
{
Q_OBJECT
public:
NimRunConfiguration(ProjectExplorer::Target *target, Core::Id id);
};
class NimRunConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory
{ {
public: public:
NimRunConfigurationFactory(); NimRunConfigurationFactory();