diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp index 6c252562493..326fa7d44b1 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp @@ -71,10 +71,10 @@ namespace QmlDesigner { static int deleteKey() { - if (Utils::HostOsInfo::isMacHost()) - return Qt::Key_Backspace; + if (Utils::HostOsInfo::isMacHost()) + return Qt::Key_Backspace; - return Qt::Key_Delete; + return Qt::Key_Delete; } QList allTimelineFrames(const QmlTimeline &timeline) @@ -580,6 +580,7 @@ void TimelineGraphicsScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) /* The tool has handle the event last. */ QGraphicsScene::mouseReleaseEvent(event); m_tools.mouseReleaseEvent(topItem, event); + m_parent->setFocus(); } void TimelineGraphicsScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) @@ -733,7 +734,6 @@ void TimelineGraphicsScene::deleteKeyframeGroup(const ModelNode &group) ModelNode nonConst = group; nonConst.destroy(); }); - } void TimelineGraphicsScene::deleteKeyframes(const QList &frames) diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinetooldelegate.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinetooldelegate.cpp index d84a4619998..cbf11779129 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinetooldelegate.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinetooldelegate.cpp @@ -59,13 +59,20 @@ void TimelineToolDelegate::mousePressEvent(TimelineMovableAbstractItem *item, QGraphicsSceneMouseEvent *event) { if (event->buttons() == Qt::LeftButton && hitCanvas(event)) { - m_start = event->scenePos(); + m_start = event->scenePos(); if (item) { setItem(item, event->modifiers()); m_currentTool = m_moveTool.get(); } else m_currentTool = m_selectTool.get(); + + } else if (event->buttons() == Qt::RightButton && event->modifiers() == Qt::NoModifier + && hitCanvas(event) && item) { + + setItem(item, Qt::NoModifier); + reset(); + } else m_currentTool = nullptr; diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp index 1ba0d603420..a1de7bca1a8 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelineview.cpp @@ -181,6 +181,7 @@ void TimelineView::instancePropertyChanged(const QListinvalidateTimelinePosition(pair.first); + updateAnimationCurveEditor(); } } else if (!updated && timeline.hasTimeline(pair.first, pair.second)) { m_timelineWidget->graphicsScene()->invalidateCurrentValues(); @@ -198,7 +199,7 @@ void TimelineView::variantPropertiesChanged(const QList &proper AbstractView::PropertyChangeFlags /*propertyChange*/) { for (const auto &property : propertyList) { - if (property.name() == "frame" + if ((property.name() == "frame" || property.name() == "value") && property.parentModelNode().type() == "QtQuick.Timeline.Keyframe" && property.parentModelNode().isValid() && property.parentModelNode().hasParentProperty()) { diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp index ed727dc4cce..2360f01b7ae 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp @@ -591,6 +591,11 @@ void TimelineWidget::setTimelineActive(bool b) } } +void TimelineWidget::setFocus() +{ + m_graphicsView->setFocus(); +} + void TimelineWidget::showEvent(QShowEvent *event) { Q_UNUSED(event) diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.h b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.h index 4d0e4711cbe..23cd338d61a 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.h +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.h @@ -70,6 +70,7 @@ public: void setTimelineId(const QString &id); void setTimelineActive(bool b); + void setFocus(); public slots: void selectionChanged();