aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/modelinglib
diff options
context:
space:
mode:
authorAlessandro Portale <alessandro.portale@qt.io>2024-04-17 11:54:30 +0200
committerAlessandro Portale <alessandro.portale@qt.io>2024-05-02 15:18:20 +0000
commitf625c2682c2bf186c56f9e8f0b92a4d24ac0da59 (patch)
tree44842e774510bfae7b8f50a6d12ff164f0d37c39 /src/libs/modelinglib
parenta90368d7041866e3355e78e3098c705b73c5b334 (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.txt1
-rw-r--r--src/libs/modelinglib/modelinglib.qbs1
-rw-r--r--src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.cpp131
-rw-r--r--src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.h5
-rw-r--r--src/libs/modelinglib/qmt/model_widgets_ui/modeltreefilter.ui312
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>