aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/ios/iosrunconfiguration.cpp
diff options
context:
space:
mode:
authorhjk <[email protected]>2016-01-05 17:13:35 +0100
committerhjk <[email protected]>2016-01-19 14:04:23 +0000
commit0983c7cc1ab75414daf517c2ff96d53715f85a8e (patch)
treeb3075f4abe1f8976bd84be097f0ad9d7f19c8921 /src/plugins/ios/iosrunconfiguration.cpp
parent8d6549fa74bcc5e05f43497aef73e814a268139e (diff)
Ios: use ArgumentsAspect in IosRunConfiguration
Change-Id: I9f2f0eacf5fca155912eb4417d2ac89afcf64901 Reviewed-by: Erik Verbruggen <[email protected]>
Diffstat (limited to 'src/plugins/ios/iosrunconfiguration.cpp')
-rw-r--r--src/plugins/ios/iosrunconfiguration.cpp64
1 files changed, 5 insertions, 59 deletions
diff --git a/src/plugins/ios/iosrunconfiguration.cpp b/src/plugins/ios/iosrunconfiguration.cpp
index 80920bba576..fbea22901bb 100644
--- a/src/plugins/ios/iosrunconfiguration.cpp
+++ b/src/plugins/ios/iosrunconfiguration.cpp
@@ -39,6 +39,7 @@
#include <projectexplorer/devicesupport/devicemanager.h>
#include <projectexplorer/buildstep.h>
#include <projectexplorer/buildsteplist.h>
+#include <projectexplorer/runconfigurationaspects.h>
#include <qmakeprojectmanager/qmakebuildconfiguration.h>
#include <qmakeprojectmanager/qmakeproject.h>
#include <qmakeprojectmanager/qmakenodes.h>
@@ -68,15 +69,12 @@ using namespace Utils;
namespace Ios {
namespace Internal {
-static const QLatin1String runConfigurationKey("Ios.run_arguments");
static const QLatin1String deviceTypeKey("Ios.device_type");
class IosRunConfigurationWidget : public RunConfigWidget
{
public:
IosRunConfigurationWidget(IosRunConfiguration *runConfiguration);
- QString argListToString(const QStringList &args) const;
- QStringList stringToArgList(const QString &args) const;
QString displayName() const override;
private:
@@ -88,7 +86,6 @@ private:
QStandardItemModel m_deviceTypeModel;
QLabel *m_deviceTypeLabel;
QLineEdit *m_executableLineEdit;
- QLineEdit *m_argumentsLineEdit;
QComboBox *m_deviceTypeComboBox;
};
@@ -96,13 +93,13 @@ IosRunConfiguration::IosRunConfiguration(Target *parent, Core::Id id, const File
: RunConfiguration(parent, id)
, m_profilePath(path)
{
+ addExtraAspect(new ArgumentsAspect(this, QLatin1String("Ios.run_arguments")));
init();
}
IosRunConfiguration::IosRunConfiguration(Target *parent, IosRunConfiguration *source)
: RunConfiguration(parent, source)
, m_profilePath(source->m_profilePath)
- , m_arguments(source->m_arguments)
{
init();
}
@@ -163,9 +160,9 @@ OutputFormatter *IosRunConfiguration::createOutputFormatter() const
return new QtSupport::QtOutputFormatter(target()->project());
}
-QStringList IosRunConfiguration::commandLineArguments()
+QString IosRunConfiguration::commandLineArguments() const
{
- return m_arguments;
+ return extraAspect<ArgumentsAspect>()->arguments();
}
void IosRunConfiguration::updateDisplayNames()
@@ -274,7 +271,6 @@ FileName IosRunConfiguration::localExecutable() const
bool IosRunConfiguration::fromMap(const QVariantMap &map)
{
- m_arguments = map.value(runConfigurationKey).toStringList();
bool deviceTypeIsInt;
map.value(deviceTypeKey).toInt(&deviceTypeIsInt);
if (deviceTypeIsInt || !m_deviceType.fromMap(map.value(deviceTypeKey).toMap())) {
@@ -289,7 +285,6 @@ bool IosRunConfiguration::fromMap(const QVariantMap &map)
QVariantMap IosRunConfiguration::toMap() const
{
QVariantMap res = RunConfiguration::toMap();
- res[runConfigurationKey] = m_arguments;
res[deviceTypeKey] = deviceType().toMap();
return res;
}
@@ -398,8 +393,6 @@ IosRunConfigurationWidget::IosRunConfigurationWidget(IosRunConfiguration *runCon
sizePolicy.setVerticalStretch(0);
setSizePolicy(sizePolicy);
- m_argumentsLineEdit = new QLineEdit(this);
-
m_executableLineEdit = new QLineEdit(this);
m_executableLineEdit->setReadOnly(true);
@@ -409,7 +402,7 @@ IosRunConfigurationWidget::IosRunConfigurationWidget(IosRunConfiguration *runCon
m_deviceTypeLabel = new QLabel(IosRunConfiguration::tr("Device type:"), this);
auto layout = new QFormLayout(this);
- layout->addRow(IosRunConfiguration::tr("Arguments:"), m_argumentsLineEdit);
+ runConfiguration->extraAspect<ArgumentsAspect>()->addToMainConfigurationWidget(this, layout);
layout->addRow(IosRunConfiguration::tr("Executable:"), m_executableLineEdit);
layout->addRow(m_deviceTypeLabel, m_deviceTypeComboBox);
@@ -417,59 +410,15 @@ IosRunConfigurationWidget::IosRunConfigurationWidget(IosRunConfiguration *runCon
connect(m_deviceTypeComboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
this, &IosRunConfigurationWidget::setDeviceTypeIndex);
- connect(m_argumentsLineEdit, &QLineEdit::editingFinished,
- this, &IosRunConfigurationWidget::argumentsLineEditTextEdited);
connect(runConfiguration, &IosRunConfiguration::localExecutableChanged,
this, &IosRunConfigurationWidget::updateValues);
}
-QString IosRunConfigurationWidget::argListToString(const QStringList &args) const
-{
- return QtcProcess::joinArgs(args);
-}
-
-QStringList IosRunConfigurationWidget::stringToArgList(const QString &args) const
-{
- QtcProcess::SplitError err;
- QStringList res = QtcProcess::splitArgs(args, OsTypeMac, false, &err);
- switch (err) {
- case QtcProcess::SplitOk:
- break;
- case QtcProcess::BadQuoting:
- if (args.at(args.size()-1) == QLatin1Char('\\')) {
- res = QtcProcess::splitArgs(args + QLatin1Char('\\'), OsTypeMac, false, &err);
- if (err != QtcProcess::SplitOk)
- res = QtcProcess::splitArgs(args + QLatin1Char('\\') + QLatin1Char('\''),
- OsTypeMac, false, &err);
- if (err != QtcProcess::SplitOk)
- res = QtcProcess::splitArgs(args + QLatin1Char('\\') + QLatin1Char('\"'),
- OsTypeMac, false, &err);
- }
- if (err != QtcProcess::SplitOk)
- res = QtcProcess::splitArgs(args + QLatin1Char('\''), OsTypeMac, false, &err);
- if (err != QtcProcess::SplitOk)
- res = QtcProcess::splitArgs(args + QLatin1Char('\"'), OsTypeMac, false, &err);
- break;
- case QtcProcess::FoundMeta:
- qCWarning(iosLog) << "IosRunConfigurationWidget FoundMeta (should not happen)";
- break;
- }
- return res;
-}
-
QString IosRunConfigurationWidget::displayName() const
{
return tr("iOS run settings");
}
-void IosRunConfigurationWidget::argumentsLineEditTextEdited()
-{
- QString argsString = m_argumentsLineEdit->text();
- QStringList args = stringToArgList(argsString);
- m_runConfiguration->m_arguments = args;
- m_argumentsLineEdit->setText(argListToString(args));
-}
-
void IosRunConfigurationWidget::setDeviceTypeIndex(int devIndex)
{
QVariant selectedDev = m_deviceTypeModel.data(m_deviceTypeModel.index(devIndex, 0), Qt::UserRole + 1);
@@ -492,8 +441,6 @@ void IosRunConfigurationWidget::updateValues()
m_deviceTypeModel.appendRow(item);
}
}
- QStringList args = m_runConfiguration->commandLineArguments();
- QString argsString = argListToString(args);
IosDeviceType currentDType = m_runConfiguration->deviceType();
if (currentDType.type == IosDeviceType::SimulatedDevice && !currentDType.identifier.isEmpty()
@@ -514,7 +461,6 @@ void IosRunConfigurationWidget::updateValues()
qCWarning(iosLog) << "could not set " << currentDType << " as it is not in model";
}
}
- m_argumentsLineEdit->setText(argsString);
m_executableLineEdit->setText(m_runConfiguration->localExecutable().toUserOutput());
}