forked from qt-creator/qt-creator
Meson: Start aspectification of NinjaBuildStep
First step is to inline mesonbuildstepconfigwidget.ui. As side effect, don't skip row 0 in the form layout and drop the intermediate QFrame/QVBoxLayout level and insert the searchable wrapper directly. Change-Id: Ibf2e348b2990ba48126ad7b92e98d0bcd8116196 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Alexis Jeandet <alexis.jeandet@member.fsf.org> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -65,7 +65,6 @@ add_qtc_plugin(MesonProjectManager
|
||||
project/mesonbuildconfiguration.cpp
|
||||
project/ninjabuildstep.h
|
||||
project/ninjabuildstep.cpp
|
||||
project/buildoptions/mesonbuildstepconfigwidget.ui
|
||||
project/buildoptions/mesonbuildstepconfigwidget.h
|
||||
project/buildoptions/mesonbuildstepconfigwidget.cpp
|
||||
project/buildoptions/mesonbuildsettingswidget.ui
|
||||
|
@@ -95,7 +95,6 @@ RESOURCES += resources.qrc
|
||||
|
||||
FORMS += \
|
||||
project/buildoptions/mesonbuildsettingswidget.ui \
|
||||
project/buildoptions/mesonbuildstepconfigwidget.ui \
|
||||
settings/general/generalsettingswidget.ui \
|
||||
settings/tools/toolitemsettings.ui \
|
||||
settings/tools/toolssettingswidget.ui
|
||||
|
@@ -56,7 +56,6 @@ Project {
|
||||
"project/buildoptions/mesonbuildsettingswidget.ui",
|
||||
"project/buildoptions/mesonbuildstepconfigwidget.cpp",
|
||||
"project/buildoptions/mesonbuildstepconfigwidget.h",
|
||||
"project/buildoptions/mesonbuildstepconfigwidget.ui",
|
||||
"project/buildoptions/optionsmodel/arrayoptionlineedit.cpp",
|
||||
"project/buildoptions/optionsmodel/arrayoptionlineedit.h",
|
||||
"project/buildoptions/optionsmodel/buildoptionsmodel.cpp",
|
||||
|
@@ -23,27 +23,37 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
#include "mesonbuildstepconfigwidget.h"
|
||||
#include "ui_mesonbuildstepconfigwidget.h"
|
||||
#include <coreplugin/find/itemviewfind.h>
|
||||
#include <mesonpluginconstants.h>
|
||||
#include <coreplugin/find/itemviewfind.h>
|
||||
#include <projectexplorer/buildstep.h>
|
||||
#include <projectexplorer/processparameters.h>
|
||||
#include <QCheckBox>
|
||||
#include <QFormLayout>
|
||||
#include <QRadioButton>
|
||||
|
||||
namespace MesonProjectManager {
|
||||
namespace Internal {
|
||||
|
||||
MesonBuildStepConfigWidget::MesonBuildStepConfigWidget(NinjaBuildStep *step)
|
||||
: ProjectExplorer::BuildStepConfigWidget{step}
|
||||
, ui(new Ui::MesonBuildStepConfigWidget)
|
||||
, m_buildTargetsList{new QListWidget}
|
||||
{
|
||||
setDisplayName(tr("Build", "MesonProjectManager::MesonBuildStepConfigWidget display name."));
|
||||
ui->setupUi(this);
|
||||
m_buildTargetsList->setFrameStyle(QFrame::NoFrame);
|
||||
|
||||
m_toolArguments = new QLineEdit(this);
|
||||
|
||||
m_buildTargetsList->setMinimumHeight(200);
|
||||
ui->frame->layout()->addWidget(
|
||||
Core::ItemViewFind::createSearchableWrapper(m_buildTargetsList,
|
||||
Core::ItemViewFind::LightColored));
|
||||
m_buildTargetsList->setFrameShape(QFrame::StyledPanel);
|
||||
m_buildTargetsList->setFrameShadow(QFrame::Raised);
|
||||
|
||||
auto wrapper = Core::ItemViewFind::createSearchableWrapper(m_buildTargetsList,
|
||||
Core::ItemViewFind::LightColored);
|
||||
|
||||
auto formLayout = new QFormLayout(this);
|
||||
formLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
|
||||
formLayout->setContentsMargins(0, 0, 0, 0);
|
||||
formLayout->addRow(tr("Tool arguments:"), m_toolArguments);
|
||||
formLayout->addRow(tr("Targets:"), wrapper);
|
||||
|
||||
updateDetails();
|
||||
updateTargetList();
|
||||
connect(step, &NinjaBuildStep::commandChanged, this, &MesonBuildStepConfigWidget::updateDetails);
|
||||
@@ -51,7 +61,7 @@ MesonBuildStepConfigWidget::MesonBuildStepConfigWidget(NinjaBuildStep *step)
|
||||
&NinjaBuildStep::targetListChanged,
|
||||
this,
|
||||
&MesonBuildStepConfigWidget::updateTargetList);
|
||||
connect(ui->m_toolArguments, &QLineEdit::textEdited, this, [this](const QString &text) {
|
||||
connect(m_toolArguments, &QLineEdit::textEdited, this, [this](const QString &text) {
|
||||
auto mesonBuildStep = static_cast<NinjaBuildStep *>(this->step());
|
||||
mesonBuildStep->setCommandArgs(text);
|
||||
updateDetails();
|
||||
@@ -64,11 +74,6 @@ MesonBuildStepConfigWidget::MesonBuildStepConfigWidget(NinjaBuildStep *step)
|
||||
});
|
||||
}
|
||||
|
||||
MesonBuildStepConfigWidget::~MesonBuildStepConfigWidget()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void MesonBuildStepConfigWidget::updateDetails()
|
||||
{
|
||||
auto mesonBuildStep = static_cast<NinjaBuildStep *>(step());
|
||||
|
@@ -25,12 +25,11 @@
|
||||
#pragma once
|
||||
#include "../ninjabuildstep.h"
|
||||
#include "projectexplorer/buildstep.h"
|
||||
|
||||
#include <QLineEdit>
|
||||
#include <QListWidget>
|
||||
#include <QWidget>
|
||||
|
||||
namespace Ui {
|
||||
class MesonBuildStepConfigWidget;
|
||||
}
|
||||
namespace MesonProjectManager {
|
||||
namespace Internal {
|
||||
class MesonBuildStepConfigWidget final : public ProjectExplorer::BuildStepConfigWidget
|
||||
@@ -39,14 +38,13 @@ class MesonBuildStepConfigWidget final : public ProjectExplorer::BuildStepConfig
|
||||
|
||||
public:
|
||||
explicit MesonBuildStepConfigWidget(NinjaBuildStep *step);
|
||||
~MesonBuildStepConfigWidget();
|
||||
|
||||
private:
|
||||
void updateDetails();
|
||||
void updateTargetList();
|
||||
inline NinjaBuildStep *mesonBuildStep() { return static_cast<NinjaBuildStep *>(step()); }
|
||||
Ui::MesonBuildStepConfigWidget *ui;
|
||||
QListWidget *m_buildTargetsList;
|
||||
QLineEdit *m_toolArguments;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
@@ -1,89 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>MesonBuildStepConfigWidget</class>
|
||||
<widget class="QWidget" name="MesonBuildStepConfigWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<property name="fieldGrowthPolicy">
|
||||
<enum>QFormLayout::ExpandingFieldsGrow</enum>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Tool arguments:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="m_toolArguments"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Targets:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QFrame" name="frame">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="baseSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
Reference in New Issue
Block a user