From d6d8409bb94ad6c52abd89783fa50b8c295ffff7 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sun, 15 Dec 2019 20:03:02 +1100 Subject: [PATCH] allow sliders to be tabbed to --- app/widget/slider/sliderbase.cpp | 1 + app/widget/slider/sliderlabel.cpp | 10 ++++++++++ app/widget/slider/sliderlabel.h | 10 +++++++--- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/widget/slider/sliderbase.cpp b/app/widget/slider/sliderbase.cpp index 700c9d172..09329a477 100644 --- a/app/widget/slider/sliderbase.cpp +++ b/app/widget/slider/sliderbase.cpp @@ -46,6 +46,7 @@ SliderBase::SliderBase(Mode mode, QWidget *parent) : connect(label_, SIGNAL(drag_start()), this, SLOT(LabelPressed())); connect(label_, SIGNAL(dragged(int)), this, SLOT(LabelDragged(int))); connect(label_, SIGNAL(drag_stop()), this, SLOT(LabelClicked())); + connect(label_, SIGNAL(focused()), this, SLOT(LabelClicked())); connect(editor_, SIGNAL(Confirmed()), this, SLOT(LineEditConfirmed())); connect(editor_, SIGNAL(Cancelled()), this, SLOT(LineEditCancelled())); diff --git a/app/widget/slider/sliderlabel.cpp b/app/widget/slider/sliderlabel.cpp index a72fda395..b0f029730 100644 --- a/app/widget/slider/sliderlabel.cpp +++ b/app/widget/slider/sliderlabel.cpp @@ -33,6 +33,9 @@ SliderLabel::SliderLabel(QWidget *parent) : QFont f = font(); f.setUnderline(true); setFont(f); + + // Allow users to tab to this widget + setFocusPolicy(Qt::TabFocus); } void SliderLabel::mousePressEvent(QMouseEvent *ev) @@ -70,3 +73,10 @@ void SliderLabel::mouseReleaseEvent(QMouseEvent *ev) static_cast(QApplication::instance())->restoreOverrideCursor(); } + +void SliderLabel::focusInEvent(QFocusEvent *event) +{ + QWidget::focusInEvent(event); + + emit focused(); +} diff --git a/app/widget/slider/sliderlabel.h b/app/widget/slider/sliderlabel.h index f588cdeef..8f02ee813 100644 --- a/app/widget/slider/sliderlabel.h +++ b/app/widget/slider/sliderlabel.h @@ -30,11 +30,13 @@ public: SliderLabel(QWidget* parent); protected: - void mousePressEvent(QMouseEvent *ev) override; + virtual void mousePressEvent(QMouseEvent *ev) override; - void mouseMoveEvent(QMouseEvent *ev) override; + virtual void mouseMoveEvent(QMouseEvent *ev) override; - void mouseReleaseEvent(QMouseEvent *ev) override; + virtual void mouseReleaseEvent(QMouseEvent *ev) override; + + virtual void focusInEvent(QFocusEvent *event) override; signals: void dragged(int x); @@ -43,6 +45,8 @@ signals: void drag_stop(); + void focused(); + private: QPoint drag_start_;