forked from qt-creator/qt-creator
QmlDesigner: Inline timelinesettingsdialog.ui
Change-Id: Ib590944e3dcf8f1069bdeeb08b206a9ca9de5ce1 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -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>
|
Reference in New Issue
Block a user