Files
triangles_v5/src/qt/dialog_move_handler.cpp
T
TrianglesCommunityProject 627c13c0fc Black Pharao Release
Version 4.2.1.0
- wallet makeover
- staking behaviour adjustments
- non mandatory update-
- no need for updating daemons (only recomended if used for staking)
2015-07-22 23:00:36 +02:00

51 lines
1.3 KiB
C++

#include "dialog_move_handler.h"
#include <QEvent>
#include <QMouseEvent>
#include <QWidget>
DialogMoveHandler::DialogMoveHandler(QWidget *target)
: QObject(target)
, _moving(false)
, _lastPosition(0, 0)
{
}
bool DialogMoveHandler::eventFilter(QObject *obj, QEvent *event)
{
QMouseEvent* mouseEvent = static_cast<QMouseEvent*>(event);
switch (event->type())
{
case QEvent::MouseButtonPress:
if ( mouseEvent->button() == Qt::LeftButton)
{
_moving = true;
_lastPosition = mouseEvent->globalPos();
return true;
}
break;
case QEvent::MouseMove:
if (mouseEvent->buttons().testFlag(Qt::LeftButton) && _moving)
{
QWidget* target = qobject_cast<QWidget*>(parent());
if (target)
{
target->move(target->pos() + (mouseEvent->globalPos() - _lastPosition));
_lastPosition = mouseEvent->globalPos();
return true;
}
}
break;
case QEvent::MouseButtonRelease:
if (mouseEvent->button() == Qt::LeftButton)
{
_moving = false;
return true;
}
break;
default:
break;
}
return QObject::eventFilter(obj, event);
}