diff options
| -rw-r--r-- | src/plugins/winrt/winrt_dependencies.pri | 1 | ||||
| -rw-r--r-- | src/plugins/winrt/winrtrunconfiguration.cpp | 78 | ||||
| -rw-r--r-- | src/plugins/winrt/winrtrunconfiguration.h | 17 | ||||
| -rw-r--r-- | src/plugins/winrt/winrtrunnerhelper.cpp | 8 |
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(); |
