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:
hjk
2020-08-25 09:56:11 +02:00
parent 0538e8bfbd
commit 29a9565c89
6 changed files with 23 additions and 112 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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",

View File

@@ -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());

View File

@@ -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

View File

@@ -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>