From 962e980baf4a19079268f8883c0a151f2a96b4a2 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 16 Apr 2018 11:14:25 +0200 Subject: [PATCH] WinRT: Introduce a custom UninstallAfterStopAspect ... to handle the remaning bool settings in the RunConfiguration. Change-Id: Icf5c0994860793c69ebb182fb7a0e15b7245c4ad Reviewed-by: David Schulz --- src/plugins/winrt/winrt.pro | 2 - src/plugins/winrt/winrt.qbs | 2 - src/plugins/winrt/winrtrunconfiguration.cpp | 61 +++++++++++------- src/plugins/winrt/winrtrunconfiguration.h | 13 +--- .../winrt/winrtrunconfigurationwidget.cpp | 63 ------------------- .../winrt/winrtrunconfigurationwidget.h | 49 --------------- 6 files changed, 39 insertions(+), 151 deletions(-) delete mode 100644 src/plugins/winrt/winrtrunconfigurationwidget.cpp delete mode 100644 src/plugins/winrt/winrtrunconfigurationwidget.h diff --git a/src/plugins/winrt/winrt.pro b/src/plugins/winrt/winrt.pro index e787cc1c4da..11f533f62a2 100644 --- a/src/plugins/winrt/winrt.pro +++ b/src/plugins/winrt/winrt.pro @@ -13,7 +13,6 @@ HEADERS += \ winrtqtversion.h \ winrtqtversionfactory.h \ winrtrunconfiguration.h \ - winrtrunconfigurationwidget.h \ winrtruncontrol.h \ winrtrunfactories.h \ winrtrunnerhelper.h @@ -30,7 +29,6 @@ SOURCES += \ winrtqtversion.cpp \ winrtqtversionfactory.cpp \ winrtrunconfiguration.cpp \ - winrtrunconfigurationwidget.cpp \ winrtruncontrol.cpp \ winrtrunfactories.cpp \ winrtrunnerhelper.cpp diff --git a/src/plugins/winrt/winrt.qbs b/src/plugins/winrt/winrt.qbs index 96ccca36903..fa78af5c808 100644 --- a/src/plugins/winrt/winrt.qbs +++ b/src/plugins/winrt/winrt.qbs @@ -36,8 +36,6 @@ QtcPlugin { "winrtqtversionfactory.h", "winrtrunconfiguration.cpp", "winrtrunconfiguration.h", - "winrtrunconfigurationwidget.cpp", - "winrtrunconfigurationwidget.h", "winrtruncontrol.cpp", "winrtruncontrol.h", "winrtrunfactories.cpp", diff --git a/src/plugins/winrt/winrtrunconfiguration.cpp b/src/plugins/winrt/winrtrunconfiguration.cpp index 49ad4ff5feb..fd9d0b2bb5f 100644 --- a/src/plugins/winrt/winrtrunconfiguration.cpp +++ b/src/plugins/winrt/winrtrunconfiguration.cpp @@ -24,7 +24,6 @@ ****************************************************************************/ #include "winrtrunconfiguration.h" -#include "winrtrunconfigurationwidget.h" #include "winrtconstants.h" #include @@ -34,39 +33,57 @@ #include #include +#include + #include +#include + +using namespace ProjectExplorer; +using namespace Utils; + namespace WinRt { namespace Internal { -static const char uninstallAfterStopIdC[] = "WinRtRunConfigurationUninstallAfterStopId"; +class UninstallAfterStopAspect : public BaseBoolAspect +{ + Q_OBJECT +public: + UninstallAfterStopAspect(RunConfiguration *rc) + : BaseBoolAspect(rc, "WinRtRunConfigurationUninstallAfterStopId") + { + setLabel(WinRtRunConfiguration::tr("Uninstall package after application stops")); + } +}; -WinRtRunConfiguration::WinRtRunConfiguration(ProjectExplorer::Target *target) + +WinRtRunConfiguration::WinRtRunConfiguration(Target *target) : RunConfiguration(target, Constants::WINRT_RC_PREFIX) { setDisplayName(tr("Run App Package")); - addExtraAspect(new ProjectExplorer::ArgumentsAspect(this, "WinRtRunConfigurationArgumentsId")); + addExtraAspect(new ArgumentsAspect(this, "WinRtRunConfigurationArgumentsId")); + addExtraAspect(new UninstallAfterStopAspect(this)); } QWidget *WinRtRunConfiguration::createConfigurationWidget() { - return new WinRtRunConfigurationWidget(this); + auto widget = new QWidget; + auto fl = new QFormLayout(widget); + + extraAspect()->addToMainConfigurationWidget(widget, fl); + extraAspect()->addToMainConfigurationWidget(widget, fl); + + auto wrapped = wrapWidget(widget); + auto detailsWidget = qobject_cast(wrapped); + QTC_ASSERT(detailsWidget, return wrapped); + detailsWidget->setState(DetailsWidget::Expanded); + detailsWidget->setSummaryText(tr("Launch App")); + return detailsWidget; } -QVariantMap WinRtRunConfiguration::toMap() const +bool WinRtRunConfiguration::uninstallAfterStop() const { - QVariantMap map = RunConfiguration::toMap(); - map.insert(QLatin1String(uninstallAfterStopIdC), m_uninstallAfterStop); - return map; -} - -bool WinRtRunConfiguration::fromMap(const QVariantMap &map) -{ - if (!RunConfiguration::fromMap(map)) - return false; - - setUninstallAfterStop(map.value(QLatin1String(uninstallAfterStopIdC)).toBool()); - return true; + return extraAspect()->value(); } QString WinRtRunConfiguration::proFilePath() const @@ -79,12 +96,6 @@ QString WinRtRunConfiguration::arguments() const return extraAspect()->arguments(); } -void WinRtRunConfiguration::setUninstallAfterStop(bool b) -{ - m_uninstallAfterStop = b; - emit uninstallAfterStopChanged(m_uninstallAfterStop); -} - ProjectExplorer::Runnable WinRtRunConfiguration::runnable() const { ProjectExplorer::StandardRunnable r; @@ -126,3 +137,5 @@ QString WinRtRunConfiguration::executable() const } // namespace Internal } // namespace WinRt + +#include "winrtrunconfiguration.moc" diff --git a/src/plugins/winrt/winrtrunconfiguration.h b/src/plugins/winrt/winrtrunconfiguration.h index d368670cb2d..e79a3d71fa4 100644 --- a/src/plugins/winrt/winrtrunconfiguration.h +++ b/src/plugins/winrt/winrtrunconfiguration.h @@ -25,7 +25,7 @@ #pragma once -#include +#include namespace WinRt { namespace Internal { @@ -38,23 +38,14 @@ public: explicit WinRtRunConfiguration(ProjectExplorer::Target *target); QWidget *createConfigurationWidget() override; - QVariantMap toMap() const override; - bool fromMap(const QVariantMap &map) override; QString proFilePath() const; QString arguments() const; - bool uninstallAfterStop() const { return m_uninstallAfterStop; } - void setUninstallAfterStop(bool b); + bool uninstallAfterStop() const; ProjectExplorer::Runnable runnable() const override; -signals: - void argumentsChanged(QString); - void uninstallAfterStopChanged(bool); - private: - bool m_uninstallAfterStop = false; - QString executable() const; }; diff --git a/src/plugins/winrt/winrtrunconfigurationwidget.cpp b/src/plugins/winrt/winrtrunconfigurationwidget.cpp deleted file mode 100644 index fba027fc872..00000000000 --- a/src/plugins/winrt/winrtrunconfigurationwidget.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#include "winrtrunconfigurationwidget.h" -#include "winrtrunconfiguration.h" - -#include - -#include -#include - -namespace WinRt { -namespace Internal { - -WinRtRunConfigurationWidget::WinRtRunConfigurationWidget(WinRtRunConfiguration *rc) - : m_runConfiguration(rc) -{ - setState(Expanded); - setSummaryText(tr("Launch App")); - - auto widget = new QWidget(this); - widget->setContentsMargins(0, 0, 0, 0); - setWidget(widget); - - auto verticalLayout = new QFormLayout(widget); - - rc->extraAspect() - ->addToMainConfigurationWidget(widget, verticalLayout); - - auto uninstallAfterStop = new QCheckBox(widget); - verticalLayout->addWidget(uninstallAfterStop); - - uninstallAfterStop->setText(tr("Uninstall package after application stops")); - - connect(uninstallAfterStop, &QCheckBox::stateChanged, this, [this] (int checked) { - m_runConfiguration->setUninstallAfterStop(checked == Qt::Checked); - }); -} - -} // namespace Internal -} // namespace WinRt diff --git a/src/plugins/winrt/winrtrunconfigurationwidget.h b/src/plugins/winrt/winrtrunconfigurationwidget.h deleted file mode 100644 index 9f68d0bb5b9..00000000000 --- a/src/plugins/winrt/winrtrunconfigurationwidget.h +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#pragma once - -#include - -namespace WinRt { -namespace Internal { - -class WinRtRunConfiguration; - -class WinRtRunConfigurationWidget : public Utils::DetailsWidget -{ - Q_OBJECT - -public: - explicit WinRtRunConfigurationWidget(WinRtRunConfiguration *rc); - - bool isValid() const; - -private: - WinRtRunConfiguration *m_runConfiguration; -}; - -} // namespace Internal -} // namespace WinRt