diff options
Diffstat (limited to 'src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp')
-rw-r--r-- | src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp index 098fe766a0..2360f01b7a 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp @@ -58,6 +58,7 @@ #include <QSlider> #include <QVBoxLayout> #include <QtGlobal> +#include <QSpacerItem> namespace QmlDesigner { @@ -118,6 +119,7 @@ TimelineWidget::TimelineWidget(TimelineView *view) , m_timelineView(view) , m_graphicsScene(new TimelineGraphicsScene(this)) , m_addButton(new QPushButton(this)) + , m_onboardingContainer(new QWidget(this)) { setWindowTitle(tr("Timeline", "Title of timeline view")); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); @@ -185,6 +187,50 @@ TimelineWidget::TimelineWidget(TimelineView *view) m_addButton->setFlat(true); m_addButton->setFixedSize(32, 32); + + widgetLayout->addWidget(m_onboardingContainer); + + auto *onboardingTopLabel = new QLabel(m_onboardingContainer); + auto *onboardingBottomLabel = new QLabel(m_onboardingContainer); + auto *onboardingBottomIcon = new QLabel(m_onboardingContainer); + + auto *onboardingLayout = new QVBoxLayout; + auto *onboardingSublayout = new QHBoxLayout; + auto *leftSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + auto *rightSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + auto *topSpacer = new QSpacerItem(40, 20, QSizePolicy::Minimum, QSizePolicy::Expanding); + auto *bottomSpacer = new QSpacerItem(40, 20, QSizePolicy::Minimum, QSizePolicy::Expanding); + + QString labelText = + tr("This file does not contain a timeline. <br><br> \ + To create an animation, add a timeline by clicking the + button."); + onboardingTopLabel->setText(labelText); + onboardingTopLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + + m_onboardingContainer->setLayout(onboardingLayout); + onboardingLayout->setContentsMargins(0, 0, 0, 0); + onboardingLayout->setSpacing(0); + onboardingLayout->addSpacerItem(topSpacer); + onboardingLayout->addWidget(onboardingTopLabel); + onboardingLayout->addLayout(onboardingSublayout); + + onboardingSublayout->setContentsMargins(0, 0, 0, 0); + onboardingSublayout->setSpacing(0); + onboardingSublayout->addSpacerItem(leftSpacer); + + onboardingBottomLabel->setAlignment(Qt::AlignRight | Qt::AlignTop); + onboardingBottomLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + onboardingSublayout->addWidget(onboardingBottomLabel); + onboardingBottomLabel->setText(tr("To edit the timeline settings, click ")); + + onboardingBottomIcon->setAlignment(Qt::AlignLeft | Qt::AlignTop); + onboardingBottomIcon->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + onboardingSublayout->addWidget(onboardingBottomIcon); + onboardingBottomIcon->setPixmap(TimelineIcons::ANIMATION.pixmap()); + + onboardingSublayout->addSpacerItem(rightSpacer); + onboardingLayout->addSpacerItem(bottomSpacer); + widgetLayout->addLayout(contentLayout); this->setLayout(widgetLayout); @@ -517,11 +563,11 @@ void TimelineWidget::setTimelineId(const QString &id) if (m_timelineView->isAttached() && !empty) { m_toolbar->setCurrentTimeline(m_timelineView->modelNodeForId(id)); m_toolbar->setCurrentState(m_timelineView->currentState().name()); - m_timelineView->setTimelineRecording(false); } else { m_toolbar->setCurrentTimeline({}); m_toolbar->setCurrentState({}); } + m_timelineView->setTimelineRecording(false); } void TimelineWidget::setTimelineActive(bool b) @@ -532,6 +578,7 @@ void TimelineWidget::setTimelineActive(bool b) m_rulerView->setVisible(true); m_scrollbar->setVisible(true); m_addButton->setVisible(false); + m_onboardingContainer->setVisible(false); m_graphicsView->update(); m_rulerView->update(); } else { @@ -540,9 +587,15 @@ void TimelineWidget::setTimelineActive(bool b) m_rulerView->setVisible(false); m_scrollbar->setVisible(false); m_addButton->setVisible(true); + m_onboardingContainer->setVisible(true); } } +void TimelineWidget::setFocus() +{ + m_graphicsView->setFocus(); +} + void TimelineWidget::showEvent(QShowEvent *event) { Q_UNUSED(event) |