diff --git a/src/gui/network/Network.cpp b/src/gui/network/Network.cpp index 5433e08..f496cfa 100644 --- a/src/gui/network/Network.cpp +++ b/src/gui/network/Network.cpp @@ -53,6 +53,23 @@ Network::Network(QWidget* parent) mainLayout_->addWidget(view_); } +void Network::leftMousePress(QMouseEvent *event) +{ + QGraphicsItem* itemClicked = view_->itemAt(event->pos()); + bool isSocket = itemClicked && typeid(*itemClicked)==typeid(SocketGraphic); + if(isSocket) + { + std::cout << "SOCKET!\n"; + socketClicked(static_cast(itemClicked), event); + } + else + { + destroyFloatingEdge(); + } + +} + + void Network::socketClicked(SocketGraphic* socket, QMouseEvent *event) { std::cout << "socket clicked\n"; @@ -65,6 +82,17 @@ void Network::socketClicked(SocketGraphic* socket, QMouseEvent *event) } } +void Network::destroyFloatingEdge() +{ + if(floatingEdge_) + { + scene_->removeItem(floatingEdge_); + delete floatingEdge_; + floatingEdge_=nullptr; + } +} + + void Network::mouseMoved(QMouseEvent *event) { @@ -80,12 +108,6 @@ void Network::keyPressEvent(QKeyEvent *event) { if(event->key() == Qt::Key_Escape) { - // delete floating edge - if(floatingEdge_) - { - scene_->removeItem(floatingEdge_); - delete floatingEdge_; - floatingEdge_=nullptr; - } + destroyFloatingEdge(); } } diff --git a/src/gui/network/Network.h b/src/gui/network/Network.h index 183ec39..b27ae9e 100644 --- a/src/gui/network/Network.h +++ b/src/gui/network/Network.h @@ -12,12 +12,14 @@ public: Network(QWidget* parent = nullptr); void socketClicked(SocketGraphic* socket, QMouseEvent *event); void mouseMoved(QMouseEvent *event); + void leftMousePress(QMouseEvent *event); private: QLayout* mainLayout_; NetworkGraphicsScene* scene_; NetworkGraphicsView* view_; FloatingEdgeGraphic* floatingEdge_=nullptr; void keyPressEvent(QKeyEvent *event) override; + void destroyFloatingEdge(); protected: }; diff --git a/src/gui/network/NetworkGraphicsView.cpp b/src/gui/network/NetworkGraphicsView.cpp index e2d7916..5786941 100644 --- a/src/gui/network/NetworkGraphicsView.cpp +++ b/src/gui/network/NetworkGraphicsView.cpp @@ -56,13 +56,14 @@ void NetworkGraphicsView::mousePressEvent(QMouseEvent *event) void NetworkGraphicsView::leftMousePress(QMouseEvent *event) { - QGraphicsItem* itemClicked = itemAt(event->pos()); - bool isSocket = itemClicked && typeid(*itemClicked)==typeid(SocketGraphic); - if(isSocket) - { - std::cout << "SOCKET!\n"; - network_->socketClicked(static_cast(itemClicked), event); - } + network_->leftMousePress(event); + // QGraphicsItem* itemClicked = itemAt(event->pos()); + // bool isSocket = itemClicked && typeid(*itemClicked)==typeid(SocketGraphic); + // if(isSocket) + // { + // std::cout << "SOCKET!\n"; + // network_->socketClicked(static_cast(itemClicked), event); + // } }