Fab moved..

This commit is contained in:
Achraf k 2022-02-17 03:26:57 +01:00
parent 0e907a75c8
commit 1788acd81c
3 changed files with 74 additions and 66 deletions

View File

@ -5,6 +5,8 @@
#include <QEvent> #include <QEvent>
#include <QPainter> #include <QPainter>
#include "lib/qtmaterialrippleoverlay.h" #include "lib/qtmaterialrippleoverlay.h"
namespace md
{
/*! /*!
* \class QtMaterialFloatingActionButtonPrivate * \class QtMaterialFloatingActionButtonPrivate
@ -14,24 +16,24 @@
/*! /*!
* \internal * \internal
*/ */
QtMaterialFloatingActionButtonPrivate::QtMaterialFloatingActionButtonPrivate(QtMaterialFloatingActionButton *q) FloatingActionButtonPrivate::FloatingActionButtonPrivate(FloatingActionButton *q)
: QtMaterialRaisedButtonPrivate(q) : RaisedButtonPrivate(q)
{ {
} }
/*! /*!
* \internal * \internal
*/ */
QtMaterialFloatingActionButtonPrivate::~QtMaterialFloatingActionButtonPrivate() FloatingActionButtonPrivate::~FloatingActionButtonPrivate()
{ {
} }
/*! /*!
* \internal * \internal
*/ */
void QtMaterialFloatingActionButtonPrivate::init() void FloatingActionButtonPrivate::init()
{ {
Q_Q(QtMaterialFloatingActionButton); Q_Q(FloatingActionButton);
corner = Qt::BottomRightCorner; corner = Qt::BottomRightCorner;
mini = false; mini = false;
@ -54,9 +56,9 @@ void QtMaterialFloatingActionButtonPrivate::init()
/*! /*!
* \internal * \internal
*/ */
QRect QtMaterialFloatingActionButtonPrivate::fabGeometry() const QRect FloatingActionButtonPrivate::fabGeometry() const
{ {
Q_Q(const QtMaterialFloatingActionButton); Q_Q(const FloatingActionButton);
QWidget *parent = q->parentWidget(); QWidget *parent = q->parentWidget();
if (!parent) { if (!parent) {
@ -83,7 +85,7 @@ QRect QtMaterialFloatingActionButtonPrivate::fabGeometry() const
/*! /*!
* \internal * \internal
*/ */
void QtMaterialFloatingActionButtonPrivate::setupProperties() void FloatingActionButtonPrivate::setupProperties()
{ {
if (mini) { if (mini) {
effect->setColor(QColor(0, 0, 0, 80)); effect->setColor(QColor(0, 0, 0, 80));
@ -104,37 +106,37 @@ void QtMaterialFloatingActionButtonPrivate::setupProperties()
* \class QtMaterialFloatingActionButton * \class QtMaterialFloatingActionButton
*/ */
QtMaterialFloatingActionButton::QtMaterialFloatingActionButton(const QIcon &icon, QWidget *parent) FloatingActionButton::FloatingActionButton(const QIcon &icon, QWidget *parent)
: QtMaterialRaisedButton(*new QtMaterialFloatingActionButtonPrivate(this), parent) : RaisedButton(*new FloatingActionButtonPrivate(this), parent)
{ {
d_func()->init(); d_func()->init();
setIcon(icon); setIcon(icon);
} }
QtMaterialFloatingActionButton::~QtMaterialFloatingActionButton() FloatingActionButton::~FloatingActionButton()
{ {
} }
/*! /*!
* \reimp * \reimp
*/ */
QSize QtMaterialFloatingActionButton::sizeHint() const QSize FloatingActionButton::sizeHint() const
{ {
Q_D(const QtMaterialFloatingActionButton); Q_D(const FloatingActionButton);
if (d->mini) { if (d->mini) {
return QSize(QtMaterialFloatingActionButtonPrivate::MiniDiameter, return QSize(FloatingActionButtonPrivate::MiniDiameter,
QtMaterialFloatingActionButtonPrivate::MiniDiameter); FloatingActionButtonPrivate::MiniDiameter);
} else { } else {
return QSize(QtMaterialFloatingActionButtonPrivate::DefaultDiameter, return QSize(FloatingActionButtonPrivate::DefaultDiameter,
QtMaterialFloatingActionButtonPrivate::DefaultDiameter); FloatingActionButtonPrivate::DefaultDiameter);
} }
} }
void QtMaterialFloatingActionButton::setMini(bool state) void FloatingActionButton::setMini(bool state)
{ {
Q_D(QtMaterialFloatingActionButton); Q_D(FloatingActionButton);
if (d->mini == state) { if (d->mini == state) {
return; return;
@ -151,16 +153,16 @@ void QtMaterialFloatingActionButton::setMini(bool state)
update(); update();
} }
bool QtMaterialFloatingActionButton::isMini() const bool FloatingActionButton::isMini() const
{ {
Q_D(const QtMaterialFloatingActionButton); Q_D(const FloatingActionButton);
return d->mini; return d->mini;
} }
void QtMaterialFloatingActionButton::setCorner(Qt::Corner corner) void FloatingActionButton::setCorner(Qt::Corner corner)
{ {
Q_D(QtMaterialFloatingActionButton); Q_D(FloatingActionButton);
if (d->corner == corner) { if (d->corner == corner) {
return; return;
@ -171,16 +173,16 @@ void QtMaterialFloatingActionButton::setCorner(Qt::Corner corner)
update(); update();
} }
Qt::Corner QtMaterialFloatingActionButton::corner() const Qt::Corner FloatingActionButton::corner() const
{ {
Q_D(const QtMaterialFloatingActionButton); Q_D(const FloatingActionButton);
return d->corner; return d->corner;
} }
void QtMaterialFloatingActionButton::setOffset(int x, int y) void FloatingActionButton::setOffset(int x, int y)
{ {
Q_D(QtMaterialFloatingActionButton); Q_D(FloatingActionButton);
d->offsX = x; d->offsX = x;
d->offsY = y; d->offsY = y;
@ -188,41 +190,41 @@ void QtMaterialFloatingActionButton::setOffset(int x, int y)
update(); update();
} }
QSize QtMaterialFloatingActionButton::offset() const QSize FloatingActionButton::offset() const
{ {
Q_D(const QtMaterialFloatingActionButton); Q_D(const FloatingActionButton);
return QSize(d->offsX, d->offsY); return QSize(d->offsX, d->offsY);
} }
void QtMaterialFloatingActionButton::setXOffset(int x) void FloatingActionButton::setXOffset(int x)
{ {
Q_D(QtMaterialFloatingActionButton); Q_D(FloatingActionButton);
d->offsX = x; d->offsX = x;
setGeometry(d->fabGeometry()); setGeometry(d->fabGeometry());
update(); update();
} }
int QtMaterialFloatingActionButton::xOffset() const int FloatingActionButton::xOffset() const
{ {
Q_D(const QtMaterialFloatingActionButton); Q_D(const FloatingActionButton);
return d->offsX; return d->offsX;
} }
void QtMaterialFloatingActionButton::setYOffset(int y) void FloatingActionButton::setYOffset(int y)
{ {
Q_D(QtMaterialFloatingActionButton); Q_D(FloatingActionButton);
d->offsY = y; d->offsY = y;
setGeometry(d->fabGeometry()); setGeometry(d->fabGeometry());
update(); update();
} }
int QtMaterialFloatingActionButton::yOffset() const int FloatingActionButton::yOffset() const
{ {
Q_D(const QtMaterialFloatingActionButton); Q_D(const FloatingActionButton);
return d->offsY; return d->offsY;
} }
@ -230,12 +232,12 @@ int QtMaterialFloatingActionButton::yOffset() const
/*! /*!
* \reimp * \reimp
*/ */
bool QtMaterialFloatingActionButton::event(QEvent *event) bool FloatingActionButton::event(QEvent *event)
{ {
Q_D(QtMaterialFloatingActionButton); Q_D(FloatingActionButton);
if (!parent()) { if (!parent()) {
return QtMaterialRaisedButton::event(event); return RaisedButton::event(event);
} }
switch (event->type()) switch (event->type())
{ {
@ -253,33 +255,33 @@ bool QtMaterialFloatingActionButton::event(QEvent *event)
default: default:
break; break;
} }
return QtMaterialRaisedButton::event(event); return RaisedButton::event(event);
} }
/*! /*!
* \reimp * \reimp
*/ */
bool QtMaterialFloatingActionButton::eventFilter(QObject *obj, QEvent *event) bool FloatingActionButton::eventFilter(QObject *obj, QEvent *event)
{ {
const QEvent::Type type = event->type(); const QEvent::Type type = event->type();
if (QEvent::Move == type || QEvent::Resize == type) if (QEvent::Move == type || QEvent::Resize == type)
{ {
Q_D(QtMaterialFloatingActionButton); Q_D(FloatingActionButton);
setGeometry(d->fabGeometry()); setGeometry(d->fabGeometry());
} }
return QtMaterialRaisedButton::eventFilter(obj, event); return RaisedButton::eventFilter(obj, event);
} }
/*! /*!
* \reimp * \reimp
*/ */
void QtMaterialFloatingActionButton::paintEvent(QPaintEvent *event) void FloatingActionButton::paintEvent(QPaintEvent *event)
{ {
Q_UNUSED(event) Q_UNUSED(event)
Q_D(QtMaterialFloatingActionButton); Q_D(FloatingActionButton);
QRect square = QRect(0, 0, d->diameter(), d->diameter()); QRect square = QRect(0, 0, d->diameter(), d->diameter());
square.moveCenter(rect().center()); square.moveCenter(rect().center());
@ -311,11 +313,13 @@ void QtMaterialFloatingActionButton::paintEvent(QPaintEvent *event)
painter.drawPixmap(iconGeometry, pixmap); painter.drawPixmap(iconGeometry, pixmap);
} }
void QtMaterialFloatingActionButton::updateClipPath() void FloatingActionButton::updateClipPath()
{ {
Q_D(QtMaterialFloatingActionButton); Q_D(FloatingActionButton);
QPainterPath path; QPainterPath path;
path.addEllipse(0, 0, d->diameter(), d->diameter()); path.addEllipse(0, 0, d->diameter(), d->diameter());
d->rippleOverlay->setClipPath(path); d->rippleOverlay->setClipPath(path);
} }
}

View File

@ -2,16 +2,18 @@
#define QTMATERIALFAB_H #define QTMATERIALFAB_H
#include "qtmaterialraisedbutton.h" #include "qtmaterialraisedbutton.h"
namespace md
{
class QtMaterialFloatingActionButtonPrivate; class FloatingActionButtonPrivate;
class QtMaterialFloatingActionButton : public QtMaterialRaisedButton class FloatingActionButton : public RaisedButton
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit QtMaterialFloatingActionButton(const QIcon &icon, QWidget *parent = 0); explicit FloatingActionButton(const QIcon &icon, QWidget *parent = 0);
~QtMaterialFloatingActionButton(); ~FloatingActionButton();
QSize sizeHint() const Q_DECL_OVERRIDE; QSize sizeHint() const Q_DECL_OVERRIDE;
@ -38,9 +40,9 @@ protected:
void updateClipPath() Q_DECL_OVERRIDE; void updateClipPath() Q_DECL_OVERRIDE;
private: private:
Q_DISABLE_COPY(QtMaterialFloatingActionButton) Q_DISABLE_COPY(FloatingActionButton)
Q_DECLARE_PRIVATE(QtMaterialFloatingActionButton) Q_DECLARE_PRIVATE(FloatingActionButton)
}; };
}
#endif // QTMATERIALFAB_H #endif // QTMATERIALFAB_H

View File

@ -2,13 +2,15 @@
#define QTMATERIALFAB_P_H #define QTMATERIALFAB_P_H
#include "qtmaterialraisedbutton_p.h" #include "qtmaterialraisedbutton_p.h"
namespace md
class QtMaterialFloatingActionButton;
class QtMaterialFloatingActionButtonPrivate : public QtMaterialRaisedButtonPrivate
{ {
Q_DISABLE_COPY(QtMaterialFloatingActionButtonPrivate)
Q_DECLARE_PUBLIC(QtMaterialFloatingActionButton) class FloatingActionButton;
class FloatingActionButtonPrivate : public RaisedButtonPrivate
{
Q_DISABLE_COPY(FloatingActionButtonPrivate)
Q_DECLARE_PUBLIC(FloatingActionButton)
public: public:
enum { enum {
@ -21,8 +23,8 @@ public:
MiniIconSize = 18 MiniIconSize = 18
}; };
QtMaterialFloatingActionButtonPrivate(QtMaterialFloatingActionButton *q); FloatingActionButtonPrivate(FloatingActionButton *q);
~QtMaterialFloatingActionButtonPrivate(); ~FloatingActionButtonPrivate();
void init(); void init();
QRect fabGeometry() const; QRect fabGeometry() const;
@ -37,14 +39,14 @@ public:
int offsY; int offsY;
}; };
inline int QtMaterialFloatingActionButtonPrivate::diameter() const inline int FloatingActionButtonPrivate::diameter() const
{ {
return mini ? MiniDiameter : DefaultDiameter; return mini ? MiniDiameter : DefaultDiameter;
} }
inline int QtMaterialFloatingActionButtonPrivate::iconSize() const inline int FloatingActionButtonPrivate::iconSize() const
{ {
return mini ? MiniIconSize : DefaultIconSize; return mini ? MiniIconSize : DefaultIconSize;
} }
}
#endif // QTMATERIALFAB_P_H #endif // QTMATERIALFAB_P_H