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)
|
||||
{
|
||||
Q_D(FlatButton);
|
||||
|
@ -163,12 +170,17 @@ void FlatButton::mousePressEvent(QMouseEvent *event)
|
|||
{
|
||||
Q_D(FlatButton);
|
||||
|
||||
if (FlatButton::NoRipple == d->rippleStyle) {
|
||||
return;
|
||||
}
|
||||
|
||||
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->setOpacityStartValue(0.4);
|
||||
|
||||
ripple->setColor(color);
|
||||
|
||||
d->ripple->addRipple(ripple);
|
||||
|
|
|
@ -12,12 +12,20 @@ class FlatButton : public QPushButton
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum RippleStyle {
|
||||
CenteredRipple,
|
||||
PositionedRipple,
|
||||
NoRipple
|
||||
};
|
||||
|
||||
explicit FlatButton(QWidget *parent = 0);
|
||||
explicit FlatButton(const QString &text, QWidget *parent = 0);
|
||||
~FlatButton();
|
||||
|
||||
virtual void setRole(Material::Role role);
|
||||
|
||||
void setRippleStyle(RippleStyle style);
|
||||
|
||||
protected:
|
||||
FlatButton(FlatButtonPrivate &d, QWidget *parent = 0);
|
||||
|
||||
|
|
|
@ -17,7 +17,8 @@ class FlatButtonPrivate
|
|||
public:
|
||||
FlatButtonPrivate(FlatButton *q)
|
||||
: q_ptr(q),
|
||||
role(Material::Default)
|
||||
role(Material::Default),
|
||||
rippleStyle(FlatButton::PositionedRipple)
|
||||
{}
|
||||
|
||||
void init();
|
||||
|
@ -27,6 +28,7 @@ public:
|
|||
RippleOverlay *ripple;
|
||||
FlatButtonDelegate *delegate;
|
||||
Material::Role role;
|
||||
FlatButton::RippleStyle rippleStyle;
|
||||
};
|
||||
|
||||
#endif // FLATBUTTON_P_H
|
||||
|
|
Loading…
Reference in New Issue