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)
{
QEvent::Type type = event->type();
if (QEvent::ParentChange == type && parentWidget())
switch (event->type())
{
case QEvent::ParentChange:
{
if (!parent())
break;
Q_D(FloatingActionButton);
parent()->installEventFilter(this);
setGeometry(d->fabGeometry());
break;
}
else if (QEvent::ParentAboutToChange == type && parentWidget())
case QEvent::ParentAboutToChange:
{
if (!parent())
break;
parent()->removeEventFilter(this);
break;
}
default:
break;
}
return RaisedButton::event(event);
}

View File

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

View File

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

View File

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

View File

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

View File

@ -286,18 +286,27 @@ bool Toggle::event(QEvent *event)
{
Q_D(Toggle);
const QEvent::Type type = event->type();
if (QEvent::EnabledChange == type) {
switch (event->type())
{
case QEvent::EnabledChange:
if (isEnabled()) {
d->machine.start();
} else {
d->machine.stop();
}
} else if (QEvent::ParentChange == type && parentWidget()) {
d->ripple->setParent(parentWidget());
} else if (QEvent::Resize == type || QEvent::Move == type) {
break;
case QEvent::ParentChange:
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));
break;
default:
break;
}
return QAbstractButton::event(event);
}