diff --git a/components/flatbutton.cpp b/components/flatbutton.cpp index f392e8d..f25d71d 100644 --- a/components/flatbutton.cpp +++ b/components/flatbutton.cpp @@ -34,20 +34,22 @@ void FlatButton::setRole(Material::Role role) d->role = role; - //Style &style = Style::instance(); - //switch (role) - //{ - //case Material::Primary: - // d->palette.setColor(QPalette::ButtonText, style.themeColor("primary1")); - // break; - //case Material::Secondary: - // d->palette.setColor(QPalette::ButtonText, style.themeColor("accent1")); - // break; - //default: - // d->palette.setColor(QPalette::ButtonText, style.themeColor("text")); - // break; - //} - //setPalette(d->palette); + Style &style = Style::instance(); + QPalette p(palette()); + + switch (role) + { + case Material::Primary: + p.setColor(QPalette::Active, QPalette::ButtonText, style.themeColor("primary1")); + break; + case Material::Secondary: + p.setColor(QPalette::Active, QPalette::ButtonText, style.themeColor("accent1")); + break; + default: + p.setColor(QPalette::Active, QPalette::ButtonText, style.themeColor("text")); + break; + } + setPalette(p); update(); } @@ -75,7 +77,7 @@ void FlatButton::paintEvent(QPaintEvent *event) painter.drawControl(QStyle::CE_PushButtonLabel, option); - if (testAttribute(Qt::WA_Hover) && underMouse()) + if (isEnabled() && testAttribute(Qt::WA_Hover) && underMouse()) { QPainter painter(this); QBrush brush; diff --git a/components/flatbutton_p.h b/components/flatbutton_p.h index 26cd8a2..6f3f416 100644 --- a/components/flatbutton_p.h +++ b/components/flatbutton_p.h @@ -4,6 +4,7 @@ #include "flatbutton.h" #include "lib/rippleoverlay.h" #include "lib/theme.h" +#include "lib/style.h" class FlatButtonPrivate { @@ -23,7 +24,9 @@ FlatButtonPrivate::FlatButtonPrivate(FlatButton *parent) ripple(new RippleOverlay(parent)), role(Material::Default) { - parent->setStyle(&Style::instance()); + Style &style = Style::instance(); + + parent->setStyle(&style); parent->setAttribute(Qt::WA_Hover); parent->setMouseTracking(true); @@ -32,6 +35,11 @@ FlatButtonPrivate::FlatButtonPrivate(FlatButton *parent) font.setPointSizeF(10.5); font.setStyleName("Medium"); parent->setFont(font); + + QPalette palette; + palette.setColor(QPalette::Disabled, QPalette::ButtonText, + style.themeColor("disabled")); + parent->setPalette(palette); } #endif // FLATBUTTON_P_H