From ef57d5b79df28bf71adbd7125932e61476f13a95 Mon Sep 17 00:00:00 2001 From: laserpants Date: Sat, 26 Mar 2016 00:27:49 +0300 Subject: [PATCH] simplify slider code --- components/slider.cpp | 19 +++++-------------- components/slider.h | 2 +- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/components/slider.cpp b/components/slider.cpp index 8243e40..6255d33 100644 --- a/components/slider.cpp +++ b/components/slider.cpp @@ -83,16 +83,13 @@ void Slider::paintEvent(QPaintEvent *event) void Slider::mousePressEvent(QMouseEvent *event) { - const QSize s = _handle->sizeHint(); - const QPoint p = event->pos(); - if (Qt::Horizontal == _orientation - ? touchesRail(p.y(), height()/2) - : touchesRail(p.x(), width()/2)) + ? touchesRail(event->y(), height()/2) + : touchesRail(event->x(), width()/2)) { - const QPoint newPos = p - QPoint(s.width()/2, s.height()/2); - _handle->setPosition(newPos); - _handle->setOffset(newPos - event->globalPos()); + const QSize s = _handle->sizeHint(); + _handle->setOffset((event->pos() - QPoint(s.width()/2, s.height()/2)) - event->globalPos()); + _handle->setRelativePosition(event->globalPos()); _drag = true; } else { _drag = false; @@ -113,9 +110,3 @@ void Slider::resizeEvent(QResizeEvent *event) _handle->refreshGeometry(); QWidget::resizeEvent(event); } - - -bool Slider::touchesRail(int p, int x) const -{ - return (p >= x-2 && p < x+2); -} diff --git a/components/slider.h b/components/slider.h index 9be0250..28dded0 100644 --- a/components/slider.h +++ b/components/slider.h @@ -56,7 +56,7 @@ protected: void resizeEvent(QResizeEvent *event); private: - bool touchesRail(int p, int x) const; + inline bool touchesRail(int p, int x) const { return (p >= x-2 && p < x+2); } bool _drag; Handle *const _handle;