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

View File

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

View File

@@ -41,31 +41,37 @@ using namespace Utils;
namespace Nim {
NimRunConfiguration::NimRunConfiguration(Target *target, Core::Id id)
: RunConfiguration(target, id)
class NimRunConfiguration final : public RunConfiguration
{
addAspect<LocalEnvironmentAspect>(target);
addAspect<ExecutableAspect>();
addAspect<ArgumentsAspect>();
addAspect<WorkingDirectoryAspect>();
addAspect<TerminalAspect>();
Q_DECLARE_TR_FUNCTIONS(Nim::NimRunConfiguration)
setDisplayName(tr("Current Build Target"));
setDefaultDisplayName(tr("Current Build Target"));
public:
NimRunConfiguration(Target *target, Core::Id id)
: RunConfiguration(target, id)
{
addAspect<LocalEnvironmentAspect>(target);
addAspect<ExecutableAspect>();
addAspect<ArgumentsAspect>();
addAspect<WorkingDirectoryAspect>();
addAspect<TerminalAspect>();
setUpdater([this] {
auto buildConfiguration = qobject_cast<NimBuildConfiguration *>(activeBuildConfiguration());
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));
});
setDisplayName(tr("Current Build Target"));
setDefaultDisplayName(tr("Current Build Target"));
// Connect target signals
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
update();
}
setUpdater([this] {
auto buildConfiguration = qobject_cast<NimBuildConfiguration *>(activeBuildConfiguration());
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

View File

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