aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp')
-rw-r--r--src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp58
1 files changed, 38 insertions, 20 deletions
diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp
index 6c25256249..3b87f22c51 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<QmlTimelineKeyframeGroup> allTimelineFrames(const QmlTimeline &timeline)
@@ -91,7 +91,7 @@ QList<QmlTimelineKeyframeGroup> allTimelineFrames(const QmlTimeline &timeline)
}
TimelineGraphicsScene::TimelineGraphicsScene(TimelineWidget *parent)
- : QGraphicsScene(parent)
+ : AbstractScrollGraphicsScene(parent)
, m_parent(parent)
, m_layout(new TimelineGraphicsLayout(this))
, m_currentFrameIndicator(new TimelineFrameHandle)
@@ -378,17 +378,17 @@ void TimelineGraphicsScene::commitCurrentFrame(qreal frame)
}
}
-QList<TimelineKeyframeItem *> TimelineGraphicsScene::selectedKeyframes() const
+QList<TimelineKeyframeItem *> AbstractScrollGraphicsScene::selectedKeyframes() const
{
return m_selectedKeyframes;
}
-bool TimelineGraphicsScene::hasSelection() const
+bool AbstractScrollGraphicsScene::hasSelection() const
{
return !m_selectedKeyframes.empty();
}
-bool TimelineGraphicsScene::isCurrent(TimelineKeyframeItem *keyframe) const
+bool AbstractScrollGraphicsScene::isCurrent(TimelineKeyframeItem *keyframe) const
{
if (m_selectedKeyframes.empty())
return false;
@@ -396,12 +396,12 @@ bool TimelineGraphicsScene::isCurrent(TimelineKeyframeItem *keyframe) const
return m_selectedKeyframes.back() == keyframe;
}
-bool TimelineGraphicsScene::isKeyframeSelected(TimelineKeyframeItem *keyframe) const
+bool AbstractScrollGraphicsScene::isKeyframeSelected(TimelineKeyframeItem *keyframe) const
{
return m_selectedKeyframes.contains(keyframe);
}
-bool TimelineGraphicsScene::multipleKeyframesSelected() const
+bool AbstractScrollGraphicsScene::multipleKeyframesSelected() const
{
return m_selectedKeyframes.count() > 1;
}
@@ -456,19 +456,19 @@ void TimelineGraphicsScene::invalidateRecordButtonsStatus()
TimelinePropertyItem::updateRecordButtonStatus(item);
}
-int TimelineGraphicsScene::scrollOffset() const
+int AbstractScrollGraphicsScene::scrollOffset() const
{
return m_scrollOffset;
}
-void TimelineGraphicsScene::setScrollOffset(int offset)
+void AbstractScrollGraphicsScene::setScrollOffset(int offset)
{
m_scrollOffset = offset;
emitScrollOffsetChanged();
update();
}
-QGraphicsView *TimelineGraphicsScene::graphicsView() const
+QGraphicsView *AbstractScrollGraphicsScene::graphicsView() const
{
for (auto *v : views())
if (v->objectName() == "SceneView")
@@ -477,7 +477,7 @@ QGraphicsView *TimelineGraphicsScene::graphicsView() const
return nullptr;
}
-QGraphicsView *TimelineGraphicsScene::rulerView() const
+QGraphicsView *AbstractScrollGraphicsScene::rulerView() const
{
for (auto *v : views())
if (v->objectName() == "RulerView")
@@ -491,7 +491,7 @@ QmlTimeline TimelineGraphicsScene::currentTimeline() const
return QmlTimeline(timelineModelNode());
}
-QRectF TimelineGraphicsScene::selectionBounds() const
+QRectF AbstractScrollGraphicsScene::selectionBounds() const
{
QRectF bbox;
@@ -501,7 +501,7 @@ QRectF TimelineGraphicsScene::selectionBounds() const
return bbox;
}
-void TimelineGraphicsScene::selectKeyframes(const SelectionMode &mode,
+void AbstractScrollGraphicsScene::selectKeyframes(const SelectionMode &mode,
const QList<TimelineKeyframeItem *> &items)
{
if (mode == SelectionMode::Remove || mode == SelectionMode::Toggle) {
@@ -536,13 +536,14 @@ void TimelineGraphicsScene::selectKeyframes(const SelectionMode &mode,
emit selectionChanged();
}
-void TimelineGraphicsScene::clearSelection()
+void AbstractScrollGraphicsScene::clearSelection()
{
for (auto *keyframe : m_selectedKeyframes)
if (keyframe)
keyframe->setHighlighted(false);
m_selectedKeyframes.clear();
+ emit selectionChanged();
}
QList<QGraphicsItem *> TimelineGraphicsScene::itemsAt(const QPointF &pos)
@@ -580,6 +581,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)
@@ -681,7 +683,7 @@ ModelNode TimelineGraphicsScene::timelineModelNode() const
void TimelineGraphicsScene::handleKeyframeDeletion()
{
QList<ModelNode> nodesToBeDeleted;
- for (auto keyframe : m_selectedKeyframes) {
+ for (auto keyframe : selectedKeyframes()) {
nodesToBeDeleted.append(keyframe->frameNode());
}
deleteKeyframes(nodesToBeDeleted);
@@ -710,7 +712,7 @@ void TimelineGraphicsScene::pasteKeyframesToTarget(const ModelNode &targetNode)
void TimelineGraphicsScene::copySelectedKeyframes()
{
TimelineActions::copyKeyframes(
- Utils::transform(m_selectedKeyframes, &TimelineKeyframeItem::frameNode));
+ Utils::transform(selectedKeyframes(), &TimelineKeyframeItem::frameNode));
}
void TimelineGraphicsScene::pasteSelectedKeyframes()
@@ -733,7 +735,6 @@ void TimelineGraphicsScene::deleteKeyframeGroup(const ModelNode &group)
ModelNode nonConst = group;
nonConst.destroy();
});
-
}
void TimelineGraphicsScene::deleteKeyframes(const QList<ModelNode> &frames)
@@ -756,7 +757,20 @@ void TimelineGraphicsScene::activateLayout()
m_layout->activate();
}
-void TimelineGraphicsScene::emitScrollOffsetChanged()
+AbstractView *TimelineGraphicsScene::abstractView() const
+{
+ return timelineView();
+}
+
+int AbstractScrollGraphicsScene::getScrollOffset(QGraphicsScene *scene)
+{
+ auto scrollScene = qobject_cast<AbstractScrollGraphicsScene*>(scene);
+ if (scrollScene)
+ return scrollScene->scrollOffset();
+ return 0;
+}
+
+void AbstractScrollGraphicsScene::emitScrollOffsetChanged()
{
for (QGraphicsItem *item : items())
TimelineMovableAbstractItem::emitScrollOffsetChanged(item);
@@ -783,4 +797,8 @@ bool TimelineGraphicsScene::event(QEvent *event)
}
}
+QmlDesigner::AbstractScrollGraphicsScene::AbstractScrollGraphicsScene(QWidget *parent)
+ : QGraphicsScene(parent)
+{}
+
} // namespace QmlDesigner