use switch in event handlers instead of if-then-else clause

This commit is contained in:
laserpants 2016-06-12 22:57:31 +03:00
parent a7a4ad9e81
commit 57e77ecc04
6 changed files with 80 additions and 35 deletions

View File

@ -201,18 +201,29 @@ int FloatingActionButton::yOffset() const
bool FloatingActionButton::event(QEvent *event) bool FloatingActionButton::event(QEvent *event)
{ {
QEvent::Type type = event->type(); switch (event->type())
if (QEvent::ParentChange == type && parentWidget())
{ {
case QEvent::ParentChange:
{
if (!parent())
break;
Q_D(FloatingActionButton); Q_D(FloatingActionButton);
parent()->installEventFilter(this); parent()->installEventFilter(this);
setGeometry(d->fabGeometry()); setGeometry(d->fabGeometry());
break;
} }
else if (QEvent::ParentAboutToChange == type && parentWidget()) case QEvent::ParentAboutToChange:
{ {
if (!parent())
break;
parent()->removeEventFilter(this); parent()->removeEventFilter(this);
break;
}
default:
break;
} }
return RaisedButton::event(event); return RaisedButton::event(event);
} }

View File

@ -14,7 +14,7 @@ void IconButtonPrivate::init()
{ {
Q_Q(IconButton); Q_Q(IconButton);
ripple = new RippleOverlay(q); ripple = new RippleOverlay(q->parentWidget());
QSizePolicy policy; QSizePolicy policy;
policy.setWidthForHeight(true); policy.setWidthForHeight(true);
@ -41,19 +41,25 @@ QSize IconButton::sizeHint() const
bool IconButton::event(QEvent *event) bool IconButton::event(QEvent *event)
{ {
const QEvent::Type type = event->type(); Q_D(IconButton);
if (QEvent::Resize == type || QEvent::Move == type)
{
Q_D(IconButton);
switch (event->type())
{
case QEvent::Resize:
case QEvent::Move: {
const int s = iconSize().width()/2; const int s = iconSize().width()/2;
d->ripple->setGeometry(geometry().adjusted(-s, -s, s, s)); d->ripple->setGeometry(geometry().adjusted(-s, -s, s, s));
break;
} }
else if (QEvent::ParentChange == type && parentWidget()) case QEvent::ParentChange: {
{ QWidget *widget;
Q_D(IconButton); if ((widget = parentWidget())) {
d->ripple->setParent(parentWidget());
d->ripple->setParent(parentWidget()); }
break;
}
default:
break;
} }
return QAbstractButton::event(event); return QAbstractButton::event(event);
} }

View File

@ -67,7 +67,10 @@ bool RadioButton::event(QEvent *event)
d->iconWidget->setGeometry(geometry()); d->iconWidget->setGeometry(geometry());
break; break;
case QEvent::ParentChange: case QEvent::ParentChange:
d->ripple->setParent(parentWidget()); QWidget *widget;
if ((widget = parentWidget())) {
d->ripple->setParent(widget);
}
break; break;
default: default:
break; break;

View File

@ -235,15 +235,20 @@ SliderThumb::~SliderThumb()
bool SliderThumb::eventFilter(QObject *obj, QEvent *event) bool SliderThumb::eventFilter(QObject *obj, QEvent *event)
{ {
QEvent::Type type = event->type(); switch (event->type())
{
if (QEvent::ParentChange == type) { case QEvent::ParentChange:
setParent(slider->parentWidget()); setParent(slider->parentWidget());
} else if (QEvent::Resize == type || QEvent::Move == type) { break;
case QEvent::Resize:
case QEvent::Move:
QWidget *widget; QWidget *widget;
if ((widget = parentWidget())) { if ((widget = parentWidget())) {
setGeometry(widget->rect()); setGeometry(widget->rect());
} }
break;
default:
break;
} }
return QWidget::eventFilter(obj, event); return QWidget::eventFilter(obj, event);
} }
@ -339,14 +344,20 @@ SliderTrack::~SliderTrack()
bool SliderTrack::eventFilter(QObject *obj, QEvent *event) bool SliderTrack::eventFilter(QObject *obj, QEvent *event)
{ {
QEvent::Type type = event->type(); switch (event->type())
{
if (QEvent::ParentChange == type) { case QEvent::ParentChange:
setParent(slider->parentWidget()); setParent(slider->parentWidget());
} else if (QEvent::Resize == type || QEvent::Move == type) { break;
if (parentWidget()) { case QEvent::Resize:
setGeometry(parentWidget()->rect()); case QEvent::Move:
QWidget *widget;
if ((widget = parentWidget())) {
setGeometry(widget->rect());
} }
break;
default:
break;
} }
return QWidget::eventFilter(obj, event); return QWidget::eventFilter(obj, event);
} }

View File

@ -61,15 +61,20 @@ void TabsInkBar::animate()
bool TabsInkBar::eventFilter(QObject *obj, QEvent *event) bool TabsInkBar::eventFilter(QObject *obj, QEvent *event)
{ {
QEvent::Type type = event->type(); switch (event->type())
{
if (QEvent::ParentChange == type) { case QEvent::ParentChange:
setParent(tabs->parentWidget()); setParent(tabs->parentWidget());
} else if (QEvent::Resize == type || QEvent::Move == type) { break;
case QEvent::Resize:
case QEvent::Move:
QWidget *widget; QWidget *widget;
if ((widget = parentWidget())) { if ((widget = parentWidget())) {
setGeometry(widget->rect()); setGeometry(widget->rect());
} }
break;
default:
break;
} }
return QWidget::eventFilter(obj, event); return QWidget::eventFilter(obj, event);
} }

View File

@ -286,18 +286,27 @@ bool Toggle::event(QEvent *event)
{ {
Q_D(Toggle); Q_D(Toggle);
const QEvent::Type type = event->type(); switch (event->type())
{
if (QEvent::EnabledChange == type) { case QEvent::EnabledChange:
if (isEnabled()) { if (isEnabled()) {
d->machine.start(); d->machine.start();
} else { } else {
d->machine.stop(); d->machine.stop();
} }
} else if (QEvent::ParentChange == type && parentWidget()) { break;
d->ripple->setParent(parentWidget()); case QEvent::ParentChange:
} else if (QEvent::Resize == type || QEvent::Move == type) { QWidget *widget;
if ((widget = parentWidget())) {
d->ripple->setParent(widget);
}
break;
case QEvent::Resize:
case QEvent::Move:
d->ripple->setGeometry(geometry().adjusted(-10, -20, 10, 20)); d->ripple->setGeometry(geometry().adjusted(-10, -20, 10, 20));
break;
default:
break;
} }
return QAbstractButton::event(event); return QAbstractButton::event(event);
} }