diff --git a/components/flatbutton.cpp b/components/flatbutton.cpp index f25d71d..4b61666 100644 --- a/components/flatbutton.cpp +++ b/components/flatbutton.cpp @@ -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(); } diff --git a/components/flatbutton_p.h b/components/flatbutton_p.h index 6f3f416..02cd22b 100644 --- a/components/flatbutton_p.h +++ b/components/flatbutton_p.h @@ -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