You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- #ifndef MYGRAPHICSVIEW_H
- #define MYGRAPHICSVIEW_H
-
- #include <QGraphicsView>
- #include <QDropEvent>
- #include <QDragEnterEvent>
- #include <QMimeData>
- #include <QKeyEvent>
- #include <QMouseEvent>
- #include "item.h"
- #include "connection.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;
-
- 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*);
- };
-
- #endif // MYGRAPHICSVIEW_H
|