make Style class singleton
This commit is contained in:
parent
fc933ae16c
commit
64fa985928
|
@ -3,11 +3,13 @@
|
|||
#include <QMouseEvent>
|
||||
#include <QApplication>
|
||||
#include "flatbutton.h"
|
||||
#include "style.h"
|
||||
|
||||
FlatButton::FlatButton(QWidget *parent)
|
||||
: QAbstractButton(parent),
|
||||
_overlay(new RippleOverlay(this))
|
||||
{
|
||||
setStyle(&Style::instance());
|
||||
}
|
||||
|
||||
FlatButton::FlatButton(const QString &text, QWidget *parent)
|
||||
|
@ -15,6 +17,7 @@ FlatButton::FlatButton(const QString &text, QWidget *parent)
|
|||
_overlay(new RippleOverlay(this))
|
||||
{
|
||||
setText(text);
|
||||
setStyle(&Style::instance());
|
||||
}
|
||||
|
||||
FlatButton::~FlatButton()
|
||||
|
@ -51,8 +54,8 @@ QSize FlatButton::sizeHint() const
|
|||
w += sz.width();
|
||||
if (!empty || !h)
|
||||
h = qMax(h, sz.height());
|
||||
return (style()->sizeFromContents(QStyle::CT_PushButton, &option, QSize(w, h), this).
|
||||
expandedTo(QApplication::globalStrut()));
|
||||
return (style()->sizeFromContents(QStyle::CT_PushButton, &option, QSize(w, h), this)
|
||||
.expandedTo(QApplication::globalStrut()));
|
||||
}
|
||||
|
||||
void FlatButton::resizeEvent(QResizeEvent *event)
|
||||
|
@ -68,11 +71,9 @@ void FlatButton::paintEvent(QPaintEvent *event)
|
|||
|
||||
QStylePainter painter(this);
|
||||
|
||||
QStyleOptionButton option(getStyleOption());
|
||||
painter.drawControl(QStyle::CE_PushButton, getStyleOption());
|
||||
|
||||
painter.drawControl(QStyle::CE_PushButton, option);
|
||||
|
||||
if (underMouse()) {
|
||||
if (testAttribute(Qt::WA_Hover) && underMouse()) {
|
||||
QRect r(rect());
|
||||
QBrush brush;
|
||||
brush.setStyle(Qt::SolidPattern);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include <QDebug>
|
||||
#include "iconbutton.h"
|
||||
#include "../lib/rippleoverlay.h"
|
||||
#include "style.h"
|
||||
|
||||
IconButton::IconButton(const QIcon &icon, QWidget *parent)
|
||||
: QAbstractButton(parent),
|
||||
|
@ -18,6 +19,8 @@ IconButton::IconButton(const QIcon &icon, QWidget *parent)
|
|||
setSizePolicy(policy);
|
||||
|
||||
setGeometryWidget(this);
|
||||
|
||||
setStyle(&Style::instance());
|
||||
}
|
||||
|
||||
IconButton::~IconButton()
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#include <QEvent>
|
||||
#include <QHeaderView>
|
||||
#include "table.h"
|
||||
#include "style.h"
|
||||
|
||||
Table::Table(QWidget *parent)
|
||||
: QTableWidget(parent)
|
||||
|
@ -10,6 +11,8 @@ Table::Table(QWidget *parent)
|
|||
setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||
setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
|
||||
|
||||
setStyle(&Style::instance());
|
||||
}
|
||||
|
||||
Table::~Table()
|
||||
|
|
18
style.cpp
18
style.cpp
|
@ -1,17 +1,9 @@
|
|||
#include <QDebug>
|
||||
#include <QPainter>
|
||||
#include <QStyleOption>
|
||||
#include <QStyleOptionButton>
|
||||
#include "style.h"
|
||||
|
||||
Style::Style()
|
||||
: QProxyStyle()
|
||||
{
|
||||
}
|
||||
|
||||
Style::~Style()
|
||||
{
|
||||
}
|
||||
|
||||
void Style::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p,
|
||||
const QWidget *w) const
|
||||
{
|
||||
|
@ -20,7 +12,7 @@ void Style::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter
|
|||
switch (pe) {
|
||||
case PE_FrameFocusRect:
|
||||
p->setPen(Qt::blue);
|
||||
p->drawRect(opt->rect);
|
||||
p->drawRect(opt->rect.adjusted(0, 0, -1, -1));
|
||||
break;
|
||||
default:
|
||||
QProxyStyle::drawPrimitive(pe, opt, p, w);
|
||||
|
@ -33,6 +25,12 @@ void Style::drawControl(ControlElement element, const QStyleOption *opt,
|
|||
qDebug() << element;
|
||||
|
||||
switch (element) {
|
||||
case CE_CheckBox:
|
||||
if (const QStyleOptionButton *item = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
|
||||
|
||||
}
|
||||
p->fillRect(opt->rect, Qt::black);
|
||||
break;
|
||||
/*
|
||||
case CE_FocusFrame:
|
||||
p->fillRect(opt->rect, opt->palette.foreground());
|
||||
|
|
15
style.h
15
style.h
|
@ -3,14 +3,16 @@
|
|||
|
||||
#include <QProxyStyle>
|
||||
|
||||
//class Style : public QCommonStyle
|
||||
class Style : public QProxyStyle
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Style();
|
||||
~Style();
|
||||
static Style &instance()
|
||||
{
|
||||
static Style instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p,
|
||||
const QWidget *w = 0) const Q_DECL_OVERRIDE;
|
||||
|
@ -24,7 +26,12 @@ public:
|
|||
const QWidget *w = 0) const Q_DECL_OVERRIDE;
|
||||
|
||||
int pixelMetric(PixelMetric m, const QStyleOption *opt = 0, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
|
||||
|
||||
private:
|
||||
Style() {}
|
||||
|
||||
Style(Style const&);
|
||||
void operator=(Style const&);
|
||||
};
|
||||
|
||||
|
||||
#endif // STYLE_H
|
||||
|
|
Loading…
Reference in New Issue