diff options
author | Alessandro Portale <alessandro.portale@qt.io> | 2024-04-17 11:54:30 +0200 |
---|---|---|
committer | Alessandro Portale <alessandro.portale@qt.io> | 2024-05-02 15:18:20 +0000 |
commit | f625c2682c2bf186c56f9e8f0b92a4d24ac0da59 (patch) | |
tree | 44842e774510bfae7b8f50a6d12ff164f0d37c39 /src/libs/modelinglib | |
parent | a90368d7041866e3355e78e3098c705b73c5b334 (diff) |
ModelEditor: Inline modeltreefilter.ui
Change-Id: I03925b708ac1741f6342023b455b0280a8bce584
Reviewed-by: Jochen Becher <jochen_becher@gmx.de>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/libs/modelinglib')
-rw-r--r-- | src/libs/modelinglib/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/libs/modelinglib/modelinglib.qbs | 1 | ||||
-rw-r--r-- | src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.cpp | 131 | ||||
-rw-r--r-- | src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.h | 5 | ||||
-rw-r--r-- | src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.ui | 312 |
5 files changed, 102 insertions, 348 deletions
diff --git a/src/libs/modelinglib/CMakeLists.txt b/src/libs/modelinglib/CMakeLists.txt index 1189ed35b3..65bd5e7140 100644 --- a/src/libs/modelinglib/CMakeLists.txt +++ b/src/libs/modelinglib/CMakeLists.txt @@ -136,7 +136,6 @@ add_qtc_library(Modeling qmt/model_widgets_ui/addrelatedelementsdialog.ui qmt/model_widgets_ui/classmembersedit.cpp qmt/model_widgets_ui/classmembersedit.h qmt/model_widgets_ui/modeltreefilter.h qmt/model_widgets_ui/modeltreefilter.cpp - qmt/model_widgets_ui/modeltreefilter.ui qmt/model_widgets_ui/modeltreeview.cpp qmt/model_widgets_ui/modeltreeview.h qmt/model_widgets_ui/palettebox.cpp qmt/model_widgets_ui/palettebox.h qmt/model_widgets_ui/propertiesview.cpp qmt/model_widgets_ui/propertiesview.h diff --git a/src/libs/modelinglib/modelinglib.qbs b/src/libs/modelinglib/modelinglib.qbs index fd137e603d..250fd5cfc0 100644 --- a/src/libs/modelinglib/modelinglib.qbs +++ b/src/libs/modelinglib/modelinglib.qbs @@ -256,7 +256,6 @@ QtcLibrary { "model_widgets_ui/classmembersedit.h", "model_widgets_ui/modeltreefilter.cpp", "model_widgets_ui/modeltreefilter.h", - "model_widgets_ui/modeltreefilter.ui", "model_widgets_ui/modeltreeview.cpp", "model_widgets_ui/modeltreeview.h", "model_widgets_ui/palettebox.cpp", diff --git a/src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.cpp b/src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.cpp index 59a61df3c4..3fa671283a 100644 --- a/src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.cpp +++ b/src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.cpp @@ -2,8 +2,17 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "modeltreefilter.h" -#include "ui_modeltreefilter.h" +#include "../../modelinglibtr.h" + +#include <utils/layoutbuilder.h> + +#include <QCheckBox> +#include <QComboBox> +#include <QFrame> +#include <QLabel> +#include <QLineEdit> +#include <QPushButton> #include <QStringListModel> namespace qmt { @@ -13,25 +22,90 @@ public: QStringListModel m_typeModel; QStringListModel m_stereotypesModel; QStringListModel m_directionModel; + + QPushButton *resetViewButton; + QCheckBox *relationsCheckBox; + QCheckBox *diagramElementsCheckBox; + QPushButton *clearFilterButton; + QComboBox *typeComboBox; + QComboBox *stereotypesComboBox; + QLineEdit *nameLineEdit; + QComboBox *directionComboBox; }; ModelTreeFilter::ModelTreeFilter(QWidget *parent) : QWidget(parent), - ui(new Ui::ModelTreeFilter), d(new Private) { - ui->setupUi(this); - connect(ui->resetViewButton, &QPushButton::clicked, this, &ModelTreeFilter::resetView); - connect(ui->relationsCheckBox, &QCheckBox::clicked, this, &ModelTreeFilter::onViewChanged); - connect(ui->diagramElementsCheckBox, &QCheckBox::clicked, this, &ModelTreeFilter::onViewChanged); - connect(ui->clearFilterButton, &QPushButton::clicked, this, &ModelTreeFilter::clearFilter); - connect(ui->typeComboBox, &QComboBox::currentIndexChanged, this, [this](int index) { - ui->directionComboBox->setDisabled(index != (int) ModelTreeFilterData::Type::Dependency); + d->resetViewButton = new QPushButton(Tr::tr("Reset")); + d->relationsCheckBox = new QCheckBox(Tr::tr("Relations")); + d->diagramElementsCheckBox = new QCheckBox(Tr::tr("Diagram Elements")); + d->diagramElementsCheckBox->setMaximumHeight(0); + d->clearFilterButton = new QPushButton(Tr::tr("Clear")); + d->typeComboBox = new QComboBox; + d->stereotypesComboBox = new QComboBox; + d->stereotypesComboBox->setEditable(true); + d->nameLineEdit = new QLineEdit; + d->directionComboBox = new QComboBox; + + const auto boldLabel = [] (const QString &title) -> QLabel * { + auto label = new QLabel(title); + QFont boldFont = label->font(); + boldFont.setWeight(QFont::Bold); + label->setFont(boldFont); + return label; + }; + + const auto line = [] () -> QFrame * { + auto line = new QFrame; + line->setFrameShadow(QFrame::Plain); + line->setFrameShape(QFrame::HLine); + return line; + }; + + const int margin = 9; + + using namespace Layouting; + Column { + Column { + Row { + boldLabel(Tr::tr("View")), st, d->resetViewButton + }, + d->relationsCheckBox, + d->diagramElementsCheckBox, + customMargin({margin, 0, margin, 0}), + }, + Space(10), + line(), + Column { + Row { + boldLabel(Tr::tr("Filter")), st, d->clearFilterButton + }, + Space(10), + Form { + Tr::tr("Type:"), d->typeComboBox, br, + Tr::tr("Stereotypes:"), d->stereotypesComboBox, br, + Tr::tr("Name:"), d->nameLineEdit, br, + Tr::tr("Direction:"), d->directionComboBox, br, + }, + customMargin({margin, 0, margin, 0}), + }, + st, + line(), + customMargin({0, margin, 0, 0}), + }.attachTo(this); + + connect(d->resetViewButton, &QPushButton::clicked, this, &ModelTreeFilter::resetView); + connect(d->relationsCheckBox, &QCheckBox::clicked, this, &ModelTreeFilter::onViewChanged); + connect(d->diagramElementsCheckBox, &QCheckBox::clicked, this, &ModelTreeFilter::onViewChanged); + connect(d->clearFilterButton, &QPushButton::clicked, this, &ModelTreeFilter::clearFilter); + connect(d->typeComboBox, &QComboBox::currentIndexChanged, this, [this](int index) { + d->directionComboBox->setDisabled(index != (int) ModelTreeFilterData::Type::Dependency); }); - connect(ui->typeComboBox, &QComboBox::currentIndexChanged, this, &ModelTreeFilter::onFilterChanged); - connect(ui->stereotypesComboBox, &QComboBox::currentTextChanged, this, &ModelTreeFilter::onFilterChanged); - connect(ui->nameLineEdit, &QLineEdit::textChanged, this, &ModelTreeFilter::onFilterChanged); - connect(ui->directionComboBox, &QComboBox::currentTextChanged, this, &ModelTreeFilter::onFilterChanged); + connect(d->typeComboBox, &QComboBox::currentIndexChanged, this, &ModelTreeFilter::onFilterChanged); + connect(d->stereotypesComboBox, &QComboBox::currentTextChanged, this, &ModelTreeFilter::onFilterChanged); + connect(d->nameLineEdit, &QLineEdit::textChanged, this, &ModelTreeFilter::onFilterChanged); + connect(d->directionComboBox, &QComboBox::currentTextChanged, this, &ModelTreeFilter::onFilterChanged); setupFilter(); resetView(); clearFilter(); @@ -40,7 +114,6 @@ ModelTreeFilter::ModelTreeFilter(QWidget *parent) : ModelTreeFilter::~ModelTreeFilter() { delete d; - delete ui; } void ModelTreeFilter::setupFilter() @@ -48,50 +121,50 @@ void ModelTreeFilter::setupFilter() QStringList types = {"Any", "Package", "Component", "Class", "Diagram", "Item", "Dependency", "Association", "Inheritance", "Connection"}; d->m_typeModel.setStringList(types); - ui->typeComboBox->setModel(&d->m_typeModel); + d->typeComboBox->setModel(&d->m_typeModel); QStringList stereotypes = { }; d->m_stereotypesModel.setStringList(stereotypes); - ui->stereotypesComboBox->setModel(&d->m_stereotypesModel); + d->stereotypesComboBox->setModel(&d->m_stereotypesModel); QStringList directions = {"Any", "Outgoing (->)", "Incoming (<-)", "Bidirectional (<->)"}; d->m_directionModel.setStringList(directions); - ui->directionComboBox->setModel(&d->m_directionModel); + d->directionComboBox->setModel(&d->m_directionModel); } void ModelTreeFilter::resetView() { - ui->relationsCheckBox->setChecked(true); - ui->diagramElementsCheckBox->setChecked(false); + d->relationsCheckBox->setChecked(true); + d->diagramElementsCheckBox->setChecked(false); onViewChanged(); } void ModelTreeFilter::clearFilter() { - ui->typeComboBox->setCurrentIndex(0); - ui->stereotypesComboBox->clearEditText(); - ui->nameLineEdit->clear(); - ui->directionComboBox->setCurrentIndex(0); + d->typeComboBox->setCurrentIndex(0); + d->stereotypesComboBox->clearEditText(); + d->nameLineEdit->clear(); + d->directionComboBox->setCurrentIndex(0); onFilterChanged(); } void ModelTreeFilter::onViewChanged() { ModelTreeViewData modelTreeViewData; - modelTreeViewData.setShowRelations(ui->relationsCheckBox->isChecked()); - modelTreeViewData.setShowDiagramElements(ui->diagramElementsCheckBox->isChecked()); + modelTreeViewData.setShowRelations(d->relationsCheckBox->isChecked()); + modelTreeViewData.setShowDiagramElements(d->diagramElementsCheckBox->isChecked()); emit viewDataChanged(modelTreeViewData); } void ModelTreeFilter::onFilterChanged() { ModelTreeFilterData modelTreeFilterData; - modelTreeFilterData.setType((ModelTreeFilterData::Type) ui->typeComboBox->currentIndex()); + modelTreeFilterData.setType((ModelTreeFilterData::Type) d->typeComboBox->currentIndex()); modelTreeFilterData.setCustomId(QString()); - modelTreeFilterData.setStereotypes(ui->stereotypesComboBox->currentText().split(',', Qt::SkipEmptyParts)); - modelTreeFilterData.setName(ui->nameLineEdit->text().trimmed()); + modelTreeFilterData.setStereotypes(d->stereotypesComboBox->currentText().split(',', Qt::SkipEmptyParts)); + modelTreeFilterData.setName(d->nameLineEdit->text().trimmed()); if (modelTreeFilterData.type() == ModelTreeFilterData::Type::Dependency) - modelTreeFilterData.setDirection((ModelTreeFilterData::Direction) ui->directionComboBox->currentIndex()); + modelTreeFilterData.setDirection((ModelTreeFilterData::Direction) d->directionComboBox->currentIndex()); else modelTreeFilterData.setDirection(ModelTreeFilterData::Direction::Any); emit filterDataChanged(modelTreeFilterData); diff --git a/src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.h b/src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.h index 323a75f17f..1de7237c6e 100644 --- a/src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.h +++ b/src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.h @@ -10,10 +10,6 @@ namespace qmt { -namespace Ui { -class ModelTreeFilter; -} - class QMT_EXPORT ModelTreeFilter : public QWidget { Q_OBJECT @@ -36,7 +32,6 @@ private: void onFilterChanged(); private: - Ui::ModelTreeFilter *ui = nullptr; Private *d = nullptr; }; diff --git a/src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.ui b/src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.ui deleted file mode 100644 index 15cdd4437b..0000000000 --- a/src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.ui +++ /dev/null @@ -1,312 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>qmt::ModelTreeFilter</class> - <widget class="QWidget" name="qmt::ModelTreeFilter"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>307</width> - <height>370</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,0,0,1,0"> - <property name="spacing"> - <number>6</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>9</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <widget class="QWidget" name="viewWidget" native="true"> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <property name="leftMargin"> - <number>9</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>9</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QLabel" name="viewLabel"> - <property name="font"> - <font> - <bold>true</bold> - </font> - </property> - <property name="text"> - <string>View</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QPushButton" name="resetViewButton"> - <property name="font"> - <font> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>Reset</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QCheckBox" name="relationsCheckBox"> - <property name="font"> - <font> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>Relations</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="diagramElementsCheckBox"> - <property name="maximumSize"> - <size> - <width>16777215</width> - <height>0</height> - </size> - </property> - <property name="font"> - <font> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>Diagram Elements</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <spacer name="verticalSpacer_3"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>0</width> - <height>10</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="Line" name="line"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="frameShadow"> - <enum>QFrame::Plain</enum> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QWidget" name="filterWidget" native="true"> - <layout class="QVBoxLayout" name="verticalLayout_3" stretch="0,0,1"> - <property name="leftMargin"> - <number>9</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>9</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <widget class="QLabel" name="filterLabel"> - <property name="font"> - <font> - <bold>true</bold> - </font> - </property> - <property name="text"> - <string>Filter</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QPushButton" name="clearFilterButton"> - <property name="font"> - <font> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>Clear</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <spacer name="verticalSpacer_4"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>0</width> - <height>10</height> - </size> - </property> - </spacer> - </item> - <item> - <layout class="QFormLayout" name="filterGroup"> - <item row="0" column="0"> - <widget class="QLabel" name="typeLabel"> - <property name="font"> - <font> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>Type:</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="stereotypesLabel"> - <property name="font"> - <font> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>Stereotypes:</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QComboBox" name="typeComboBox"/> - </item> - <item row="1" column="1"> - <widget class="QComboBox" name="stereotypesComboBox"> - <property name="editable"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="nameLabel"> - <property name="text"> - <string>Name:</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QLineEdit" name="nameLineEdit"/> - </item> - <item row="3" column="0"> - <widget class="QLabel" name="directionLabel"> - <property name="font"> - <font> - <bold>false</bold> - </font> - </property> - <property name="text"> - <string>Direction:</string> - </property> - </widget> - </item> - <item row="3" column="1"> - <widget class="QComboBox" name="directionComboBox"/> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="Line" name="line_2"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="frameShadow"> - <enum>QFrame::Plain</enum> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> |