src: refactored UI elements and graphics file structure

* split QtIconButton into multiple files
* moved graph elements from view to graphics
* structured elements into sub directories
This commit is contained in:
Eberhard Graether
2019-05-29 18:31:11 +02:00
parent 1cc61a93a2
commit 841a87469b
117 changed files with 518 additions and 483 deletions
@@ -0,0 +1,82 @@
#include "QtGraphNodeComponentClickable.h"
#include <QGraphicsSceneEvent>
#include "QtGraphNode.h"
QtGraphNodeComponentClickable::QtGraphNodeComponentClickable(QtGraphNode* graphNode)
: QtGraphNodeComponent(graphNode)
, m_mousePos(0.0f, 0.0f)
, m_mouseMoved(false)
{
}
QtGraphNodeComponentClickable::~QtGraphNodeComponentClickable()
{
}
void QtGraphNodeComponentClickable::nodeMousePressEvent(QGraphicsSceneMouseEvent* event)
{
if (event->button() != Qt::LeftButton && event->button() != Qt::MiddleButton)
{
return;
}
m_mousePos = Vec2i(event->scenePos().x(), event->scenePos().y());
m_mouseMoved = false;
if (event->button() == Qt::MiddleButton)
{
event->accept();
}
}
void QtGraphNodeComponentClickable::nodeMouseMoveEvent(QGraphicsSceneMouseEvent* event)
{
Vec2i mousePos = Vec2i(event->scenePos().x(), event->scenePos().y());
if ((mousePos - m_mousePos).getLength() > 1.0f)
{
m_mouseMoved = true;
}
}
void QtGraphNodeComponentClickable::nodeMouseReleaseEvent(QGraphicsSceneMouseEvent* event)
{
if (event->button() != Qt::LeftButton && event->button() != Qt::MiddleButton)
{
return;
}
if (!m_mouseMoved)
{
if (event->modifiers() & Qt::ShiftModifier && event->button() == Qt::LeftButton)
{
m_graphNode->onCollapseExpand();
}
else if (event->modifiers() & Qt::ControlModifier && event->modifiers() & Qt::AltModifier && event->button() == Qt::LeftButton)
{
m_graphNode->onShowDefinition(false);
}
else if (event->modifiers() & Qt::ControlModifier && event->button() == Qt::LeftButton)
{
m_graphNode->onShowDefinition(true);
}
else if (event->modifiers() & Qt::AltModifier && event->button() == Qt::LeftButton)
{
m_graphNode->onHide();
}
else
{
if (event->button() == Qt::MiddleButton)
{
m_graphNode->onMiddleClick();
}
else
{
m_graphNode->onClick();
}
}
event->accept();
}
}