// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #pragma once #include "abstractformeditortool.h" #include "movemanipulator.h" #include "selectionindicator.h" #include "resizeindicator.h" #include "rotationindicator.h" #include "anchorindicator.h" #include "bindingindicator.h" #include "contentnoteditableindicator.h" namespace QmlDesigner { class MoveTool : public AbstractFormEditorTool { public: MoveTool(FormEditorView* editorView); ~MoveTool() override; 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 updateMoveManipulator(); void beginWithPoint(const QPointF &beginPoint); void clear() override; void start() override; void formEditorItemsChanged(const QList &itemList) override; void focusLost() override; protected: static bool haveSameParent(const QList &itemList); static QList movingItems(const QList &selectedItemList); static bool isAncestorOfAllItems(FormEditorItem* maybeAncestorItem, const QList &itemList); static FormEditorItem* ancestorIfOtherItemsAreChild(const QList &itemList); private: MoveManipulator m_moveManipulator; SelectionIndicator m_selectionIndicator; ResizeIndicator m_resizeIndicator; RotationIndicator m_rotationIndicator; AnchorIndicator m_anchorIndicator; BindingIndicator m_bindingIndicator; ContentNotEditableIndicator m_contentNotEditableIndicator; QList m_movingItems; }; } // namespace QmlDesigner