mirror of
https://gitee.com/drabel/LibQQt.git
synced 2025-01-04 10:18:44 +08:00
fix checknum action
This commit is contained in:
parent
33de3a1580
commit
88da5a3891
@ -13,8 +13,8 @@ QQtCanClickWidget::~QQtCanClickWidget()
|
|||||||
|
|
||||||
void QQtCanClickWidget::mousePressEvent ( QMouseEvent* event )
|
void QQtCanClickWidget::mousePressEvent ( QMouseEvent* event )
|
||||||
{
|
{
|
||||||
// if ( mClickHelper )
|
if ( mClickHelper )
|
||||||
// mClickHelper->mousePressEvent ( event, this );
|
mClickHelper->mousePressEvent ( event, this );
|
||||||
return QQtWidget::mousePressEvent ( event );
|
return QQtWidget::mousePressEvent ( event );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,8 +4,12 @@ QQtClickHelper::QQtClickHelper ( QObject* parent )
|
|||||||
{
|
{
|
||||||
mLongClickInterval = longClickInterval;
|
mLongClickInterval = longClickInterval;
|
||||||
|
|
||||||
t1_press = QTime::currentTime();
|
now_press = QTime::currentTime().addMSecs ( 1 );
|
||||||
t2_release = t1_press;
|
now_release = QTime::currentTime().addMSecs ( 2 );
|
||||||
|
|
||||||
|
nClickNumWithCancel = 0;
|
||||||
|
nLongClickNumWithCancel = 0;
|
||||||
|
nTotalClickNumWithCancel = 0;
|
||||||
|
|
||||||
nClickNum = 0;
|
nClickNum = 0;
|
||||||
nLongClickNum = 0;
|
nLongClickNum = 0;
|
||||||
@ -24,22 +28,22 @@ void QQtClickHelper::mousePressEvent ( QMouseEvent* event, QWidget* userWidget )
|
|||||||
p2debug() << "press" << event->pos() << userWidget;
|
p2debug() << "press" << event->pos() << userWidget;
|
||||||
mPoint = event->pos();
|
mPoint = event->pos();
|
||||||
mClickType = QQtClick;
|
mClickType = QQtClick;
|
||||||
t1_press = QTime::currentTime();
|
now_press = QTime::currentTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QQtClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* userWidget )
|
void QQtClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* userWidget )
|
||||||
{
|
{
|
||||||
p2debug() << "release" << event->pos() << userWidget;
|
p2debug() << "release" << event->pos() << userWidget;
|
||||||
//这一次 current click
|
//这一次 current click
|
||||||
QTime t2_release_preview = t2_release;
|
QTime t2_release_preview = now_release;
|
||||||
t2_release = QTime::currentTime();
|
now_release = QTime::currentTime();
|
||||||
//这里加了个判断,其实肯定>=0
|
//这里加了个判断,其实肯定>=0
|
||||||
if ( t1_press.msecsTo ( t2_release ) >= 0 && t1_press.msecsTo ( t2_release ) <= mLongClickInterval )
|
if ( now_press.msecsTo ( now_release ) >= 0 && now_press.msecsTo ( now_release ) <= mLongClickInterval )
|
||||||
{
|
{
|
||||||
//单击发生
|
//单击发生
|
||||||
mClickType = QQtClick;
|
mClickType = QQtClick;
|
||||||
}
|
}
|
||||||
else if ( t1_press.msecsTo ( t2_release ) >= 0 && t1_press.msecsTo ( t2_release ) > mLongClickInterval )
|
else if ( now_press.msecsTo ( now_release ) >= 0 && now_press.msecsTo ( now_release ) > mLongClickInterval )
|
||||||
{
|
{
|
||||||
//长击发生
|
//长击发生
|
||||||
mClickType = QQtLongClick;
|
mClickType = QQtLongClick;
|
||||||
@ -47,8 +51,8 @@ void QQtClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* userWidget
|
|||||||
//这次点击,
|
//这次点击,
|
||||||
//上次的release竟然比press晚,说明press没发生,置位click
|
//上次的release竟然比press晚,说明press没发生,置位click
|
||||||
//第一次click, 上一次release=press也在这里被置位click
|
//第一次click, 上一次release=press也在这里被置位click
|
||||||
if ( t2_release_preview.msecsTo ( t2_release ) >= 0
|
if ( t2_release_preview.msecsTo ( now_release ) >= 0
|
||||||
&& t2_release_preview.msecsTo ( t1_press ) <= 0 )
|
&& t2_release_preview.msecsTo ( now_press ) <= 0 )
|
||||||
{
|
{
|
||||||
mClickType = QQtClick;
|
mClickType = QQtClick;
|
||||||
}
|
}
|
||||||
@ -58,7 +62,7 @@ void QQtClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* userWidget
|
|||||||
if ( mClickType == QQtLongClick )
|
if ( mClickType == QQtLongClick )
|
||||||
{
|
{
|
||||||
//计算点击数目
|
//计算点击数目
|
||||||
checkClickNum();
|
checkClickNumWithCancel();
|
||||||
|
|
||||||
//修改状态
|
//修改状态
|
||||||
mClickType = QQtNullClick;
|
mClickType = QQtNullClick;
|
||||||
@ -75,6 +79,8 @@ void QQtClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* userWidget
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkClickNum ( QQtLongClick );
|
||||||
|
|
||||||
//发送长信号
|
//发送长信号
|
||||||
p2debug() << "send long click " ;
|
p2debug() << "send long click " ;
|
||||||
emit longClick();
|
emit longClick();
|
||||||
@ -86,7 +92,7 @@ void QQtClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* userWidget
|
|||||||
else if ( mClickType == QQtClick )
|
else if ( mClickType == QQtClick )
|
||||||
{
|
{
|
||||||
//计算点击数目
|
//计算点击数目
|
||||||
checkClickNum();
|
checkClickNumWithCancel();
|
||||||
|
|
||||||
//修改状态
|
//修改状态
|
||||||
mClickType = QQtNullClick;
|
mClickType = QQtNullClick;
|
||||||
@ -103,6 +109,8 @@ void QQtClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* userWidget
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkClickNum ( QQtClick );
|
||||||
|
|
||||||
//发送单击信号
|
//发送单击信号
|
||||||
p2debug() << "send click." ;
|
p2debug() << "send click." ;
|
||||||
emit click();
|
emit click();
|
||||||
@ -137,15 +145,46 @@ int QQtClickHelper::getLongClickInterval() const
|
|||||||
return mLongClickInterval;
|
return mLongClickInterval;
|
||||||
}
|
}
|
||||||
|
|
||||||
quint32 QQtClickHelper::clickNum() const { return nClickNum; }
|
|
||||||
|
|
||||||
quint32 QQtClickHelper::longClickNum() const { return nLongClickNum; }
|
void QQtClickHelper::checkClickNumWithCancel()
|
||||||
|
|
||||||
quint64 QQtClickHelper::totalClickNum() const { return nTotalClickNum; }
|
|
||||||
|
|
||||||
void QQtClickHelper::checkClickNum()
|
|
||||||
{
|
{
|
||||||
switch ( mClickType )
|
switch ( mClickType )
|
||||||
|
{
|
||||||
|
case QQtClick:
|
||||||
|
{
|
||||||
|
nClickNumWithCancel++;
|
||||||
|
if ( nClickNumWithCancel >= 0xFFFFFFFF )
|
||||||
|
{
|
||||||
|
p2debug() << "out......";
|
||||||
|
nClickNumWithCancel = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case QQtLongClick:
|
||||||
|
{
|
||||||
|
nLongClickNumWithCancel++;
|
||||||
|
if ( nLongClickNumWithCancel >= 0xFFFFFFFF )
|
||||||
|
{
|
||||||
|
p2debug() << "out......";
|
||||||
|
nLongClickNumWithCancel = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
nTotalClickNumWithCancel = nClickNumWithCancel + nLongClickNumWithCancel;
|
||||||
|
if ( nTotalClickNumWithCancel >= 0xFFFFFFFFFFFFFFFF )
|
||||||
|
{
|
||||||
|
p2debug() << "out......";
|
||||||
|
nTotalClickNumWithCancel = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void QQtClickHelper::checkClickNum ( QQtClickHelper::QQtClickType type )
|
||||||
|
{
|
||||||
|
switch ( type )
|
||||||
{
|
{
|
||||||
case QQtClick:
|
case QQtClick:
|
||||||
{
|
{
|
||||||
|
@ -55,9 +55,13 @@ public:
|
|||||||
void setLongClickInterval ( int millSecond = longClickInterval );
|
void setLongClickInterval ( int millSecond = longClickInterval );
|
||||||
int getLongClickInterval() const;
|
int getLongClickInterval() const;
|
||||||
|
|
||||||
quint32 clickNum() const;
|
inline const quint32 clickNum() const { return nClickNum; }
|
||||||
quint32 longClickNum() const;
|
inline const quint32 longClickNum() const { return nLongClickNum; }
|
||||||
quint64 totalClickNum() const;
|
inline const quint64 totalClickNum() const { return nTotalClickNum; }
|
||||||
|
|
||||||
|
inline const quint32 clickNumWithCancel() const { return nClickNumWithCancel; }
|
||||||
|
inline const quint32 longClickNumWithCancel() const { return nLongClickNumWithCancel; }
|
||||||
|
inline const quint64 totalClickNumWithCancel() const { return nTotalClickNumWithCancel; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 以下用于内部
|
* 以下用于内部
|
||||||
@ -91,15 +95,20 @@ protected:
|
|||||||
int mLongClickInterval;
|
int mLongClickInterval;
|
||||||
|
|
||||||
//click 检测使用
|
//click 检测使用
|
||||||
QTime t1_press;//press relase
|
QTime now_press;//press relase
|
||||||
QTime t2_release;//release
|
QTime now_release;//release
|
||||||
|
|
||||||
//click num
|
//click num
|
||||||
virtual void checkClickNum();
|
virtual void checkClickNumWithCancel();
|
||||||
|
virtual void checkClickNum ( QQtClickType type );
|
||||||
|
|
||||||
quint32 nClickNum;
|
quint32 nClickNum;
|
||||||
quint32 nLongClickNum;
|
quint32 nLongClickNum;
|
||||||
quint64 nTotalClickNum;
|
quint64 nTotalClickNum;
|
||||||
|
|
||||||
|
quint32 nClickNumWithCancel;
|
||||||
|
quint32 nLongClickNumWithCancel;
|
||||||
|
quint64 nTotalClickNumWithCancel;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // QQTCLICKHELPER_H
|
#endif // QQTCLICKHELPER_H
|
||||||
|
@ -6,17 +6,18 @@ QQtDoubleClickHelper::QQtDoubleClickHelper ( QObject* parent ) :
|
|||||||
mDoubleClickInterval = doubleClickInterval;
|
mDoubleClickInterval = doubleClickInterval;
|
||||||
|
|
||||||
nDoubleClickNum = 0;
|
nDoubleClickNum = 0;
|
||||||
|
nDoubleClickNumWithCancel = 0;
|
||||||
|
|
||||||
t1_doubleclick = QTime::currentTime();
|
prev_doubleclick = QTime::currentTime().addMSecs ( 3 );
|
||||||
t2_doubleclick = t2_doubleclick;
|
now_doubleclick = QTime::currentTime().addMSecs ( 4 );
|
||||||
|
|
||||||
t2_release_initial = QTime::currentTime();
|
p2debug() << prev_doubleclick.msecsTo ( now_doubleclick );
|
||||||
t2_release_preview = t2_release_initial;
|
|
||||||
|
prev_release = QTime::currentTime().addMSecs ( 5 );
|
||||||
|
now_release_initial = QTime::currentTime().addMSecs ( 6 );
|
||||||
|
|
||||||
mMouseEvent = new QQtMouseEvent;
|
mMouseEvent = new QQtMouseEvent;
|
||||||
|
|
||||||
mClickType = QQtNullClick;
|
|
||||||
|
|
||||||
m_click_timer = new QTimer ( this );
|
m_click_timer = new QTimer ( this );
|
||||||
m_click_timer->setSingleShot ( false );
|
m_click_timer->setSingleShot ( false );
|
||||||
//击发延迟20ms
|
//击发延迟20ms
|
||||||
@ -53,7 +54,7 @@ void QQtDoubleClickHelper::mousePressEvent ( QMouseEvent* event , QWidget* userW
|
|||||||
m_click_timer->stop();
|
m_click_timer->stop();
|
||||||
|
|
||||||
//复用一下t1_press t2_release 这里的实现和父类关系不太大
|
//复用一下t1_press t2_release 这里的实现和父类关系不太大
|
||||||
t1_press = QTime::currentTime();
|
now_press = QTime::currentTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QQtDoubleClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* userWidget )
|
void QQtDoubleClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* userWidget )
|
||||||
@ -61,8 +62,8 @@ void QQtDoubleClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* user
|
|||||||
p2debug() << "release" << event->pos() << userWidget;
|
p2debug() << "release" << event->pos() << userWidget;
|
||||||
|
|
||||||
//添加longClick检测, 更新longclick检测时间
|
//添加longClick检测, 更新longclick检测时间
|
||||||
t2_release_preview = t2_release;//记录上次的release
|
prev_release = now_release;//记录上次的release
|
||||||
t2_release = QTime::currentTime();
|
now_release = QTime::currentTime();
|
||||||
//在release-press>longclick暨click时钟判定为longclick后 加一次判断修复误判 防止用户不发press,引起click一直longclick.
|
//在release-press>longclick暨click时钟判定为longclick后 加一次判断修复误判 防止用户不发press,引起click一直longclick.
|
||||||
// if ( t1_press.msecsTo ( t2_release ) >= mLongClickInterval
|
// if ( t1_press.msecsTo ( t2_release ) >= mLongClickInterval
|
||||||
// && t2_doubleclick.msecsTo ( t2_release ) >= 0
|
// && t2_doubleclick.msecsTo ( t2_release ) >= 0
|
||||||
@ -75,19 +76,20 @@ void QQtDoubleClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* user
|
|||||||
//doubleClick检测不依赖press,所以只要发release就会有doubleClick发生.
|
//doubleClick检测不依赖press,所以只要发release就会有doubleClick发生.
|
||||||
//检测方式: 两次release的间隔小于doubleClickInterval那么触发doubleClick.
|
//检测方式: 两次release的间隔小于doubleClickInterval那么触发doubleClick.
|
||||||
//这一次 current click
|
//这一次 current click
|
||||||
t1_doubleclick = QTime::currentTime();
|
now_doubleclick = QTime::currentTime();
|
||||||
//这里有小技巧: 这里没有加 && mClickType != QQtClick
|
//这里有小技巧: 这里没有加 && mClickType != QQtClick
|
||||||
//难道不会和click时钟混淆吗?不会,因为click时钟那边用的startTime和nowTime两个变量, t2比startTime还早,t1比nowTime还晚,t1-t2绝对比nowTime-startTime还长.
|
//难道不会和click时钟混淆吗?不会,因为click时钟那边用的startTime和nowTime两个变量, t2比startTime还早,t1比nowTime还晚,t1-t2绝对比nowTime-startTime还长.
|
||||||
//如果是click,绝对不会混淆成doubleClick.
|
//如果是click,绝对不会混淆成doubleClick.
|
||||||
//正好mDoubleClickInterval ms代表双击 不代表单击.
|
//正好mDoubleClickInterval ms代表双击 不代表单击.
|
||||||
if ( t2_doubleclick.msecsTo ( t1_doubleclick ) >= 0
|
p2debug() << prev_doubleclick << now_doubleclick << mClickType;
|
||||||
&& t2_doubleclick.msecsTo ( t1_doubleclick ) < mDoubleClickInterval )
|
if ( prev_doubleclick.msecsTo ( now_doubleclick ) >= 0
|
||||||
|
&& prev_doubleclick.msecsTo ( now_doubleclick ) < mDoubleClickInterval )
|
||||||
{
|
{
|
||||||
//双击发生
|
//双击发生
|
||||||
mClickType = QQtDoubleClick;
|
mClickType = QQtDoubleClick;
|
||||||
}
|
}
|
||||||
//上一次 prev click
|
//上一次 prev click
|
||||||
t2_doubleclick = QTime::currentTime();
|
prev_doubleclick = QTime::currentTime();
|
||||||
|
|
||||||
//梳理状态
|
//梳理状态
|
||||||
m_long_click_timer->stop();
|
m_long_click_timer->stop();
|
||||||
@ -96,7 +98,7 @@ void QQtDoubleClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* user
|
|||||||
if ( mClickType == QQtLongClick )
|
if ( mClickType == QQtLongClick )
|
||||||
{
|
{
|
||||||
//计算点击数目
|
//计算点击数目
|
||||||
checkClickNum();
|
checkClickNumWithCancel();
|
||||||
|
|
||||||
//修改状态
|
//修改状态
|
||||||
mClickType = QQtNullClick;
|
mClickType = QQtNullClick;
|
||||||
@ -113,6 +115,8 @@ void QQtDoubleClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* user
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkClickNum ( QQtLongClick );
|
||||||
|
|
||||||
//发送长信号
|
//发送长信号
|
||||||
p2debug() << "send long click " ;
|
p2debug() << "send long click " ;
|
||||||
emit longClick();
|
emit longClick();
|
||||||
@ -124,7 +128,7 @@ void QQtDoubleClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* user
|
|||||||
else if ( mClickType == QQtDoubleClick )
|
else if ( mClickType == QQtDoubleClick )
|
||||||
{
|
{
|
||||||
//计算点击数目
|
//计算点击数目
|
||||||
checkClickNum();
|
checkClickNumWithCancel();
|
||||||
|
|
||||||
//修改状态
|
//修改状态
|
||||||
mClickType = QQtNullClick;
|
mClickType = QQtNullClick;
|
||||||
@ -141,6 +145,8 @@ void QQtDoubleClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* user
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkClickNum ( QQtDoubleClick );
|
||||||
|
|
||||||
//发送双击信号
|
//发送双击信号
|
||||||
p2debug() << "send double click." ;
|
p2debug() << "send double click." ;
|
||||||
emit doubleClick();
|
emit doubleClick();
|
||||||
@ -152,7 +158,7 @@ void QQtDoubleClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* user
|
|||||||
else if ( mClickType == QQtClick )
|
else if ( mClickType == QQtClick )
|
||||||
{
|
{
|
||||||
//计算点击数目
|
//计算点击数目
|
||||||
checkClickNum();
|
checkClickNumWithCancel();
|
||||||
|
|
||||||
//修改状态
|
//修改状态
|
||||||
mClickType = QQtNullClick;
|
mClickType = QQtNullClick;
|
||||||
@ -169,6 +175,8 @@ void QQtDoubleClickHelper::mouseReleaseEvent ( QMouseEvent* event, QWidget* user
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkClickNum ( QQtClick );
|
||||||
|
|
||||||
//发送单击信号
|
//发送单击信号
|
||||||
p2debug() << "send click." ;
|
p2debug() << "send click." ;
|
||||||
emit click();
|
emit click();
|
||||||
@ -220,23 +228,23 @@ void QQtDoubleClickHelper::slotClickTimeout()
|
|||||||
//注意:必须和点击一样在超时的时候检测,否则和双击检测冲突,分不清是长击还是双击.导致长击必发.
|
//注意:必须和点击一样在超时的时候检测,否则和双击检测冲突,分不清是长击还是双击.导致长击必发.
|
||||||
//注意:必须press击发.
|
//注意:必须press击发.
|
||||||
//不发press 发生误判 认为总是long click
|
//不发press 发生误判 认为总是long click
|
||||||
if ( t1_press.msecsTo ( t2_release ) >= 0
|
if ( now_press.msecsTo ( now_release ) >= 0
|
||||||
&& t1_press.msecsTo ( t2_release ) >= mLongClickInterval )
|
&& now_press.msecsTo ( now_release ) >= mLongClickInterval )
|
||||||
{
|
{
|
||||||
//长击发生
|
//长击发生
|
||||||
mClickType = QQtLongClick;
|
mClickType = QQtLongClick;
|
||||||
|
|
||||||
//有误判, 未发press的时候, 这个一直都是longclick,其实还有click
|
//有误判, 未发press的时候, 这个一直都是longclick,其实还有click
|
||||||
//press比前一次release小的时候 其实是click
|
//press比前一次release小的时候 其实是click
|
||||||
if ( t2_release_preview.msecsTo ( t2_release ) >= 0
|
if ( prev_release.msecsTo ( now_release ) >= 0
|
||||||
&& t2_release_preview.msecsTo ( t1_press ) <= 0 )
|
&& prev_release.msecsTo ( now_press ) <= 0 )
|
||||||
{
|
{
|
||||||
mClickType = QQtClick;
|
mClickType = QQtClick;
|
||||||
}
|
}
|
||||||
|
|
||||||
//initial press
|
//initial press
|
||||||
if ( t2_release_preview.msecsTo ( t2_release ) >= 0
|
if ( prev_release.msecsTo ( now_release ) >= 0
|
||||||
&& t2_release_preview == t2_release_initial )
|
&& prev_release == now_release_initial )
|
||||||
{
|
{
|
||||||
mClickType = QQtClick;
|
mClickType = QQtClick;
|
||||||
}
|
}
|
||||||
@ -265,10 +273,38 @@ void QQtDoubleClickHelper::slotDoubleClickTimeout()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void QQtDoubleClickHelper::checkClickNum()
|
void QQtDoubleClickHelper::checkClickNumWithCancel()
|
||||||
{
|
{
|
||||||
QQtClickHelper::checkClickNum();
|
QQtClickHelper::checkClickNumWithCancel();
|
||||||
switch ( mClickType )
|
switch ( mClickType )
|
||||||
|
{
|
||||||
|
case QQtDoubleClick:
|
||||||
|
{
|
||||||
|
nDoubleClickNumWithCancel++;
|
||||||
|
if ( nDoubleClickNumWithCancel >= 0xFFFFFFFF )
|
||||||
|
{
|
||||||
|
p2debug() << "out......";
|
||||||
|
nDoubleClickNumWithCancel = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
nTotalClickNumWithCancel = nClickNumWithCancel + nLongClickNumWithCancel + nDoubleClickNumWithCancel;
|
||||||
|
if ( nTotalClickNumWithCancel >= 0xFFFFFFFFFFFFFFFF )
|
||||||
|
{
|
||||||
|
p2debug() << "out......";
|
||||||
|
nTotalClickNumWithCancel = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void QQtDoubleClickHelper::checkClickNum ( QQtClickType type )
|
||||||
|
{
|
||||||
|
QQtClickHelper::checkClickNum ( type );
|
||||||
|
switch ( type )
|
||||||
{
|
{
|
||||||
case QQtDoubleClick:
|
case QQtDoubleClick:
|
||||||
{
|
{
|
||||||
|
@ -66,7 +66,8 @@ public:
|
|||||||
return mDoubleClickInterval;
|
return mDoubleClickInterval;
|
||||||
}
|
}
|
||||||
|
|
||||||
quint32 doubleClickNum() const { return nDoubleClickNum; }
|
inline const quint32 doubleClickNum() const { return nDoubleClickNum; }
|
||||||
|
inline const quint32 doubleClickNumWithCancel() const { return nDoubleClickNumWithCancel; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 以下用于内部
|
* 以下用于内部
|
||||||
@ -97,20 +98,22 @@ protected:
|
|||||||
QTime startClickTime;
|
QTime startClickTime;
|
||||||
|
|
||||||
//double click检测用
|
//double click检测用
|
||||||
QTime t1_doubleclick;
|
QTime prev_doubleclick;
|
||||||
QTime t2_doubleclick;
|
QTime now_doubleclick;
|
||||||
|
|
||||||
//long click用
|
//long click用
|
||||||
QTime t2_release_preview;
|
QTime prev_release;
|
||||||
QTime t2_release_initial;
|
QTime now_release_initial;
|
||||||
|
|
||||||
//click 用
|
//click 用
|
||||||
QWidget* mUserWidget;
|
QWidget* mUserWidget;
|
||||||
QQtMouseEvent* mMouseEvent;
|
QQtMouseEvent* mMouseEvent;
|
||||||
|
|
||||||
//click num
|
//click num
|
||||||
virtual void checkClickNum();
|
virtual void checkClickNumWithCancel();
|
||||||
|
virtual void checkClickNum ( QQtClickType type ) override;
|
||||||
quint32 nDoubleClickNum;
|
quint32 nDoubleClickNum;
|
||||||
|
quint32 nDoubleClickNumWithCancel;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // QQTDOUBLECLICKHELPER_H
|
#endif // QQTDOUBLECLICKHELPER_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user