#ifndef MYGRAPHICSVIEW_H #define MYGRAPHICSVIEW_H #include #include #include #include #include #include #include "item.h" #include "connection.h" #include "creatitem.h" class MyGraphicsView : public QGraphicsView { Q_OBJECT public: explicit MyGraphicsView(QWidget *parent = nullptr); protected: void dragEnterEvent(QDragEnterEvent *event) override; void dragMoveEvent(QDragMoveEvent *event) override; void dropEvent(QDropEvent *event) override; void keyPressEvent(QKeyEvent *event) override; void contextMenuEvent(QContextMenuEvent *event) override; void mousePressEvent(QMouseEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; signals: void itemBoundToRegister(Item*, QString); void itemResetRegister(Item*, QString); private: Item* anchorItemAt(const QPoint& viewPos, Item::AnchorType& anchorType); bool drawingConnection_ = false; Item* startItem_ = nullptr; Item::AnchorType startAnchor_; QGraphicsLineItem* tempLine_ = nullptr; struct ClipInfo { QString input; }; static ClipInfo clipboard_; public slots: void onItemRequestCopy(Item*); void onItemRequestDelete(Item*); void onItemRequestBindRegister(Item*); void onItemRequestCompare(Item*); void onItemRequestReset(Item*); }; #endif // MYGRAPHICSVIEW_H