set palette for flat button

This commit is contained in:
laserpants 2016-05-14 20:00:31 +03:00
parent a7da6ce162
commit c86dee02f3
2 changed files with 26 additions and 16 deletions

View File

@ -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;

View File

@ -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