simplify setRole method

This commit is contained in:
laserpants 2016-05-14 20:13:32 +03:00
parent c86dee02f3
commit 3d2084d99e
2 changed files with 18 additions and 8 deletions

View File

@ -34,23 +34,18 @@ void FlatButton::setRole(Material::Role role)
d->role = role;
Style &style = Style::instance();
QPalette p(palette());
switch (role)
{
case Material::Primary:
p.setColor(QPalette::Active, QPalette::ButtonText, style.themeColor("primary1"));
d->setTextColor("primary1");
break;
case Material::Secondary:
p.setColor(QPalette::Active, QPalette::ButtonText, style.themeColor("accent1"));
d->setTextColor("accent1");
break;
default:
p.setColor(QPalette::Active, QPalette::ButtonText, style.themeColor("text"));
d->setTextColor("text");
break;
}
setPalette(p);
update();
}

View File

@ -14,6 +14,8 @@ class FlatButtonPrivate
public:
FlatButtonPrivate(FlatButton *parent);
void setTextColor(const QString &themeColor);
FlatButton *const q_ptr;
RippleOverlay *const ripple;
Material::Role role;
@ -42,4 +44,17 @@ FlatButtonPrivate::FlatButtonPrivate(FlatButton *parent)
parent->setPalette(palette);
}
void FlatButtonPrivate::setTextColor(const QString &themeColor)
{
Q_Q(FlatButton);
QPalette palette(q->palette());
Style &style = Style::instance();
palette.setColor(QPalette::Active, QPalette::ButtonText,
style.themeColor(themeColor));
q->setPalette(palette);
}
#endif // FLATBUTTON_P_H