mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-23 18:32:49 +00:00
plasma: replace use of QTime as timer with QElapsedTimer in Plasma::ScrollWidget
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
468c9dc431
commit
07de7723af
1 changed files with 12 additions and 30 deletions
|
@ -29,7 +29,7 @@
|
|||
#include <QEvent>
|
||||
#include <QWidget>
|
||||
#include <QTimer>
|
||||
#include <QDateTime>
|
||||
#include <QElapsedTimer>
|
||||
#include <QPropertyAnimation>
|
||||
#include <QSequentialAnimationGroup>
|
||||
#include <QTextBrowser>
|
||||
|
@ -652,24 +652,24 @@ public:
|
|||
void handleMousePressEvent(QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
lastPos = QPoint();
|
||||
lastPosTime = QTime::currentTime();
|
||||
lastPosTime.restart();
|
||||
pressPos = event->scenePos();
|
||||
pressScrollPos = -q->scrollPosition();
|
||||
pressTime = QTime::currentTime();
|
||||
pressTime.restart();
|
||||
velocity = QPointF();
|
||||
stopAnimations();
|
||||
}
|
||||
|
||||
void handleMouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
if (lastPosTime.isNull())
|
||||
if (!lastPosTime.isValid())
|
||||
return;
|
||||
bool rejectY = false;
|
||||
bool rejectX = false;
|
||||
|
||||
if (canYFlick()) {
|
||||
int dy = int(event->scenePos().y() - pressPos.y());
|
||||
if (qAbs(dy) > KGlobalSettings::dndEventDelay() || elapsed(pressTime) > 200) {
|
||||
if (qAbs(dy) > KGlobalSettings::dndEventDelay() || pressTime.elapsed() > 200) {
|
||||
qreal newY = dy + pressScrollPos.y();
|
||||
const qreal minY = minYExtent();
|
||||
const qreal maxY = maxYExtent();
|
||||
|
@ -695,7 +695,7 @@ public:
|
|||
|
||||
if (canXFlick()) {
|
||||
int dx = int(event->scenePos().x() - pressPos.x());
|
||||
if (qAbs(dx) > KGlobalSettings::dndEventDelay() || elapsed(pressTime) > 200) {
|
||||
if (qAbs(dx) > KGlobalSettings::dndEventDelay() || pressTime.elapsed() > 200) {
|
||||
qreal newX = dx + pressScrollPos.x();
|
||||
const qreal minX = minXExtent();
|
||||
const qreal maxX = maxXExtent();
|
||||
|
@ -721,7 +721,7 @@ public:
|
|||
}
|
||||
|
||||
if (!lastPos.isNull()) {
|
||||
qreal msecs = qreal(restart(lastPosTime));
|
||||
qreal msecs = qreal(lastPosTime.restart());
|
||||
qreal elapsed = msecs / 1000.;
|
||||
#if IGNORE_SUSPICIOUS_MOVES
|
||||
if (msecs > 3) {
|
||||
|
@ -755,10 +755,10 @@ public:
|
|||
void handleMouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
stealEvent = false;
|
||||
if (lastPosTime.isNull())
|
||||
if (!lastPosTime.isValid())
|
||||
return;
|
||||
|
||||
if (elapsed(lastPosTime) > 100) {
|
||||
if (lastPosTime.elapsed() > 100) {
|
||||
// if we drag then pause before release we should not cause a flick.
|
||||
velocity = QPointF();
|
||||
}
|
||||
|
@ -785,7 +785,7 @@ public:
|
|||
fixupX();
|
||||
}
|
||||
|
||||
lastPosTime = QTime();
|
||||
lastPosTime.invalidate();
|
||||
}
|
||||
|
||||
void handleWheelEvent(QGraphicsSceneWheelEvent *event)
|
||||
|
@ -898,24 +898,6 @@ public:
|
|||
return q->contentsSize().height() > q->viewportGeometry().height();
|
||||
}
|
||||
|
||||
int elapsed(const QTime &t) const
|
||||
{
|
||||
int n = t.msecsTo(QTime::currentTime());
|
||||
if (n < 0) // passed midnight
|
||||
n += 86400 * 1000;
|
||||
return n;
|
||||
}
|
||||
|
||||
int restart(QTime &t) const
|
||||
{
|
||||
QTime time = QTime::currentTime();
|
||||
int n = t.msecsTo(time);
|
||||
if (n < 0) // passed midnight
|
||||
n += 86400*1000;
|
||||
t = time;
|
||||
return n;
|
||||
}
|
||||
|
||||
void createFlickAnimations()
|
||||
{
|
||||
if (widget.data()) {
|
||||
|
@ -1067,8 +1049,8 @@ public:
|
|||
QPointF pressScrollPos;
|
||||
QPointF velocity;
|
||||
QPointF lastPos;
|
||||
QTime pressTime;
|
||||
QTime lastPosTime;
|
||||
QElapsedTimer pressTime;
|
||||
QElapsedTimer lastPosTime;
|
||||
QPropertyAnimation *flickAnimationX;
|
||||
QPropertyAnimation *flickAnimationY;
|
||||
struct {
|
||||
|
|
Loading…
Add table
Reference in a new issue