logic: don't use shared_ptr for QtGraphNode and QtGraphEdge anymore

* fixes crashes on events to deleted Qt elements
This commit is contained in:
Eberhard Graether
2017-11-17 22:30:48 +01:00
parent 634601b4b6
commit b887a4a89e
15 changed files with 159 additions and 179 deletions
@@ -4,7 +4,7 @@
#include "qt/view/graphElements/QtGraphNode.h"
QtGraphNodeComponentClickable::QtGraphNodeComponentClickable(const std::weak_ptr<QtGraphNode>& graphNode)
QtGraphNodeComponentClickable::QtGraphNodeComponentClickable(QtGraphNode* graphNode)
: QtGraphNodeComponent(graphNode)
, m_mousePos(0.0f, 0.0f)
, m_mouseMoved(false)
@@ -35,11 +35,7 @@ void QtGraphNodeComponentClickable::nodeMouseReleaseEvent(QGraphicsSceneMouseEve
{
if (!m_mouseMoved)
{
std::shared_ptr<QtGraphNode> node = m_graphNode.lock();
if (node != NULL)
{
node->onClick();
event->accept();
}
m_graphNode->onClick();
event->accept();
}
}