From 6bfbc342b0e3a487aa34fd5a571e691e50702073 Mon Sep 17 00:00:00 2001 From: laserpants Date: Sun, 5 Jun 2016 16:28:01 +0300 Subject: [PATCH] fix weird toggle behavior --- components/toggle.cpp | 10 +++++----- components/toggle.h | 2 +- components/toggle_internal.cpp | 13 ------------- components/toggle_internal.h | 4 ---- 4 files changed, 6 insertions(+), 23 deletions(-) diff --git a/components/toggle.cpp b/components/toggle.cpp index b35d309..b02db2a 100644 --- a/components/toggle.cpp +++ b/components/toggle.cpp @@ -41,7 +41,7 @@ void TogglePrivate::init() // - transition = new QSignalTransition(thumb, SIGNAL(clicked(bool))); + transition = new QSignalTransition(q, SIGNAL(toggled(bool))); transition->setTargetState(onState); offState->addTransition(transition); @@ -66,7 +66,7 @@ void TogglePrivate::init() // - transition = new QSignalTransition(thumb, SIGNAL(clicked(bool))); + transition = new QSignalTransition(q, SIGNAL(toggled(bool))); transition->setTargetState(offState); onState->addTransition(transition); @@ -110,7 +110,7 @@ void TogglePrivate::init() machine.start(); - QObject::connect(thumb, SIGNAL(clicked(bool)), q, SLOT(addRipple(bool))); + QObject::connect(q, SIGNAL(toggled(bool)), q, SLOT(addRipple())); } Toggle::Toggle(QWidget *parent) @@ -161,7 +161,7 @@ void Toggle::updateOverlayGeometry() } } -void Toggle::addRipple(bool checked) +void Toggle::addRipple() { Q_D(Toggle); @@ -176,7 +176,7 @@ void Toggle::addRipple(bool checked) } Ripple *ripple = new Ripple(QPoint(10+t, 20+t)); - ripple->setColor(Style::instance().themeColor(checked + ripple->setColor(Style::instance().themeColor(isChecked() ? "primary2" : "accent3")); ripple->setRadiusEndValue(w); diff --git a/components/toggle.h b/components/toggle.h index 0ab5afb..5bd27ba 100644 --- a/components/toggle.h +++ b/components/toggle.h @@ -21,7 +21,7 @@ public: void updateOverlayGeometry(); protected slots: - void addRipple(bool checked); + void addRipple(); protected: bool event(QEvent *event) Q_DECL_OVERRIDE; diff --git a/components/toggle_internal.cpp b/components/toggle_internal.cpp index 6ff7fab..d78bbc1 100644 --- a/components/toggle_internal.cpp +++ b/components/toggle_internal.cpp @@ -47,8 +47,6 @@ bool ToggleThumb::eventFilter(QObject *obj, QEvent *event) const QEvent::Type type = event->type(); if (QEvent::Resize == type || QEvent::Move == type) { setGeometry(parentWidget()->rect().adjusted(8, 8, -8, -8)); - } else if (QEvent::MouseButtonPress == type) { - return true; } return QWidget::eventFilter(obj, event); } @@ -80,17 +78,6 @@ void ToggleThumb::paintEvent(QPaintEvent *event) } } -void ToggleThumb::mouseReleaseEvent(QMouseEvent *event) -{ - if (_toggle->isEnabled()) { - const bool newChecked = !_toggle->isChecked(); - _toggle->setChecked(newChecked); - qDebug() << "checked : " << newChecked; - emit clicked(newChecked); - } - QWidget::mouseReleaseEvent(event); -} - ToggleTrack::ToggleTrack(Toggle *parent) : QWidget(parent), _toggle(parent) diff --git a/components/toggle_internal.h b/components/toggle_internal.h index f0d95e4..62a3b40 100644 --- a/components/toggle_internal.h +++ b/components/toggle_internal.h @@ -32,13 +32,9 @@ public: return _thumbColor; } -signals: - void clicked(bool); - protected: bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE; void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; - void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE; private: Q_DISABLE_COPY(ToggleThumb)