make FlatButton pimpl
This commit is contained in:
parent
c4a17f9dfa
commit
4bc4d6aa92
|
@ -7,36 +7,19 @@
|
|||
#include "lib/style.h"
|
||||
#include "lib/rippleoverlay.h"
|
||||
|
||||
#include "flatbutton_p.h"
|
||||
|
||||
FlatButton::FlatButton(QWidget *parent)
|
||||
: QPushButton(parent),
|
||||
_ripple(new RippleOverlay(this))
|
||||
d_ptr(new FlatButtonPrivate(this))
|
||||
{
|
||||
setStyle(&Style::instance());
|
||||
setAttribute(Qt::WA_Hover);
|
||||
setMouseTracking(true);
|
||||
|
||||
QFont f(font());
|
||||
f.setCapitalization(QFont::AllUppercase);
|
||||
f.setPointSizeF(10.5);
|
||||
f.setStyleName("Medium");
|
||||
setFont(f);
|
||||
}
|
||||
|
||||
FlatButton::FlatButton(const QString &text, QWidget *parent)
|
||||
: QPushButton(parent),
|
||||
_ripple(new RippleOverlay(this))
|
||||
d_ptr(new FlatButtonPrivate(this))
|
||||
{
|
||||
setText(text);
|
||||
|
||||
setStyle(&Style::instance());
|
||||
setAttribute(Qt::WA_Hover);
|
||||
setMouseTracking(true);
|
||||
|
||||
QFont f(font());
|
||||
f.setCapitalization(QFont::AllUppercase);
|
||||
f.setPointSizeF(10.5);
|
||||
f.setStyleName("Medium");
|
||||
setFont(f);
|
||||
}
|
||||
|
||||
FlatButton::~FlatButton()
|
||||
|
@ -45,8 +28,10 @@ FlatButton::~FlatButton()
|
|||
|
||||
void FlatButton::resizeEvent(QResizeEvent *event)
|
||||
{
|
||||
if (_ripple) {
|
||||
_ripple->setGeometry(rect());
|
||||
Q_D(FlatButton);
|
||||
|
||||
if (d->ripple) {
|
||||
d->ripple->setGeometry(rect());
|
||||
}
|
||||
|
||||
QPushButton::resizeEvent(event);
|
||||
|
@ -56,8 +41,6 @@ void FlatButton::paintEvent(QPaintEvent *event)
|
|||
{
|
||||
Q_UNUSED(event)
|
||||
|
||||
//painter.drawRect(rect().adjusted(0, 0, -1, -1));
|
||||
|
||||
QStylePainter painter(this);
|
||||
|
||||
QStyleOptionButton option;
|
||||
|
@ -87,7 +70,9 @@ void FlatButton::paintEvent(QPaintEvent *event)
|
|||
|
||||
void FlatButton::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
_ripple->addRipple(event->pos());
|
||||
Q_D(FlatButton);
|
||||
|
||||
d->ripple->addRipple(event->pos());
|
||||
|
||||
QPushButton::mousePressEvent(event);
|
||||
}
|
||||
|
|
|
@ -2,8 +2,9 @@
|
|||
#define FLATBUTTON_H
|
||||
|
||||
#include <QPushButton>
|
||||
#include <QScopedPointer>
|
||||
|
||||
class RippleOverlay;
|
||||
class FlatButtonPrivate;
|
||||
|
||||
class FlatButton : public QPushButton
|
||||
{
|
||||
|
@ -21,8 +22,11 @@ protected:
|
|||
void enterEvent(QEvent *event) Q_DECL_OVERRIDE;
|
||||
void leaveEvent(QEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
const QScopedPointer<FlatButtonPrivate> d_ptr;
|
||||
|
||||
private:
|
||||
RippleOverlay *const _ripple;
|
||||
Q_DISABLE_COPY(FlatButton)
|
||||
Q_DECLARE_PRIVATE(FlatButton)
|
||||
};
|
||||
|
||||
#endif // FLATBUTTON_H
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
#ifndef FLATBUTTON_P_H
|
||||
#define FLATBUTTON_P_H
|
||||
|
||||
#include "flatbutton.h"
|
||||
#include "lib/rippleoverlay.h"
|
||||
|
||||
class FlatButtonPrivate
|
||||
{
|
||||
Q_DISABLE_COPY(FlatButtonPrivate)
|
||||
Q_DECLARE_PUBLIC(FlatButton)
|
||||
|
||||
public:
|
||||
FlatButtonPrivate(FlatButton *parent);
|
||||
|
||||
FlatButton *const q_ptr;
|
||||
RippleOverlay *const ripple;
|
||||
};
|
||||
|
||||
FlatButtonPrivate::FlatButtonPrivate(FlatButton *parent)
|
||||
: q_ptr(parent),
|
||||
ripple(new RippleOverlay(parent))
|
||||
{
|
||||
parent->setStyle(&Style::instance());
|
||||
parent->setAttribute(Qt::WA_Hover);
|
||||
parent->setMouseTracking(true);
|
||||
|
||||
QFont font(parent->font());
|
||||
font.setCapitalization(QFont::AllUppercase);
|
||||
font.setPointSizeF(10.5);
|
||||
font.setStyleName("Medium");
|
||||
parent->setFont(font);
|
||||
}
|
||||
|
||||
#endif // FLATBUTTON_P_H
|
|
@ -52,17 +52,15 @@ SliderPrivate::SliderPrivate(Slider *parent)
|
|||
oldValue(parent->value()),
|
||||
trackWidth(2)
|
||||
{
|
||||
Q_Q(Slider);
|
||||
|
||||
q->setMouseTracking(true);
|
||||
q->setFocusPolicy(Qt::StrongFocus);
|
||||
q->setPageStep(1);
|
||||
parent->setMouseTracking(true);
|
||||
parent->setFocusPolicy(Qt::StrongFocus);
|
||||
parent->setPageStep(1);
|
||||
|
||||
QSizePolicy sp(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
||||
if (q->orientation() == Qt::Vertical)
|
||||
if (parent->orientation() == Qt::Vertical)
|
||||
sp.transpose();
|
||||
q->setSizePolicy(sp);
|
||||
q->setAttribute(Qt::WA_WState_OwnSizePolicy, false);
|
||||
parent->setSizePolicy(sp);
|
||||
parent->setAttribute(Qt::WA_WState_OwnSizePolicy, false);
|
||||
|
||||
machine->start();
|
||||
|
||||
|
|
|
@ -102,7 +102,8 @@ HEADERS += mainwindow.h \
|
|||
components/searchfield.h \
|
||||
lib/theme.h \
|
||||
lib/theme_p.h \
|
||||
components/sliderinternal.h
|
||||
components/sliderinternal.h \
|
||||
components/flatbutton_p.h
|
||||
|
||||
RESOURCES += \
|
||||
resources.qrc
|
||||
|
|
Loading…
Reference in New Issue