diff options
author | Alessandro Portale <alessandro.portale@qt.io> | 2023-06-13 15:24:12 +0200 |
---|---|---|
committer | Alessandro Portale <alessandro.portale@qt.io> | 2023-06-22 15:35:05 +0000 |
commit | c9c029ebd4079babab66af1e4ffb4e59f0040d47 (patch) | |
tree | 124f8e459f0f05aa0638c9dcc15446b282847748 /src/plugins | |
parent | 22d5807799a9d24d6d5fc83c6936017a7faa36a4 (diff) |
QmlDesigner: Inline timelinesettingsdialog.ui
Change-Id: Ib590944e3dcf8f1069bdeeb08b206a9ca9de5ce1
Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins')
4 files changed, 60 insertions, 125 deletions
diff --git a/src/plugins/qmldesigner/CMakeLists.txt b/src/plugins/qmldesigner/CMakeLists.txt index 92d037e9b07..5935933f645 100644 --- a/src/plugins/qmldesigner/CMakeLists.txt +++ b/src/plugins/qmldesigner/CMakeLists.txt @@ -984,8 +984,7 @@ extend_qtc_plugin(QmlDesigner timelinepropertyitem.cpp timelinepropertyitem.h timelinesectionitem.cpp timelinesectionitem.h timelineselectiontool.cpp timelineselectiontool.h - timelinesettingsdialog.cpp - timelinesettingsdialog.h timelinesettingsdialog.ui + timelinesettingsdialog.cpp timelinesettingsdialog.h timelinesettingsmodel.cpp timelinesettingsmodel.h timelinetoolbar.cpp timelinetoolbar.h timelinetoolbutton.cpp timelinetoolbutton.h diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsdialog.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsdialog.cpp index bd4b1c23cdd..e07d394dc13 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsdialog.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsdialog.cpp @@ -2,7 +2,6 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "timelinesettingsdialog.h" -#include "ui_timelinesettingsdialog.h" #include "timelineanimationform.h" #include "timelineform.h" @@ -19,9 +18,15 @@ #include <variantproperty.h> #include <utils/algorithm.h> +#include <utils/layoutbuilder.h> #include <utils/qtcassert.h> +#include <QDialogButtonBox> +#include <QHeaderView> #include <QKeyEvent> +#include <QSpinBox> +#include <QTabWidget> +#include <QTableView> #include <QToolBar> namespace QmlDesigner { @@ -75,12 +80,12 @@ static void setTabForAnimation(QTabWidget *tabWidget, const ModelNode &animation TimelineSettingsDialog::TimelineSettingsDialog(QWidget *parent, TimelineView *view) : QDialog(parent) - , ui(new Ui::TimelineSettingsDialog) , m_timelineView(view) { - m_timelineSettingsModel = new TimelineSettingsModel(this, view); + resize(520, 600); + setModal(true); - ui->setupUi(this); + m_timelineSettingsModel = new TimelineSettingsModel(this, view); auto *timelineCornerWidget = new QToolBar; @@ -93,7 +98,7 @@ TimelineSettingsDialog::TimelineSettingsDialog(QWidget *parent, TimelineView *vi }); connect(timelineRemoveAction, &QAction::triggered, this, [this]() { - QmlTimeline timeline = getTimelineFromTabWidget(ui->timelineTab); + QmlTimeline timeline = getTimelineFromTabWidget(m_timelineTab); if (timeline.isValid()) { timeline.destroy(); setupTimelines(QmlTimeline()); @@ -103,10 +108,10 @@ TimelineSettingsDialog::TimelineSettingsDialog(QWidget *parent, TimelineView *vi timelineCornerWidget->addAction(timelineAddAction); timelineCornerWidget->addAction(timelineRemoveAction); - ui->timelineTab->setCornerWidget(timelineCornerWidget, Qt::TopRightCorner); + m_timelineTab = new QTabWidget; + m_timelineTab->setCornerWidget(timelineCornerWidget, Qt::TopRightCorner); auto *animationCornerWidget = new QToolBar; - auto *animationAddAction = new QAction(TimelineIcons::ADD_TIMELINE.icon(), tr("Add Animation")); auto *animationRemoveAction = new QAction(TimelineIcons::REMOVE_TIMELINE.icon(), tr("Remove Animation")); @@ -119,21 +124,40 @@ TimelineSettingsDialog::TimelineSettingsDialog(QWidget *parent, TimelineView *vi }); connect(animationRemoveAction, &QAction::triggered, this, [this]() { - ModelNode node = getAnimationFromTabWidget(ui->animationTab); + ModelNode node = getAnimationFromTabWidget(m_animationTab); if (node.isValid()) { node.destroy(); setupAnimations(m_currentTimeline); } }); - ui->animationTab->setCornerWidget(animationCornerWidget, Qt::TopRightCorner); - ui->buttonBox->clearFocus(); + m_animationTab = new QTabWidget; + m_animationTab->setCornerWidget(animationCornerWidget, Qt::TopRightCorner); + + m_tableView = new QTableView; + QSizePolicy sp(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); + sp.setVerticalStretch(1); + m_tableView->setSizePolicy(sp); + + auto buttonBox = new QDialogButtonBox; + buttonBox->setStandardButtons(QDialogButtonBox::Close); + buttonBox->clearFocus(); + connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); + connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + + using namespace Layouting; + Column { + m_timelineTab, + m_animationTab, + m_tableView, + buttonBox, + }.attachTo(this); setupTimelines(QmlTimeline()); setupAnimations(m_currentTimeline); - connect(ui->timelineTab, &QTabWidget::currentChanged, this, [this]() { - m_currentTimeline = getTimelineFromTabWidget(ui->timelineTab); + connect(m_timelineTab, &QTabWidget::currentChanged, this, [this]() { + m_currentTimeline = getTimelineFromTabWidget(m_timelineTab); setupAnimations(m_currentTimeline); }); setupTableView(); @@ -142,12 +166,7 @@ TimelineSettingsDialog::TimelineSettingsDialog(QWidget *parent, TimelineView *vi void TimelineSettingsDialog::setCurrentTimeline(const QmlTimeline &timeline) { m_currentTimeline = timeline; - setTabForTimeline(ui->timelineTab, m_currentTimeline); -} - -TimelineSettingsDialog::~TimelineSettingsDialog() -{ - delete ui; + setTabForTimeline(m_timelineTab, m_currentTimeline); } void TimelineSettingsDialog::keyPressEvent(QKeyEvent *event) @@ -165,17 +184,17 @@ void TimelineSettingsDialog::keyPressEvent(QKeyEvent *event) void TimelineSettingsDialog::setupTableView() { - ui->tableView->setModel(m_timelineSettingsModel); - m_timelineSettingsModel->setupDelegates(ui->tableView); - ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); - ui->tableView->verticalHeader()->hide(); - ui->tableView->setSelectionMode(QAbstractItemView::NoSelection); + m_tableView->setModel(m_timelineSettingsModel); + m_timelineSettingsModel->setupDelegates(m_tableView); + m_tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); + m_tableView->verticalHeader()->hide(); + m_tableView->setSelectionMode(QAbstractItemView::NoSelection); m_timelineSettingsModel->resetModel(); } void TimelineSettingsDialog::setupTimelines(const QmlTimeline &timeline) { - deleteAllTabs(ui->timelineTab); + deleteAllTabs(m_timelineTab); const QList<QmlTimeline> &timelines = m_timelineView->getTimelines(); @@ -183,7 +202,7 @@ void TimelineSettingsDialog::setupTimelines(const QmlTimeline &timeline) m_currentTimeline = QmlTimeline(); auto timelineForm = new TimelineForm(this); timelineForm->setDisabled(true); - ui->timelineTab->addTab(timelineForm, tr("No Timeline")); + m_timelineTab->addTab(timelineForm, tr("No Timeline")); return; } @@ -196,14 +215,14 @@ void TimelineSettingsDialog::setupTimelines(const QmlTimeline &timeline) m_currentTimeline = timelines.constFirst(); } - setTabForTimeline(ui->timelineTab, m_currentTimeline); + setTabForTimeline(m_timelineTab, m_currentTimeline); setupAnimations(m_currentTimeline); m_timelineSettingsModel->resetModel(); } void TimelineSettingsDialog::setupAnimations(const ModelNode &animation) { - deleteAllTabs(ui->animationTab); + deleteAllTabs(m_animationTab); const QList<ModelNode> animations = m_timelineView->getAnimations(m_currentTimeline); @@ -213,7 +232,7 @@ void TimelineSettingsDialog::setupAnimations(const ModelNode &animation) if (animations.isEmpty()) { auto animationForm = new TimelineAnimationForm(this); animationForm->setDisabled(true); - ui->animationTab->addTab(animationForm, tr("No Animation")); + m_animationTab->addTab(animationForm, tr("No Animation")); if (currentTimelineForm()) currentTimelineForm()->setHasAnimation(false); } else { @@ -222,14 +241,14 @@ void TimelineSettingsDialog::setupAnimations(const ModelNode &animation) } if (animation.isValid()) - setTabForAnimation(ui->animationTab, animation); + setTabForAnimation(m_animationTab, animation); m_timelineSettingsModel->resetModel(); } void TimelineSettingsDialog::addTimelineTab(const QmlTimeline &node) { auto timelineForm = new TimelineForm(this); - ui->timelineTab->addTab(timelineForm, node.modelNode().displayName()); + m_timelineTab->addTab(timelineForm, node.modelNode().displayName()); timelineForm->setTimeline(node); setupAnimations(ModelNode()); } @@ -237,13 +256,13 @@ void TimelineSettingsDialog::addTimelineTab(const QmlTimeline &node) void TimelineSettingsDialog::addAnimationTab(const ModelNode &node) { auto timelineAnimationForm = new TimelineAnimationForm(this); - ui->animationTab->addTab(timelineAnimationForm, node.displayName()); + m_animationTab->addTab(timelineAnimationForm, node.displayName()); timelineAnimationForm->setup(node); } TimelineForm *TimelineSettingsDialog::currentTimelineForm() const { - return qobject_cast<TimelineForm *>(ui->timelineTab->currentWidget()); + return qobject_cast<TimelineForm *>(m_timelineTab->currentWidget()); } } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsdialog.h b/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsdialog.h index a1626bc4077..e31cc3f1e5a 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsdialog.h +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsdialog.h @@ -7,7 +7,11 @@ #include <QDialog> -QT_FORWARD_DECLARE_CLASS(QSpinBox) +QT_BEGIN_NAMESPACE +class QSpinBox; +class QTabWidget; +class QTableView; +QT_END_NAMESPACE namespace QmlDesigner { @@ -16,10 +20,6 @@ class TimelineAnimationForm; class TimelineView; class TimelineSettingsModel; -namespace Ui { -class TimelineSettingsDialog; -} - class TimelineSettingsDialog : public QDialog { Q_OBJECT @@ -27,7 +27,6 @@ class TimelineSettingsDialog : public QDialog public: explicit TimelineSettingsDialog(QWidget *parent, TimelineView *view); void setCurrentTimeline(const QmlTimeline &timeline); - ~TimelineSettingsDialog() override; protected: void keyPressEvent(QKeyEvent *event) override; @@ -42,7 +41,9 @@ private: TimelineForm *currentTimelineForm() const; - Ui::TimelineSettingsDialog *ui; + QTabWidget *m_timelineTab; + QTabWidget *m_animationTab; + QTableView *m_tableView; TimelineView *m_timelineView; QmlTimeline m_currentTimeline; diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsdialog.ui b/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsdialog.ui deleted file mode 100644 index f3dfa6f0947..00000000000 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsdialog.ui +++ /dev/null @@ -1,84 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>QmlDesigner::TimelineSettingsDialog</class> - <widget class="QDialog" name="QmlDesigner::TimelineSettingsDialog"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>519</width> - <height>582</height> - </rect> - </property> - <property name="windowTitle"> - <string>Timeline Settings</string> - </property> - <property name="modal"> - <bool>true</bool> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QTabWidget" name="timelineTab"> - <property name="currentIndex"> - <number>-1</number> - </property> - </widget> - </item> - <item> - <widget class="QTabWidget" name="animationTab"> - <property name="currentIndex"> - <number>-1</number> - </property> - </widget> - </item> - <item> - <widget class="QTableView" name="tableView"/> - </item> - <item> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="standardButtons"> - <set>QDialogButtonBox::Close</set> - </property> - </widget> - </item> - </layout> - </widget> - <resources/> - <connections> - <connection> - <sender>buttonBox</sender> - <signal>accepted()</signal> - <receiver>QmlDesigner::TimelineSettingsDialog</receiver> - <slot>accept()</slot> - <hints> - <hint type="sourcelabel"> - <x>248</x> - <y>254</y> - </hint> - <hint type="destinationlabel"> - <x>157</x> - <y>274</y> - </hint> - </hints> - </connection> - <connection> - <sender>buttonBox</sender> - <signal>rejected()</signal> - <receiver>QmlDesigner::TimelineSettingsDialog</receiver> - <slot>reject()</slot> - <hints> - <hint type="sourcelabel"> - <x>316</x> - <y>260</y> - </hint> - <hint type="destinationlabel"> - <x>286</x> - <y>274</y> - </hint> - </hints> - </connection> - </connections> -</ui> |