From 72ca134fc145cd6ef4965927d638988256d24b91 Mon Sep 17 00:00:00 2001 From: laserpants Date: Sat, 26 Mar 2016 15:38:24 +0300 Subject: [PATCH] paint track for toggle component --- components/slider.cpp | 4 ++-- components/slider.h | 2 +- components/toggle.cpp | 16 +++++++++++----- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/components/slider.cpp b/components/slider.cpp index 6255d33..e76f83b 100644 --- a/components/slider.cpp +++ b/components/slider.cpp @@ -84,8 +84,8 @@ void Slider::paintEvent(QPaintEvent *event) void Slider::mousePressEvent(QMouseEvent *event) { if (Qt::Horizontal == _orientation - ? touchesRail(event->y(), height()/2) - : touchesRail(event->x(), width()/2)) + ? isOnTrack(event->y(), height()/2) + : isOnTrack(event->x(), width()/2)) { const QSize s = _handle->sizeHint(); _handle->setOffset((event->pos() - QPoint(s.width()/2, s.height()/2)) - event->globalPos()); diff --git a/components/slider.h b/components/slider.h index 0d2b978..f448399 100644 --- a/components/slider.h +++ b/components/slider.h @@ -57,7 +57,7 @@ protected: void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE; private: - inline bool touchesRail(int p, int x) const { return (p >= x-2 && p < x+2); } + inline bool isOnTrack(int p, int x) const { return (p >= x-2 && p < x+2); } bool _drag; Handle *const _handle; diff --git a/components/toggle.cpp b/components/toggle.cpp index ef2f513..91d8b65 100644 --- a/components/toggle.cpp +++ b/components/toggle.cpp @@ -19,11 +19,17 @@ void Toggle::paintEvent(QPaintEvent *event) Q_UNUSED(event) QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); - QPen pen; - pen.setColor(Qt::black); - pen.setWidth(2); - painter.setPen(pen); + const int h = height()/2; + + QBrush brush; + brush.setColor(QColor(180, 180, 180)); + brush.setStyle(Qt::SolidPattern); + painter.setBrush(brush); + + painter.setPen(Qt::NoPen); + + painter.drawRoundedRect(QRect(0, h-h/2, width(), h+h/2), h, h); - painter.drawRect(rect()); }