From 29a9565c89b61689a378e3d7ad7bb78482334452 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 25 Aug 2020 09:56:11 +0200 Subject: [PATCH] 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 Reviewed-by: Alexis Jeandet Reviewed-by: Christian Stenger --- .../mesonprojectmanager/CMakeLists.txt | 1 - .../mesonprojectmanager.pro | 1 - .../mesonprojectmanager.qbs | 1 - .../mesonbuildstepconfigwidget.cpp | 35 ++++---- .../buildoptions/mesonbuildstepconfigwidget.h | 8 +- .../mesonbuildstepconfigwidget.ui | 89 ------------------- 6 files changed, 23 insertions(+), 112 deletions(-) delete mode 100644 src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildstepconfigwidget.ui diff --git a/src/plugins/mesonprojectmanager/CMakeLists.txt b/src/plugins/mesonprojectmanager/CMakeLists.txt index 972fab64731..6c5f32981bd 100644 --- a/src/plugins/mesonprojectmanager/CMakeLists.txt +++ b/src/plugins/mesonprojectmanager/CMakeLists.txt @@ -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 diff --git a/src/plugins/mesonprojectmanager/mesonprojectmanager.pro b/src/plugins/mesonprojectmanager/mesonprojectmanager.pro index 71a7b25818b..61a61f6f428 100644 --- a/src/plugins/mesonprojectmanager/mesonprojectmanager.pro +++ b/src/plugins/mesonprojectmanager/mesonprojectmanager.pro @@ -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 diff --git a/src/plugins/mesonprojectmanager/mesonprojectmanager.qbs b/src/plugins/mesonprojectmanager/mesonprojectmanager.qbs index 753610b4cc1..0d166b51d3c 100644 --- a/src/plugins/mesonprojectmanager/mesonprojectmanager.qbs +++ b/src/plugins/mesonprojectmanager/mesonprojectmanager.qbs @@ -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", diff --git a/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildstepconfigwidget.cpp b/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildstepconfigwidget.cpp index 4c296b29d05..c774d0b234d 100644 --- a/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildstepconfigwidget.cpp +++ b/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildstepconfigwidget.cpp @@ -23,27 +23,37 @@ ** ****************************************************************************/ #include "mesonbuildstepconfigwidget.h" -#include "ui_mesonbuildstepconfigwidget.h" -#include #include +#include #include #include -#include +#include #include + 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(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(step()); diff --git a/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildstepconfigwidget.h b/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildstepconfigwidget.h index b0cc6fb9d83..7b535a40371 100644 --- a/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildstepconfigwidget.h +++ b/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildstepconfigwidget.h @@ -25,12 +25,11 @@ #pragma once #include "../ninjabuildstep.h" #include "projectexplorer/buildstep.h" + +#include #include #include -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(step()); } - Ui::MesonBuildStepConfigWidget *ui; QListWidget *m_buildTargetsList; + QLineEdit *m_toolArguments; }; } // namespace Internal diff --git a/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildstepconfigwidget.ui b/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildstepconfigwidget.ui deleted file mode 100644 index 1212227fb76..00000000000 --- a/src/plugins/mesonprojectmanager/project/buildoptions/mesonbuildstepconfigwidget.ui +++ /dev/null @@ -1,89 +0,0 @@ - - - MesonBuildStepConfigWidget - - - - 0 - 0 - 400 - 300 - - - - Form - - - - QFormLayout::ExpandingFieldsGrow - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Tool arguments: - - - - - - - - - - Targets: - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - - - -