WinRT: Use ArgumentsAspect in run configuration

Follow recent changes in other run configurations. Less code for
more features (Macro expander...).

Change-Id: I289dfd16b217c9d91a766b7f5eafe012e6e91dba
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This commit is contained in:
hjk
2016-01-06 17:38:16 +01:00
parent de0b070621
commit 54779131c5
8 changed files with 32 additions and 93 deletions

View File

@@ -38,5 +38,4 @@ SOURCES += \
DEFINES += WINRT_LIBRARY DEFINES += WINRT_LIBRARY
FORMS += \ FORMS += \
winrtpackagedeploymentstepwidget.ui \ winrtpackagedeploymentstepwidget.ui
winrtrunconfigurationwidget.ui

View File

@@ -37,7 +37,6 @@ QtcPlugin {
"winrtrunconfiguration.h", "winrtrunconfiguration.h",
"winrtrunconfigurationwidget.cpp", "winrtrunconfigurationwidget.cpp",
"winrtrunconfigurationwidget.h", "winrtrunconfigurationwidget.h",
"winrtrunconfigurationwidget.ui",
"winrtruncontrol.cpp", "winrtruncontrol.cpp",
"winrtruncontrol.h", "winrtruncontrol.h",
"winrtrunfactories.cpp", "winrtrunfactories.cpp",

View File

@@ -113,8 +113,6 @@ RunControl *WinRtDebugSupport::createDebugRunControl(WinRtRunConfiguration *runC
quint16 qmlDebugPort = 0; quint16 qmlDebugPort = 0;
if (!getFreePort(qmlDebugPort, errorMessage)) if (!getFreePort(qmlDebugPort, errorMessage))
return 0; return 0;
runConfig->setArguments(runConfig->arguments() + QLatin1Char(' ')
+ QmlDebug::qmlDebugTcpArguments(QmlDebug::QmlDebuggerServices, qmlDebugPort));
params.qmlServerAddress = QHostAddress::LocalHost; params.qmlServerAddress = QHostAddress::LocalHost;
params.qmlServerPort = qmlDebugPort; params.qmlServerPort = qmlDebugPort;
} }

View File

@@ -33,13 +33,14 @@
#include "winrtconstants.h" #include "winrtconstants.h"
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <projectexplorer/target.h> #include <projectexplorer/target.h>
#include <projectexplorer/kitinformation.h> #include <projectexplorer/kitinformation.h>
#include <projectexplorer/runconfigurationaspects.h>
namespace WinRt { namespace WinRt {
namespace Internal { namespace Internal {
static const char argumentsIdC[] = "WinRtRunConfigurationArgumentsId";
static const char uninstallAfterStopIdC[] = "WinRtRunConfigurationUninstallAfterStopId"; static const char uninstallAfterStopIdC[] = "WinRtRunConfigurationUninstallAfterStopId";
static QString pathFromId(Core::Id id) static QString pathFromId(Core::Id id)
@@ -53,6 +54,8 @@ WinRtRunConfiguration::WinRtRunConfiguration(ProjectExplorer::Target *parent, Co
, m_uninstallAfterStop(false) , m_uninstallAfterStop(false)
{ {
setDisplayName(tr("Run App Package")); setDisplayName(tr("Run App Package"));
addExtraAspect(new ProjectExplorer::ArgumentsAspect(this,
QLatin1String("WinRtRunConfigurationArgumentsId")));
} }
QWidget *WinRtRunConfiguration::createConfigurationWidget() QWidget *WinRtRunConfiguration::createConfigurationWidget()
@@ -63,7 +66,6 @@ QWidget *WinRtRunConfiguration::createConfigurationWidget()
QVariantMap WinRtRunConfiguration::toMap() const QVariantMap WinRtRunConfiguration::toMap() const
{ {
QVariantMap map = RunConfiguration::toMap(); QVariantMap map = RunConfiguration::toMap();
map.insert(QLatin1String(argumentsIdC), m_arguments);
map.insert(QLatin1String(uninstallAfterStopIdC), m_uninstallAfterStop); map.insert(QLatin1String(uninstallAfterStopIdC), m_uninstallAfterStop);
return map; return map;
} }
@@ -72,17 +74,13 @@ bool WinRtRunConfiguration::fromMap(const QVariantMap &map)
{ {
if (!RunConfiguration::fromMap(map)) if (!RunConfiguration::fromMap(map))
return false; return false;
setArguments(map.value(QLatin1String(argumentsIdC)).toString());
setUninstallAfterStop(map.value(QLatin1String(uninstallAfterStopIdC)).toBool()); setUninstallAfterStop(map.value(QLatin1String(uninstallAfterStopIdC)).toBool());
return true; return true;
} }
void WinRtRunConfiguration::setArguments(const QString &args) QString WinRtRunConfiguration::arguments() const
{ {
if (m_arguments == args) return extraAspect<ProjectExplorer::ArgumentsAspect>()->arguments();
return;
m_arguments = args;
emit argumentsChanged(m_arguments);
} }
void WinRtRunConfiguration::setUninstallAfterStop(bool b) void WinRtRunConfiguration::setUninstallAfterStop(bool b)

View File

@@ -49,7 +49,7 @@ public:
bool fromMap(const QVariantMap &map) override; bool fromMap(const QVariantMap &map) override;
const QString &proFilePath() const { return m_proFilePath; } const QString &proFilePath() const { return m_proFilePath; }
const QString &arguments() const { return m_arguments; } QString arguments() const;
bool uninstallAfterStop() const { return m_uninstallAfterStop; } bool uninstallAfterStop() const { return m_uninstallAfterStop; }
signals: signals:
@@ -57,12 +57,10 @@ signals:
void uninstallAfterStopChanged(bool); void uninstallAfterStopChanged(bool);
public slots: public slots:
void setArguments(const QString &args);
void setUninstallAfterStop(bool b); void setUninstallAfterStop(bool b);
private: private:
QString m_proFilePath; QString m_proFilePath;
QString m_arguments;
bool m_uninstallAfterStop; bool m_uninstallAfterStop;
}; };

View File

@@ -30,41 +30,38 @@
#include "winrtrunconfigurationwidget.h" #include "winrtrunconfigurationwidget.h"
#include "winrtrunconfiguration.h" #include "winrtrunconfiguration.h"
#include "ui_winrtrunconfigurationwidget.h"
#include <projectexplorer/runconfigurationaspects.h>
#include <QCheckBox>
#include <QFormLayout>
namespace WinRt { namespace WinRt {
namespace Internal { namespace Internal {
WinRtRunConfigurationWidget::WinRtRunConfigurationWidget(WinRtRunConfiguration *rc, QWidget *parent) WinRtRunConfigurationWidget::WinRtRunConfigurationWidget(WinRtRunConfiguration *rc)
: Utils::DetailsWidget(parent) : m_runConfiguration(rc)
, m_runConfiguration(rc)
, m_ui(new Ui::WinRtRunConfigurationWidget)
{ {
setState(Expanded); setState(Expanded);
setSummaryText(tr("Launch App")); setSummaryText(tr("Launch App"));
setWidget(new QWidget(this));
m_ui->setupUi(widget());
widget()->setContentsMargins(0, 0, 0, 0);
m_ui->arguments->setText(rc->arguments());
connect(m_ui->arguments, SIGNAL(textChanged(QString)),
rc, SLOT(setArguments(QString)));
connect(m_ui->uninstallAfterStop, SIGNAL(stateChanged(int)),
SLOT(onUninstallCheckBoxChanged()));
}
WinRtRunConfigurationWidget::~WinRtRunConfigurationWidget() auto widget = new QWidget(this);
{ widget->setContentsMargins(0, 0, 0, 0);
delete m_ui; setWidget(widget);
}
void WinRtRunConfigurationWidget::setArguments(const QString &args) auto verticalLayout = new QFormLayout(widget);
{
m_ui->arguments->setText(args);
}
void WinRtRunConfigurationWidget::onUninstallCheckBoxChanged() rc->extraAspect<ProjectExplorer::ArgumentsAspect>()
{ ->addToMainConfigurationWidget(widget, verticalLayout);
m_runConfiguration->setUninstallAfterStop(m_ui->uninstallAfterStop->isChecked());
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 Internal

View File

@@ -36,30 +36,19 @@
namespace WinRt { namespace WinRt {
namespace Internal { namespace Internal {
namespace Ui {
class WinRtRunConfigurationWidget;
}
class WinRtRunConfiguration; class WinRtRunConfiguration;
class WinRtRunConfigurationWidget : public Utils::DetailsWidget class WinRtRunConfigurationWidget : public Utils::DetailsWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit WinRtRunConfigurationWidget(WinRtRunConfiguration *rc, QWidget *parent = 0); explicit WinRtRunConfigurationWidget(WinRtRunConfiguration *rc);
~WinRtRunConfigurationWidget();
bool isValid() const; bool isValid() const;
public slots:
void setArguments(const QString &args);
private slots:
void onUninstallCheckBoxChanged();
private: private:
WinRtRunConfiguration *m_runConfiguration; WinRtRunConfiguration *m_runConfiguration;
Ui::WinRtRunConfigurationWidget *m_ui;
}; };
} // namespace Internal } // namespace Internal

View File

@@ -1,39 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>WinRt::Internal::WinRtRunConfigurationWidget</class>
<widget class="QWidget" name="WinRt::Internal::WinRtRunConfigurationWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>248</width>
<height>81</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="argumentsLabel">
<property name="text">
<string>Arguments:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="arguments"/>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="uninstallAfterStop">
<property name="text">
<string>Uninstall package after stop</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>