From 4410730f2249a745a2c48b3c5bd6e448f1527030 Mon Sep 17 00:00:00 2001 From: laserpants Date: Sun, 1 May 2016 20:07:21 +0300 Subject: [PATCH] keep working on the Slider --- components/slider.cpp | 16 ++++++++++++++-- components/slider.h | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/components/slider.cpp b/components/slider.cpp index 10ed0f4..e4201d9 100644 --- a/components/slider.cpp +++ b/components/slider.cpp @@ -32,8 +32,6 @@ void Handle::paintEvent(QPaintEvent *event) QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); - //painter.drawRect(rect()); - QBrush brush; brush.setColor(QColor(0, 0, 0)); brush.setStyle(Qt::SolidPattern); @@ -101,16 +99,30 @@ Slider::Slider(QWidget *parent) _phaseAnimation->setDuration(500); setMouseTracking(true); + setFocusPolicy(Qt::StrongFocus); } Slider::~Slider() { } +void Slider::setOrientation(Qt::Orientation orientation) +{ + if (_orientation == orientation) + return; + _orientation = orientation; + _handle->refreshGeometry(); + update(); +} + void Slider::paintEvent(QPaintEvent *event) { QPainter painter(this); + if (hasFocus()) { + painter.drawRect(rect()); + } + QRect rect = Qt::Vertical == _orientation ? QRect(width()/2-1, 0, 2, height()) : QRect(0, height()/2-1, width(), 2); diff --git a/components/slider.h b/components/slider.h index 5ecba99..a9a5775 100644 --- a/components/slider.h +++ b/components/slider.h @@ -60,7 +60,7 @@ public: explicit Slider(QWidget *parent = 0); ~Slider(); - inline void setOrientation(Qt::Orientation orientation) { _orientation = orientation; } + void setOrientation(Qt::Orientation orientation); inline Qt::Orientation orientation() const { return _orientation; } protected: