style FAB and Raised Button for disabled mode

This commit is contained in:
laserpants 2016-06-12 17:40:56 +03:00
parent 49f9937545
commit 065a2c6304
5 changed files with 33 additions and 2 deletions

View File

@ -193,7 +193,8 @@ void FloatingActionButton::paintEvent(QPaintEvent *event)
QBrush brush;
brush.setStyle(Qt::SolidPattern);
brush.setColor(isEnabled()
? backgroundColor() : palette().color(QPalette::Disabled, QPalette::Background));
? backgroundColor()
: disabledTextColor());
painter.setBrush(brush);
painter.setPen(Qt::NoPen);

View File

@ -109,6 +109,25 @@ RaisedButton::~RaisedButton()
{
}
void RaisedButton::setDisabledBackgroundColor(const QColor &color)
{
Q_D(RaisedButton);
d->disabledBackgroundColor = color;
setUseThemeColors(false);
}
QColor RaisedButton::disabledBackgroundColor() const
{
Q_D(const RaisedButton);
if (d->useThemeColors || !d->disabledBackgroundColor.isValid()) {
return Style::instance().themeColor("disabled3");
} else {
return d->disabledBackgroundColor;
}
}
RaisedButton::RaisedButton(RaisedButtonPrivate &d, QWidget *parent)
: FlatButton(d, parent)
{
@ -122,8 +141,10 @@ bool RaisedButton::event(QEvent *event)
if (QEvent::EnabledChange == event->type()) {
if (isEnabled()) {
d->machine.start();
d->effect->setEnabled(true);
} else {
d->machine.stop();
d->effect->setEnabled(false);
}
}
return FlatButton::event(event);
@ -145,7 +166,8 @@ void RaisedButton::paintEvent(QPaintEvent *event)
QBrush brush;
brush.setStyle(Qt::SolidPattern);
brush.setColor(isEnabled()
? backgroundColor() : palette().color(QPalette::Disabled, QPalette::Background));
? backgroundColor()
: disabledBackgroundColor());
painter.setBrush(brush);
painter.setPen(Qt::NoPen);
painter.drawRoundedRect(rect(), cr, cr);

View File

@ -9,10 +9,15 @@ class RaisedButton : public FlatButton
{
Q_OBJECT
Q_PROPERTY(QColor disabledBackgroundColor WRITE setDisabledBackgroundColor READ disabledBackgroundColor)
public:
explicit RaisedButton(QWidget *parent = 0);
~RaisedButton();
void setDisabledBackgroundColor(const QColor &color);
QColor disabledBackgroundColor() const;
protected:
RaisedButton(RaisedButtonPrivate &d, QWidget *parent = 0);

View File

@ -20,6 +20,7 @@ public:
QState *normalState;
QState *pressedState;
QGraphicsDropShadowEffect *effect;
QColor disabledBackgroundColor;
};
#endif // RAISEDBUTTON_P_H

View File

@ -24,6 +24,8 @@ Theme::Theme(QObject *parent)
setColor("canvas", Material::white);
setColor("border", Material::grey300);
setColor("disabled", Material::minBlack);
setColor("disabled2", Material::faintBlack);
setColor("disabled3", Material::grey300);
}
Theme::~Theme()