diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp index 7496145e1cf..1a0224a1b4c 100644 --- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp +++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -68,7 +69,6 @@ namespace QbsProjectManager { namespace Internal { const char QBS_RC_PREFIX[] = "Qbs.RunConfiguration:"; -const char COMMAND_LINE_ARGUMENTS_KEY[] = "Qbs.RunConfiguration.CommandLineArguments"; const char USE_TERMINAL_KEY[] = "Qbs.RunConfiguration.UseTerminal"; const char USER_WORKING_DIRECTORY_KEY[] = "Qbs.RunConfiguration.UserWorkingDirectory"; @@ -118,6 +118,7 @@ QbsRunConfiguration::QbsRunConfiguration(Target *parent, Core::Id id) : m_currentBuildStepList(0) { addExtraAspect(new LocalEnvironmentAspect(this)); + addExtraAspect(new ArgumentsAspect(this, QStringLiteral("Qbs.RunConfiguration.CommandLineArguments"))); m_runModeForced = false; m_runMode = isConsoleApplication() ? ApplicationLauncher::Console : ApplicationLauncher::Gui; @@ -128,7 +129,6 @@ QbsRunConfiguration::QbsRunConfiguration(Target *parent, Core::Id id) : QbsRunConfiguration::QbsRunConfiguration(Target *parent, QbsRunConfiguration *source) : LocalApplicationRunConfiguration(parent, source), m_uniqueProductName(source->m_uniqueProductName), - m_commandLineArguments(source->m_commandLineArguments), m_runMode(source->m_runMode), m_runModeForced(source->m_runModeForced), m_userWorkingDirectory(source->m_userWorkingDirectory), @@ -181,7 +181,6 @@ QWidget *QbsRunConfiguration::createConfigurationWidget() QVariantMap QbsRunConfiguration::toMap() const { QVariantMap map(LocalApplicationRunConfiguration::toMap()); - map.insert(QLatin1String(COMMAND_LINE_ARGUMENTS_KEY), m_commandLineArguments); if (m_runModeForced) map.insert(QLatin1String(USE_TERMINAL_KEY), m_runMode == ApplicationLauncher::Console); map.insert(QLatin1String(USER_WORKING_DIRECTORY_KEY), m_userWorkingDirectory); @@ -190,7 +189,6 @@ QVariantMap QbsRunConfiguration::toMap() const bool QbsRunConfiguration::fromMap(const QVariantMap &map) { - m_commandLineArguments = map.value(QLatin1String(COMMAND_LINE_ARGUMENTS_KEY)).toString(); if (map.contains(QLatin1String(USE_TERMINAL_KEY))) { m_runMode = map.value(QLatin1String(USE_TERMINAL_KEY), false).toBool() ? ApplicationLauncher::Console : ApplicationLauncher::Gui; @@ -287,12 +285,7 @@ QString QbsRunConfiguration::baseWorkingDirectory() const QString QbsRunConfiguration::commandLineArguments() const { - return macroExpander()->expandProcessArgs(m_commandLineArguments); -} - -QString QbsRunConfiguration::rawCommandLineArguments() const -{ - return m_commandLineArguments; + return extraAspect()->arguments(); } void QbsRunConfiguration::setBaseWorkingDirectory(const QString &wd) @@ -306,12 +299,6 @@ void QbsRunConfiguration::setBaseWorkingDirectory(const QString &wd) emit baseWorkingDirectoryChanged(newWorkingDirectory); } -void QbsRunConfiguration::setCommandLineArguments(const QString &argumentsString) -{ - m_commandLineArguments = argumentsString; - emit commandLineArgumentsChanged(argumentsString); -} - void QbsRunConfiguration::setRunMode(ApplicationLauncher::Mode runMode) { if (m_runMode == runMode) @@ -416,10 +403,7 @@ QbsRunConfigurationWidget::QbsRunConfigurationWidget(QbsRunConfiguration *rc, QW setExecutableLineText(); toplayout->addRow(tr("Executable:"), m_executableLineLabel); - QLabel *argumentsLabel = new QLabel(tr("Arguments:"), this); - m_argumentsLineEdit = new QLineEdit(m_rc->rawCommandLineArguments(), this); - argumentsLabel->setBuddy(m_argumentsLineEdit); - toplayout->addRow(argumentsLabel, m_argumentsLineEdit); + m_rc->extraAspect()->addToMainConfigurationWidget(this, toplayout); m_workingDirectoryEdit = new Utils::PathChooser(this); m_workingDirectoryEdit->setHistoryCompleter(QLatin1String("Qbs.WorkingDir.History")); @@ -456,8 +440,6 @@ QbsRunConfigurationWidget::QbsRunConfigurationWidget(QbsRunConfiguration *rc, QW connect(resetButton, SIGNAL(clicked()), this, SLOT(workingDirectoryWasReset())); - connect(m_argumentsLineEdit, SIGNAL(textEdited(QString)), - this, SLOT(argumentsEdited(QString))); connect(m_useTerminalCheck, SIGNAL(toggled(bool)), this, SLOT(termToggled(bool))); @@ -509,13 +491,6 @@ void QbsRunConfigurationWidget::workingDirectoryWasReset() m_rc->setBaseWorkingDirectory(QString()); } -void QbsRunConfigurationWidget::argumentsEdited(const QString &args) -{ - m_ignoreChange = true; - m_rc->setCommandLineArguments(args); - m_ignoreChange = false; -} - void QbsRunConfigurationWidget::termToggled(bool on) { m_ignoreChange = true; @@ -545,13 +520,6 @@ void QbsRunConfigurationWidget::workingDirectoryChanged(const QString &workingDi m_workingDirectoryEdit->setPath(workingDirectory); } -void QbsRunConfigurationWidget::commandLineArgumentsChanged(const QString &args) -{ - if (m_ignoreChange) - return; - m_argumentsLineEdit->setText(args); -} - void QbsRunConfigurationWidget::runModeChanged(ApplicationLauncher::Mode runMode) { if (!m_ignoreChange) diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.h b/src/plugins/qbsprojectmanager/qbsrunconfiguration.h index b00d1cc89ed..7749b854918 100644 --- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.h +++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.h @@ -94,7 +94,6 @@ public: bool isConsoleApplication() const; signals: - void commandLineArgumentsChanged(const QString&); void baseWorkingDirectoryChanged(const QString&); void runModeChanged(ProjectExplorer::ApplicationLauncher::Mode runMode); void targetInformationChanged(); @@ -111,8 +110,6 @@ private slots: private: void setBaseWorkingDirectory(const QString &workingDirectory); QString baseWorkingDirectory() const; - void setCommandLineArguments(const QString &argumentsString); - QString rawCommandLineArguments() const; QString defaultDisplayName(); qbs::InstallOptions installOptions() const; QString installRoot() const; @@ -122,7 +119,6 @@ private: void updateTarget(); QString m_uniqueProductName; - QString m_commandLineArguments; // Cached startup sub project information ProjectExplorer::ApplicationLauncher::Mode m_runMode; @@ -144,11 +140,9 @@ private slots: void runConfigurationEnabledChange(); void workDirectoryEdited(); void workingDirectoryWasReset(); - void argumentsEdited(const QString &arguments); void environmentWasChanged(); void workingDirectoryChanged(const QString &workingDirectory); - void commandLineArgumentsChanged(const QString &args); void runModeChanged(ProjectExplorer::ApplicationLauncher::Mode runMode); void termToggled(bool); @@ -165,7 +159,6 @@ private: QLabel *m_disabledReason; QLabel *m_executableLineLabel; Utils::PathChooser *m_workingDirectoryEdit; - QLineEdit *m_argumentsLineEdit; QCheckBox *m_useTerminalCheck; QCheckBox *m_usingDyldImageSuffix; QLineEdit *m_qmlDebugPort;