forked from qt-creator/qt-creator
iOS: Inline IosBuildStepConfigWidget
In preparation of aspectification. Change-Id: I0a97440aa6c4bc749af51219ccace519982bfaa1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -5,7 +5,7 @@ add_qtc_plugin(Ios
|
||||
createsimulatordialog.cpp createsimulatordialog.h createsimulatordialog.ui
|
||||
ios.qrc
|
||||
iosbuildconfiguration.cpp iosbuildconfiguration.h
|
||||
iosbuildstep.cpp iosbuildstep.h iosbuildstep.ui
|
||||
iosbuildstep.cpp iosbuildstep.h
|
||||
iosconfigurations.cpp iosconfigurations.h
|
||||
iosconstants.h
|
||||
iosdeploystep.cpp iosdeploystep.h
|
||||
|
@@ -53,7 +53,6 @@ SOURCES += \
|
||||
|
||||
FORMS += \
|
||||
iossettingswidget.ui \
|
||||
iosbuildstep.ui \
|
||||
iospresetbuildstep.ui \
|
||||
createsimulatordialog.ui \
|
||||
simulatoroperationdialog.ui
|
||||
|
@@ -22,7 +22,6 @@ QtcPlugin {
|
||||
"iosbuildconfiguration.h",
|
||||
"iosbuildstep.cpp",
|
||||
"iosbuildstep.h",
|
||||
"iosbuildstep.ui",
|
||||
"iosconfigurations.cpp",
|
||||
"iosconfigurations.h",
|
||||
"iosconstants.h",
|
||||
|
@@ -25,7 +25,6 @@
|
||||
|
||||
#include "iosbuildstep.h"
|
||||
#include "iosconstants.h"
|
||||
#include "ui_iosbuildstep.h"
|
||||
|
||||
#include <extensionsystem/pluginmanager.h>
|
||||
#include <projectexplorer/target.h>
|
||||
@@ -48,6 +47,12 @@
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/qtcprocess.h>
|
||||
|
||||
#include <QGridLayout>
|
||||
#include <QLabel>
|
||||
#include <QLineEdit>
|
||||
#include <QPlainTextEdit>
|
||||
#include <QPushButton>
|
||||
|
||||
using namespace Core;
|
||||
using namespace ProjectExplorer;
|
||||
using namespace Utils;
|
||||
@@ -63,6 +68,109 @@ const char BUILD_USE_DEFAULT_ARGS_KEY[] = "Ios.IosBuildStep.XcodeArgumentsUseDef
|
||||
const char BUILD_ARGUMENTS_KEY[] = "Ios.IosBuildStep.XcodeArguments";
|
||||
const char CLEAN_KEY[] = "Ios.IosBuildStep.Clean";
|
||||
|
||||
//
|
||||
// IosBuildStepConfigWidget
|
||||
//
|
||||
|
||||
class IosBuildStepConfigWidget : public ProjectExplorer::BuildStepConfigWidget
|
||||
{
|
||||
public:
|
||||
IosBuildStepConfigWidget(IosBuildStep *buildStep)
|
||||
: BuildStepConfigWidget(buildStep), m_buildStep(buildStep)
|
||||
{
|
||||
auto buildArgumentsLabel = new QLabel(this);
|
||||
buildArgumentsLabel->setText(tr("Base arguments:"));
|
||||
|
||||
m_buildArgumentsTextEdit = new QPlainTextEdit(this);
|
||||
m_buildArgumentsTextEdit->setPlainText(QtcProcess::joinArgs(m_buildStep->baseArguments()));
|
||||
|
||||
m_resetDefaultsButton = new QPushButton(this);
|
||||
m_resetDefaultsButton->setLayoutDirection(Qt::RightToLeft);
|
||||
m_resetDefaultsButton->setText(tr("Reset Defaults"));
|
||||
m_resetDefaultsButton->setEnabled(!m_buildStep->m_useDefaultArguments);
|
||||
|
||||
auto extraArgumentsLabel = new QLabel(this);
|
||||
|
||||
m_extraArgumentsLineEdit = new QLineEdit(this);
|
||||
m_extraArgumentsLineEdit->setText(QtcProcess::joinArgs(m_buildStep->m_extraArguments));
|
||||
|
||||
auto gridLayout = new QGridLayout(this);
|
||||
gridLayout->addWidget(buildArgumentsLabel, 0, 0, 1, 1);
|
||||
gridLayout->addWidget(m_buildArgumentsTextEdit, 0, 1, 2, 1);
|
||||
gridLayout->addWidget(m_resetDefaultsButton, 1, 2, 1, 1);
|
||||
gridLayout->addWidget(extraArgumentsLabel, 2, 0, 1, 1);
|
||||
gridLayout->addWidget(m_extraArgumentsLineEdit, 2, 1, 1, 1);
|
||||
|
||||
extraArgumentsLabel->setText(tr("Extra arguments:"));
|
||||
|
||||
setDisplayName(tr("iOS build", "iOS BuildStep display name."));
|
||||
|
||||
updateDetails();
|
||||
|
||||
connect(m_buildArgumentsTextEdit, &QPlainTextEdit::textChanged,
|
||||
this, &IosBuildStepConfigWidget::buildArgumentsChanged);
|
||||
connect(m_resetDefaultsButton, &QAbstractButton::clicked,
|
||||
this, &IosBuildStepConfigWidget::resetDefaultArguments);
|
||||
connect(m_extraArgumentsLineEdit, &QLineEdit::editingFinished,
|
||||
this, &IosBuildStepConfigWidget::extraArgumentsChanged);
|
||||
|
||||
connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::settingsChanged,
|
||||
this, &IosBuildStepConfigWidget::updateDetails);
|
||||
connect(m_buildStep->target(), &Target::kitChanged,
|
||||
this, &IosBuildStepConfigWidget::updateDetails);
|
||||
|
||||
Project *pro = m_buildStep->target()->project();
|
||||
pro->subscribeSignal(&BuildConfiguration::environmentChanged, this, [this]() {
|
||||
if (static_cast<BuildConfiguration *>(sender())->isActive())
|
||||
updateDetails();
|
||||
});
|
||||
connect(pro, &Project::activeProjectConfigurationChanged,
|
||||
this, [this](ProjectConfiguration *pc) {
|
||||
if (pc && pc->isActive())
|
||||
updateDetails();
|
||||
});
|
||||
}
|
||||
|
||||
private:
|
||||
void buildArgumentsChanged()
|
||||
{
|
||||
m_buildStep->setBaseArguments(QtcProcess::splitArgs(m_buildArgumentsTextEdit->toPlainText()));
|
||||
m_resetDefaultsButton->setEnabled(!m_buildStep->m_useDefaultArguments);
|
||||
updateDetails();
|
||||
}
|
||||
|
||||
void resetDefaultArguments()
|
||||
{
|
||||
m_buildStep->setBaseArguments(m_buildStep->defaultArguments());
|
||||
m_buildArgumentsTextEdit->setPlainText(QtcProcess::joinArgs(m_buildStep->baseArguments()));
|
||||
m_resetDefaultsButton->setEnabled(!m_buildStep->m_useDefaultArguments);
|
||||
}
|
||||
|
||||
void extraArgumentsChanged()
|
||||
{
|
||||
m_buildStep->setExtraArguments(QtcProcess::splitArgs(m_extraArgumentsLineEdit->text()));
|
||||
}
|
||||
|
||||
void updateDetails()
|
||||
{
|
||||
BuildConfiguration *bc = m_buildStep->buildConfiguration();
|
||||
|
||||
ProcessParameters param;
|
||||
param.setMacroExpander(bc->macroExpander());
|
||||
param.setWorkingDirectory(bc->buildDirectory());
|
||||
param.setEnvironment(bc->environment());
|
||||
param.setCommandLine({m_buildStep->buildCommand(), m_buildStep->allArguments()});
|
||||
|
||||
setSummaryText(param.summary(displayName()));
|
||||
}
|
||||
|
||||
IosBuildStep *m_buildStep;
|
||||
|
||||
QPlainTextEdit *m_buildArgumentsTextEdit;
|
||||
QPushButton *m_resetDefaultsButton;
|
||||
QLineEdit *m_extraArgumentsLineEdit;
|
||||
};
|
||||
|
||||
IosBuildStep::IosBuildStep(BuildStepList *parent) :
|
||||
AbstractProcessStep(parent, IOS_BUILD_STEP_ID)
|
||||
{
|
||||
@@ -199,89 +307,6 @@ QStringList IosBuildStep::baseArguments() const
|
||||
return m_baseBuildArguments;
|
||||
}
|
||||
|
||||
//
|
||||
// IosBuildStepConfigWidget
|
||||
//
|
||||
|
||||
IosBuildStepConfigWidget::IosBuildStepConfigWidget(IosBuildStep *buildStep)
|
||||
: BuildStepConfigWidget(buildStep), m_buildStep(buildStep)
|
||||
{
|
||||
m_ui = new Ui::IosBuildStep;
|
||||
m_ui->setupUi(this);
|
||||
|
||||
setDisplayName(tr("iOS build", "iOS BuildStep display name."));
|
||||
|
||||
Project *pro = m_buildStep->target()->project();
|
||||
|
||||
m_ui->buildArgumentsTextEdit->setPlainText(Utils::QtcProcess::joinArgs(
|
||||
m_buildStep->baseArguments()));
|
||||
m_ui->extraArgumentsLineEdit->setText(Utils::QtcProcess::joinArgs(
|
||||
m_buildStep->m_extraArguments));
|
||||
m_ui->resetDefaultsButton->setEnabled(!m_buildStep->m_useDefaultArguments);
|
||||
updateDetails();
|
||||
|
||||
connect(m_ui->buildArgumentsTextEdit, &QPlainTextEdit::textChanged,
|
||||
this, &IosBuildStepConfigWidget::buildArgumentsChanged);
|
||||
connect(m_ui->resetDefaultsButton, &QAbstractButton::clicked,
|
||||
this, &IosBuildStepConfigWidget::resetDefaultArguments);
|
||||
connect(m_ui->extraArgumentsLineEdit, &QLineEdit::editingFinished,
|
||||
this, &IosBuildStepConfigWidget::extraArgumentsChanged);
|
||||
|
||||
connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::settingsChanged,
|
||||
this, &IosBuildStepConfigWidget::updateDetails);
|
||||
connect(m_buildStep->target(), &Target::kitChanged,
|
||||
this, &IosBuildStepConfigWidget::updateDetails);
|
||||
pro->subscribeSignal(&BuildConfiguration::environmentChanged, this, [this]() {
|
||||
if (static_cast<BuildConfiguration *>(sender())->isActive())
|
||||
updateDetails();
|
||||
});
|
||||
connect(pro, &Project::activeProjectConfigurationChanged,
|
||||
this, [this](ProjectConfiguration *pc) {
|
||||
if (pc && pc->isActive())
|
||||
updateDetails();
|
||||
});
|
||||
}
|
||||
|
||||
IosBuildStepConfigWidget::~IosBuildStepConfigWidget()
|
||||
{
|
||||
delete m_ui;
|
||||
}
|
||||
|
||||
void IosBuildStepConfigWidget::updateDetails()
|
||||
{
|
||||
BuildConfiguration *bc = m_buildStep->buildConfiguration();
|
||||
|
||||
ProcessParameters param;
|
||||
param.setMacroExpander(bc->macroExpander());
|
||||
param.setWorkingDirectory(bc->buildDirectory());
|
||||
param.setEnvironment(bc->environment());
|
||||
param.setCommandLine({m_buildStep->buildCommand(), m_buildStep->allArguments()});
|
||||
|
||||
setSummaryText(param.summary(displayName()));
|
||||
}
|
||||
|
||||
void IosBuildStepConfigWidget::buildArgumentsChanged()
|
||||
{
|
||||
m_buildStep->setBaseArguments(Utils::QtcProcess::splitArgs(
|
||||
m_ui->buildArgumentsTextEdit->toPlainText()));
|
||||
m_ui->resetDefaultsButton->setEnabled(!m_buildStep->m_useDefaultArguments);
|
||||
updateDetails();
|
||||
}
|
||||
|
||||
void IosBuildStepConfigWidget::resetDefaultArguments()
|
||||
{
|
||||
m_buildStep->setBaseArguments(m_buildStep->defaultArguments());
|
||||
m_ui->buildArgumentsTextEdit->setPlainText(Utils::QtcProcess::joinArgs(
|
||||
m_buildStep->baseArguments()));
|
||||
m_ui->resetDefaultsButton->setEnabled(!m_buildStep->m_useDefaultArguments);
|
||||
}
|
||||
|
||||
void IosBuildStepConfigWidget::extraArgumentsChanged()
|
||||
{
|
||||
m_buildStep->setExtraArguments(Utils::QtcProcess::splitArgs(
|
||||
m_ui->extraArgumentsLineEdit->text()));
|
||||
}
|
||||
|
||||
//
|
||||
// IosBuildStepFactory
|
||||
//
|
||||
|
@@ -36,7 +36,6 @@ namespace Internal {
|
||||
|
||||
class IosBuildStepConfigWidget;
|
||||
class IosBuildStepFactory;
|
||||
namespace Ui { class IosBuildStep; }
|
||||
|
||||
class IosBuildStep : public ProjectExplorer::AbstractProcessStep
|
||||
{
|
||||
@@ -68,24 +67,6 @@ private:
|
||||
bool m_clean = false;
|
||||
};
|
||||
|
||||
class IosBuildStepConfigWidget : public ProjectExplorer::BuildStepConfigWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
IosBuildStepConfigWidget(IosBuildStep *buildStep);
|
||||
~IosBuildStepConfigWidget() override;
|
||||
|
||||
private:
|
||||
void buildArgumentsChanged();
|
||||
void resetDefaultArguments();
|
||||
void extraArgumentsChanged();
|
||||
void updateDetails();
|
||||
|
||||
Ui::IosBuildStep *m_ui;
|
||||
IosBuildStep *m_buildStep;
|
||||
};
|
||||
|
||||
class IosBuildStepFactory : public ProjectExplorer::BuildStepFactory
|
||||
{
|
||||
public:
|
||||
|
@@ -1,65 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Ios::Internal::IosBuildStep</class>
|
||||
<widget class="QWidget" name="Ios::Internal::IosBuildStep">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>756</width>
|
||||
<height>183</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="buildArgumentsLabel">
|
||||
<property name="text">
|
||||
<string>Base arguments:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" rowspan="2">
|
||||
<widget class="QPlainTextEdit" name="buildArgumentsTextEdit"/>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="resetDefaultsButton">
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::RightToLeft</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Reset Defaults</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="extraArgumentsLabel">
|
||||
<property name="text">
|
||||
<string>Extra arguments:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="extraArgumentsLineEdit"/>
|
||||
</item>
|
||||
</layout>
|
||||
<zorder>buildArgumentsTextEdit</zorder>
|
||||
<zorder>resetDefaultsButton</zorder>
|
||||
<zorder>extraArgumentsLabel</zorder>
|
||||
<zorder>extraArgumentsLineEdit</zorder>
|
||||
<zorder>buildArgumentsLabel</zorder>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
Reference in New Issue
Block a user