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