summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/winrt/winrt_dependencies.pri1
-rw-r--r--src/plugins/winrt/winrtrunconfiguration.cpp78
-rw-r--r--src/plugins/winrt/winrtrunconfiguration.h17
-rw-r--r--src/plugins/winrt/winrtrunnerhelper.cpp8
4 files changed, 20 insertions, 84 deletions
diff --git a/src/plugins/winrt/winrt_dependencies.pri b/src/plugins/winrt/winrt_dependencies.pri
index de1f7ec435..8ba3491bc2 100644
--- a/src/plugins/winrt/winrt_dependencies.pri
+++ b/src/plugins/winrt/winrt_dependencies.pri
@@ -3,5 +3,4 @@ QTC_PLUGIN_DEPENDS += \
coreplugin \
debugger \
projectexplorer \
- qmakeprojectmanager \
qtsupport
diff --git a/src/plugins/winrt/winrtrunconfiguration.cpp b/src/plugins/winrt/winrtrunconfiguration.cpp
index 72777f1023..ae193fb503 100644
--- a/src/plugins/winrt/winrtrunconfiguration.cpp
+++ b/src/plugins/winrt/winrtrunconfiguration.cpp
@@ -31,13 +31,9 @@
#include <projectexplorer/target.h>
#include <projectexplorer/kitinformation.h>
#include <projectexplorer/runconfigurationaspects.h>
-#include <projectexplorer/runnables.h>
#include <utils/detailswidget.h>
-#include <qmakeprojectmanager/qmakeproject.h>
-#include <qmakeprojectmanager/qmakeprojectmanagerconstants.h>
-
#include <QFormLayout>
using namespace ProjectExplorer;
@@ -46,17 +42,15 @@ using namespace Utils;
namespace WinRt {
namespace Internal {
-class UninstallAfterStopAspect : public BaseBoolAspect
+// UninstallAfterStopAspect
+
+UninstallAfterStopAspect::UninstallAfterStopAspect(RunConfiguration *rc)
+ : BaseBoolAspect(rc, "WinRtRunConfigurationUninstallAfterStopId")
{
- Q_OBJECT
-public:
- UninstallAfterStopAspect(RunConfiguration *rc)
- : BaseBoolAspect(rc, "WinRtRunConfigurationUninstallAfterStopId")
- {
- setLabel(WinRtRunConfiguration::tr("Uninstall package after application stops"));
- }
-};
+ setLabel(WinRtRunConfiguration::tr("Uninstall package after application stops"));
+}
+// WinRtRunConfiguration
WinRtRunConfiguration::WinRtRunConfiguration(Target *target, Core::Id id)
: RunConfiguration(target, id)
@@ -82,67 +76,11 @@ QWidget *WinRtRunConfiguration::createConfigurationWidget()
return detailsWidget;
}
-bool WinRtRunConfiguration::uninstallAfterStop() const
-{
- return extraAspect<UninstallAfterStopAspect>()->value();
-}
-
-QString WinRtRunConfiguration::proFilePath() const
-{
- return buildKey();
-}
-
-QString WinRtRunConfiguration::arguments() const
-{
- return extraAspect<ProjectExplorer::ArgumentsAspect>()->arguments();
-}
-
-ProjectExplorer::Runnable WinRtRunConfiguration::runnable() const
-{
- ProjectExplorer::StandardRunnable r;
- r.executable = executable();
- r.commandLineArguments = arguments();
- return r;
-}
-
-QString WinRtRunConfiguration::executable() const
-{
- QmakeProjectManager::QmakeProject *project
- = static_cast<QmakeProjectManager::QmakeProject *>(target()->project());
- if (!project)
- return QString();
-
- QmakeProjectManager::QmakeProFile *rootProFile = project->rootProFile();
- if (!rootProFile)
- return QString();
-
- const QmakeProjectManager::QmakeProFile *pro
- = rootProFile->findProFile(Utils::FileName::fromString(proFilePath()));
- if (!pro)
- return QString();
-
- QmakeProjectManager::TargetInformation ti = pro->targetInformation();
- if (!ti.valid)
- return QString();
-
- QString destDir = ti.destDir.toString();
- if (destDir.isEmpty())
- destDir = ti.buildDir.toString();
- else if (QDir::isRelativePath(destDir))
- destDir = QDir::cleanPath(ti.buildDir.toString() + '/' + destDir);
-
- QString executable = QDir::cleanPath(destDir + '/' + ti.target);
- executable = Utils::HostOsInfo::withExecutableSuffix(executable);
- return executable;
-}
-
-
// WinRtRunConfigurationFactory
WinRtRunConfigurationFactory::WinRtRunConfigurationFactory()
{
registerRunConfiguration<WinRtRunConfiguration>("WinRt.WinRtRunConfiguration:");
- addSupportedProjectType(QmakeProjectManager::Constants::QMAKEPROJECT_ID);
addSupportedTargetDeviceType(Constants::WINRT_DEVICE_TYPE_LOCAL);
addSupportedTargetDeviceType(Constants::WINRT_DEVICE_TYPE_PHONE);
addSupportedTargetDeviceType(Constants::WINRT_DEVICE_TYPE_EMULATOR);
@@ -150,5 +88,3 @@ WinRtRunConfigurationFactory::WinRtRunConfigurationFactory()
} // namespace Internal
} // namespace WinRt
-
-#include "winrtrunconfiguration.moc"
diff --git a/src/plugins/winrt/winrtrunconfiguration.h b/src/plugins/winrt/winrtrunconfiguration.h
index ef28b949cb..35997fecdf 100644
--- a/src/plugins/winrt/winrtrunconfiguration.h
+++ b/src/plugins/winrt/winrtrunconfiguration.h
@@ -30,6 +30,14 @@
namespace WinRt {
namespace Internal {
+class UninstallAfterStopAspect : public ProjectExplorer::BaseBoolAspect
+{
+ Q_OBJECT
+
+public:
+ UninstallAfterStopAspect(ProjectExplorer::RunConfiguration *rc);
+};
+
class WinRtRunConfiguration : public ProjectExplorer::RunConfiguration
{
Q_OBJECT
@@ -38,15 +46,6 @@ public:
WinRtRunConfiguration(ProjectExplorer::Target *target, Core::Id id);
QWidget *createConfigurationWidget() override;
-
- QString proFilePath() const;
- QString arguments() const;
- bool uninstallAfterStop() const;
-
- ProjectExplorer::Runnable runnable() const override;
-
-private:
- QString executable() const;
};
class WinRtRunConfigurationFactory : public ProjectExplorer::RunConfigurationFactory
diff --git a/src/plugins/winrt/winrtrunnerhelper.cpp b/src/plugins/winrt/winrtrunnerhelper.cpp
index 0c6abf6be2..d01d2d3693 100644
--- a/src/plugins/winrt/winrtrunnerhelper.cpp
+++ b/src/plugins/winrt/winrtrunnerhelper.cpp
@@ -50,7 +50,7 @@ WinRtRunnerHelper::WinRtRunnerHelper(ProjectExplorer::RunWorker *runWorker, QStr
: QObject(runWorker)
, m_worker(runWorker)
{
- auto runConfiguration = qobject_cast<WinRtRunConfiguration *>(runWorker->runControl()->runConfiguration());
+ auto runConfiguration = runWorker->runControl()->runConfiguration();
ProjectExplorer::Target *target = runConfiguration->target();
m_device = runWorker->device().dynamicCast<const WinRtDevice>();
@@ -81,8 +81,10 @@ WinRtRunnerHelper::WinRtRunnerHelper(ProjectExplorer::RunWorker *runWorker, QStr
if (!m_executableFilePath.endsWith(QLatin1String(".exe")))
m_executableFilePath += QStringLiteral(".exe");
- m_arguments = runConfiguration->arguments();
- m_uninstallAfterStop = runConfiguration->uninstallAfterStop();
+ if (auto aspect = runConfiguration->extraAspect<ArgumentsAspect>())
+ m_arguments = aspect->arguments();
+ if (auto aspect = runConfiguration->extraAspect<UninstallAfterStopAspect>())
+ m_uninstallAfterStop = aspect->value();
if (ProjectExplorer::BuildConfiguration *bc = target->activeBuildConfiguration())
m_environment = bc->environment();