Krita Source Code Documentation
Loading...
Searching...
No Matches
KisMouseClickEater Class Reference

#include <KisMouseClickEater.h>

+ Inheritance diagram for KisMouseClickEater:

Public Member Functions

bool eventFilter (QObject *watched, QEvent *event) override
 
 KisMouseClickEater (Qt::MouseButtons buttons, int clicksToEat=1, QObject *parent=0)
 
void reset ()
 
 ~KisMouseClickEater ()
 

Private Attributes

Qt::MouseButtons m_buttons = Qt::NoButton
 
int m_clicksHappened = 0
 
int m_clicksToEat = 1
 
QElapsedTimer m_timeSinceReset
 

Detailed Description

Definition at line 15 of file KisMouseClickEater.h.

Constructor & Destructor Documentation

◆ KisMouseClickEater()

KisMouseClickEater::KisMouseClickEater ( Qt::MouseButtons buttons,
int clicksToEat = 1,
QObject * parent = 0 )

Definition at line 12 of file KisMouseClickEater.cpp.

15 : QObject(parent),
17 m_clicksToEat(clicksToEat)
18{
19 reset();
20}
Qt::MouseButtons m_buttons
QString buttons(const T &ev)

References reset().

◆ ~KisMouseClickEater()

KisMouseClickEater::~KisMouseClickEater ( )

Definition at line 22 of file KisMouseClickEater.cpp.

23{
24}

Member Function Documentation

◆ eventFilter()

bool KisMouseClickEater::eventFilter ( QObject * watched,
QEvent * event )
override

Definition at line 32 of file KisMouseClickEater.cpp.

33{
34#ifdef Q_OS_WIN
35 const int tabletMouseEventsFlowDelay = 500;
36#else
37 const int tabletMouseEventsFlowDelay = 256;
38#endif
39
40 bool blockTimedRelease = false;
41
42 if (event->type() == QEvent::TabletMove) {
43 blockTimedRelease = true;
44 }
45
46 if (!blockTimedRelease &&
47 m_timeSinceReset.elapsed() > tabletMouseEventsFlowDelay) {
48 return QObject::eventFilter(watched, event);
49 }
50
51 if (event->type() == QEvent::MouseButtonPress ||
52 event->type() == QEvent::MouseButtonRelease) {
53
54 QMouseEvent *mevent = static_cast<QMouseEvent*>(event);
55 if (mevent->button() & m_buttons) {
57 return false;
58 }
59
60 if (event->type() == QEvent::MouseButtonRelease) {
62 }
63
64 return true;
65 }
66 }
67
68 if (event->type() == QEvent::MouseMove) {
69 QMouseEvent *mevent = static_cast<QMouseEvent*>(event);
70 if (mevent->buttons() & m_buttons) {
72 }
73 }
74
75 return QObject::eventFilter(watched, event);
76}
QElapsedTimer m_timeSinceReset

References m_buttons, m_clicksHappened, m_clicksToEat, and m_timeSinceReset.

◆ reset()

void KisMouseClickEater::reset ( )

Definition at line 26 of file KisMouseClickEater.cpp.

27{
29 m_timeSinceReset.start();
30}

References m_clicksHappened, and m_timeSinceReset.

Member Data Documentation

◆ m_buttons

Qt::MouseButtons KisMouseClickEater::m_buttons = Qt::NoButton
private

Definition at line 28 of file KisMouseClickEater.h.

◆ m_clicksHappened

int KisMouseClickEater::m_clicksHappened = 0
private

Definition at line 30 of file KisMouseClickEater.h.

◆ m_clicksToEat

int KisMouseClickEater::m_clicksToEat = 1
private

Definition at line 29 of file KisMouseClickEater.h.

◆ m_timeSinceReset

QElapsedTimer KisMouseClickEater::m_timeSinceReset
private

Definition at line 31 of file KisMouseClickEater.h.


The documentation for this class was generated from the following files: