handle overlay geometry
This commit is contained in:
parent
cdd16e1230
commit
51cf801c88
|
@ -1,25 +1,54 @@
|
||||||
#include "flatbutton.h"
|
#include "flatbutton.h"
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
#include <QMouseEvent>
|
||||||
#include "lib/style.h"
|
#include "lib/style.h"
|
||||||
|
#include "lib/rippleoverlay.h"
|
||||||
|
|
||||||
FlatButton::FlatButton(QWidget *parent)
|
FlatButton::FlatButton(QWidget *parent)
|
||||||
: QPushButton(parent)
|
: QPushButton(parent),
|
||||||
|
_ripple(new RippleOverlay(this))
|
||||||
{
|
{
|
||||||
setStyle(&Style::instance());
|
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)
|
FlatButton::FlatButton(const QString &text, QWidget *parent)
|
||||||
: QPushButton(parent)
|
: QPushButton(parent),
|
||||||
|
_ripple(new RippleOverlay(this))
|
||||||
{
|
{
|
||||||
setText(text);
|
setText(text);
|
||||||
|
|
||||||
setStyle(&Style::instance());
|
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()
|
FlatButton::~FlatButton()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FlatButton::resizeEvent(QResizeEvent *event)
|
||||||
|
{
|
||||||
|
if (_ripple) {
|
||||||
|
_ripple->setGeometry(rect());
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton::resizeEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
void FlatButton::paintEvent(QPaintEvent *event)
|
void FlatButton::paintEvent(QPaintEvent *event)
|
||||||
{
|
{
|
||||||
Q_UNUSED(event)
|
Q_UNUSED(event)
|
||||||
|
@ -29,6 +58,13 @@ void FlatButton::paintEvent(QPaintEvent *event)
|
||||||
painter.drawRect(rect().adjusted(0, 0, -1, -1));
|
painter.drawRect(rect().adjusted(0, 0, -1, -1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FlatButton::mousePressEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
_ripple->addRipple(event->pos());
|
||||||
|
|
||||||
|
QPushButton::mousePressEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
//#include <QDebug>
|
//#include <QDebug>
|
||||||
//#include <QStylePainter>
|
//#include <QStylePainter>
|
||||||
//#include <QMouseEvent>
|
//#include <QMouseEvent>
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
|
|
||||||
|
class RippleOverlay;
|
||||||
|
|
||||||
class FlatButton : public QPushButton
|
class FlatButton : public QPushButton
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -13,7 +15,12 @@ public:
|
||||||
~FlatButton();
|
~FlatButton();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
|
||||||
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
|
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
|
||||||
|
void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
|
private:
|
||||||
|
RippleOverlay *const _ripple;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // FLATBUTTON_H
|
#endif // FLATBUTTON_H
|
||||||
|
|
Loading…
Reference in New Issue