fix weird toggle behavior
This commit is contained in:
parent
ead266b05a
commit
6bfbc342b0
|
@ -41,7 +41,7 @@ void TogglePrivate::init()
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
transition = new QSignalTransition(thumb, SIGNAL(clicked(bool)));
|
transition = new QSignalTransition(q, SIGNAL(toggled(bool)));
|
||||||
transition->setTargetState(onState);
|
transition->setTargetState(onState);
|
||||||
offState->addTransition(transition);
|
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);
|
transition->setTargetState(offState);
|
||||||
onState->addTransition(transition);
|
onState->addTransition(transition);
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ void TogglePrivate::init()
|
||||||
|
|
||||||
machine.start();
|
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)
|
Toggle::Toggle(QWidget *parent)
|
||||||
|
@ -161,7 +161,7 @@ void Toggle::updateOverlayGeometry()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Toggle::addRipple(bool checked)
|
void Toggle::addRipple()
|
||||||
{
|
{
|
||||||
Q_D(Toggle);
|
Q_D(Toggle);
|
||||||
|
|
||||||
|
@ -176,7 +176,7 @@ void Toggle::addRipple(bool checked)
|
||||||
}
|
}
|
||||||
|
|
||||||
Ripple *ripple = new Ripple(QPoint(10+t, 20+t));
|
Ripple *ripple = new Ripple(QPoint(10+t, 20+t));
|
||||||
ripple->setColor(Style::instance().themeColor(checked
|
ripple->setColor(Style::instance().themeColor(isChecked()
|
||||||
? "primary2"
|
? "primary2"
|
||||||
: "accent3"));
|
: "accent3"));
|
||||||
ripple->setRadiusEndValue(w);
|
ripple->setRadiusEndValue(w);
|
||||||
|
|
|
@ -21,7 +21,7 @@ public:
|
||||||
void updateOverlayGeometry();
|
void updateOverlayGeometry();
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
void addRipple(bool checked);
|
void addRipple();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool event(QEvent *event) Q_DECL_OVERRIDE;
|
bool event(QEvent *event) Q_DECL_OVERRIDE;
|
||||||
|
|
|
@ -47,8 +47,6 @@ bool ToggleThumb::eventFilter(QObject *obj, QEvent *event)
|
||||||
const QEvent::Type type = event->type();
|
const QEvent::Type type = event->type();
|
||||||
if (QEvent::Resize == type || QEvent::Move == type) {
|
if (QEvent::Resize == type || QEvent::Move == type) {
|
||||||
setGeometry(parentWidget()->rect().adjusted(8, 8, -8, -8));
|
setGeometry(parentWidget()->rect().adjusted(8, 8, -8, -8));
|
||||||
} else if (QEvent::MouseButtonPress == type) {
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
return QWidget::eventFilter(obj, event);
|
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)
|
ToggleTrack::ToggleTrack(Toggle *parent)
|
||||||
: QWidget(parent),
|
: QWidget(parent),
|
||||||
_toggle(parent)
|
_toggle(parent)
|
||||||
|
|
|
@ -32,13 +32,9 @@ public:
|
||||||
return _thumbColor;
|
return _thumbColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
signals:
|
|
||||||
void clicked(bool);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE;
|
bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE;
|
||||||
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
|
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
|
||||||
void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(ToggleThumb)
|
Q_DISABLE_COPY(ToggleThumb)
|
||||||
|
|
Loading…
Reference in New Issue