|
- #ifndef MYGRAPHICSVIEW_H
- #define MYGRAPHICSVIEW_H
-
- #include <QGraphicsView>
- #include <QDropEvent>
- #include <QDragEnterEvent>
- #include <QMimeData>
- #include <QKeyEvent>
- #include <QMouseEvent>
- #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
|