make it possible to center ripple in flat button
This commit is contained in:
parent
078c3699cc
commit
921bc2aff4
|
@ -68,6 +68,13 @@ FlatButton::~FlatButton()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FlatButton::setRippleStyle(RippleStyle style)
|
||||||
|
{
|
||||||
|
Q_D(FlatButton);
|
||||||
|
|
||||||
|
d->rippleStyle = style;
|
||||||
|
}
|
||||||
|
|
||||||
void FlatButton::setRole(Material::Role role)
|
void FlatButton::setRole(Material::Role role)
|
||||||
{
|
{
|
||||||
Q_D(FlatButton);
|
Q_D(FlatButton);
|
||||||
|
@ -163,12 +170,17 @@ void FlatButton::mousePressEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
Q_D(FlatButton);
|
Q_D(FlatButton);
|
||||||
|
|
||||||
|
if (FlatButton::NoRipple == d->rippleStyle) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
QColor color = palette().color(QPalette::Active, QPalette::ButtonText);
|
QColor color = palette().color(QPalette::Active, QPalette::ButtonText);
|
||||||
|
|
||||||
Ripple *ripple = new Ripple(event->pos());
|
Ripple *ripple = new Ripple(FlatButton::CenteredRipple == d->rippleStyle
|
||||||
|
? rect().center() : event->pos());
|
||||||
|
|
||||||
ripple->setRadiusEndValue(100);
|
ripple->setRadiusEndValue(100);
|
||||||
ripple->setOpacityStartValue(0.4);
|
ripple->setOpacityStartValue(0.4);
|
||||||
|
|
||||||
ripple->setColor(color);
|
ripple->setColor(color);
|
||||||
|
|
||||||
d->ripple->addRipple(ripple);
|
d->ripple->addRipple(ripple);
|
||||||
|
|
|
@ -12,12 +12,20 @@ class FlatButton : public QPushButton
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
enum RippleStyle {
|
||||||
|
CenteredRipple,
|
||||||
|
PositionedRipple,
|
||||||
|
NoRipple
|
||||||
|
};
|
||||||
|
|
||||||
explicit FlatButton(QWidget *parent = 0);
|
explicit FlatButton(QWidget *parent = 0);
|
||||||
explicit FlatButton(const QString &text, QWidget *parent = 0);
|
explicit FlatButton(const QString &text, QWidget *parent = 0);
|
||||||
~FlatButton();
|
~FlatButton();
|
||||||
|
|
||||||
virtual void setRole(Material::Role role);
|
virtual void setRole(Material::Role role);
|
||||||
|
|
||||||
|
void setRippleStyle(RippleStyle style);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
FlatButton(FlatButtonPrivate &d, QWidget *parent = 0);
|
FlatButton(FlatButtonPrivate &d, QWidget *parent = 0);
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,8 @@ class FlatButtonPrivate
|
||||||
public:
|
public:
|
||||||
FlatButtonPrivate(FlatButton *q)
|
FlatButtonPrivate(FlatButton *q)
|
||||||
: q_ptr(q),
|
: q_ptr(q),
|
||||||
role(Material::Default)
|
role(Material::Default),
|
||||||
|
rippleStyle(FlatButton::PositionedRipple)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
|
@ -27,6 +28,7 @@ public:
|
||||||
RippleOverlay *ripple;
|
RippleOverlay *ripple;
|
||||||
FlatButtonDelegate *delegate;
|
FlatButtonDelegate *delegate;
|
||||||
Material::Role role;
|
Material::Role role;
|
||||||
|
FlatButton::RippleStyle rippleStyle;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // FLATBUTTON_P_H
|
#endif // FLATBUTTON_P_H
|
||||||
|
|
Loading…
Reference in New Issue