// Copyright (C) 2020 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #pragma once #include "abstractcustomtool.h" #include "selectionindicator.h" #include #include #include #include namespace QmlDesigner { class TransitionTool : public QObject, public AbstractCustomTool { Q_OBJECT public: TransitionTool(); ~TransitionTool(); void mousePressEvent(const QList &itemList, QGraphicsSceneMouseEvent *event) override; void mouseMoveEvent(const QList &itemList, QGraphicsSceneMouseEvent *event) override; void mouseReleaseEvent(const QList &itemList, QGraphicsSceneMouseEvent *event) override; void mouseDoubleClickEvent(const QList &itemList, QGraphicsSceneMouseEvent *event) override; void hoverMoveEvent(const QList &itemList, QGraphicsSceneMouseEvent *event) override; void keyPressEvent(QKeyEvent *event) override; void keyReleaseEvent(QKeyEvent *keyEvent) override; void dragLeaveEvent(const QList &itemList, QGraphicsSceneDragDropEvent * event) override; void dragMoveEvent(const QList &itemList, QGraphicsSceneDragDropEvent * event) override; void itemsAboutToRemoved(const QList &itemList) override; void selectedItemsChanged(const QList &itemList) override; void instancesCompleted(const QList &itemList) override; void instancesParentChanged(const QList &itemList) override; void instancePropertyChange(const QList > &propertyList) override; void clear() override; void formEditorItemsChanged(const QList &itemList) override; int wantHandleItem(const ModelNode &modelNode) const override; QString name() const override; void activateTool(); void unblock(); QGraphicsLineItem *lineItem(); QGraphicsRectItem *rectangleItem1(); QGraphicsRectItem *rectangleItem2(); private: FormEditorItem *currentFormEditorItem() const; void createItems(); void createTransition(FormEditorItem *item1, FormEditorItem *item2); FormEditorItem* m_formEditorItem; std::unique_ptr m_lineItem; std::unique_ptr m_rectangleItem1; std::unique_ptr m_rectangleItem2; bool m_blockEvents = true; }; } //QmlDesigner