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: