ScrollBar moved
This commit is contained in:
parent
b8cb380b32
commit
ef1427c9f3
|
@ -5,31 +5,33 @@
|
|||
#include <QDebug>
|
||||
#include "qtmaterialscrollbar_internal.h"
|
||||
#include "lib/qtmaterialstyle.h"
|
||||
namespace md
|
||||
{
|
||||
|
||||
/*!
|
||||
* \class QtMaterialScrollBarPrivate
|
||||
* \internal
|
||||
*/
|
||||
|
||||
QtMaterialScrollBarPrivate::QtMaterialScrollBarPrivate(QtMaterialScrollBar *q)
|
||||
ScrollBarPrivate::ScrollBarPrivate(ScrollBar *q)
|
||||
: q_ptr(q)
|
||||
{
|
||||
}
|
||||
|
||||
QtMaterialScrollBarPrivate::~QtMaterialScrollBarPrivate()
|
||||
ScrollBarPrivate::~ScrollBarPrivate()
|
||||
{
|
||||
}
|
||||
|
||||
void QtMaterialScrollBarPrivate::init()
|
||||
void ScrollBarPrivate::init()
|
||||
{
|
||||
Q_Q(QtMaterialScrollBar);
|
||||
Q_Q(ScrollBar);
|
||||
|
||||
stateMachine = new QtMaterialScrollBarStateMachine(q);
|
||||
stateMachine = new ScrollBarStateMachine(q);
|
||||
hideOnMouseOut = true;
|
||||
useThemeColors = true;
|
||||
|
||||
q->setMouseTracking(true);
|
||||
q->setStyle(&QtMaterialStyle::instance());
|
||||
q->setStyle(&Style::instance());
|
||||
q->setStyleSheet("QScrollBar:vertical { margin: 0; }"
|
||||
"QScrollBar::add-line:vertical { height: 0; margin: 0; }"
|
||||
"QScrollBar::sub-line:vertical { height: 0; margin: 0; }");
|
||||
|
@ -41,21 +43,21 @@ void QtMaterialScrollBarPrivate::init()
|
|||
* \class QtMaterialScrollBar
|
||||
*/
|
||||
|
||||
QtMaterialScrollBar::QtMaterialScrollBar(QWidget *parent)
|
||||
ScrollBar::ScrollBar(QWidget *parent)
|
||||
: QScrollBar(parent),
|
||||
d_ptr(new QtMaterialScrollBarPrivate(this))
|
||||
d_ptr(new ScrollBarPrivate(this))
|
||||
{
|
||||
d_func()->init();
|
||||
}
|
||||
|
||||
QtMaterialScrollBar::~QtMaterialScrollBar()
|
||||
ScrollBar::~ScrollBar()
|
||||
{
|
||||
}
|
||||
|
||||
/*!
|
||||
* \reimp
|
||||
*/
|
||||
QSize QtMaterialScrollBar::sizeHint() const
|
||||
QSize ScrollBar::sizeHint() const
|
||||
{
|
||||
if (Qt::Horizontal == orientation()) {
|
||||
return QSize(1, 10);
|
||||
|
@ -64,9 +66,9 @@ QSize QtMaterialScrollBar::sizeHint() const
|
|||
}
|
||||
}
|
||||
|
||||
void QtMaterialScrollBar::setUseThemeColors(bool value)
|
||||
void ScrollBar::setUseThemeColors(bool value)
|
||||
{
|
||||
Q_D(QtMaterialScrollBar);
|
||||
Q_D(ScrollBar);
|
||||
|
||||
if (d->useThemeColors == value) {
|
||||
return;
|
||||
|
@ -76,16 +78,16 @@ void QtMaterialScrollBar::setUseThemeColors(bool value)
|
|||
update();
|
||||
}
|
||||
|
||||
bool QtMaterialScrollBar::useThemeColors() const
|
||||
bool ScrollBar::useThemeColors() const
|
||||
{
|
||||
Q_D(const QtMaterialScrollBar);
|
||||
Q_D(const ScrollBar);
|
||||
|
||||
return d->useThemeColors;
|
||||
}
|
||||
|
||||
void QtMaterialScrollBar::setCanvasColor(const QColor &color)
|
||||
void ScrollBar::setCanvasColor(const QColor &color)
|
||||
{
|
||||
Q_D(QtMaterialScrollBar);
|
||||
Q_D(ScrollBar);
|
||||
|
||||
d->canvasColor = color;
|
||||
|
||||
|
@ -93,9 +95,9 @@ void QtMaterialScrollBar::setCanvasColor(const QColor &color)
|
|||
update();
|
||||
}
|
||||
|
||||
QColor QtMaterialScrollBar::canvasColor() const
|
||||
QColor ScrollBar::canvasColor() const
|
||||
{
|
||||
Q_D(const QtMaterialScrollBar);
|
||||
Q_D(const ScrollBar);
|
||||
|
||||
if (d->useThemeColors || !d->canvasColor.isValid()) {
|
||||
return parentWidget()->palette().color(backgroundRole());
|
||||
|
@ -104,9 +106,9 @@ QColor QtMaterialScrollBar::canvasColor() const
|
|||
}
|
||||
}
|
||||
|
||||
void QtMaterialScrollBar::setBackgroundColor(const QColor &color)
|
||||
void ScrollBar::setBackgroundColor(const QColor &color)
|
||||
{
|
||||
Q_D(QtMaterialScrollBar);
|
||||
Q_D(ScrollBar);
|
||||
|
||||
d->backgroundColor = color;
|
||||
|
||||
|
@ -114,20 +116,20 @@ void QtMaterialScrollBar::setBackgroundColor(const QColor &color)
|
|||
update();
|
||||
}
|
||||
|
||||
QColor QtMaterialScrollBar::backgroundColor() const
|
||||
QColor ScrollBar::backgroundColor() const
|
||||
{
|
||||
Q_D(const QtMaterialScrollBar);
|
||||
Q_D(const ScrollBar);
|
||||
|
||||
if (d->useThemeColors || !d->backgroundColor.isValid()) {
|
||||
return QtMaterialStyle::instance().themeColor("border");
|
||||
return Style::instance().themeColor("border");
|
||||
} else {
|
||||
return d->backgroundColor;
|
||||
}
|
||||
}
|
||||
|
||||
void QtMaterialScrollBar::setSliderColor(const QColor &color)
|
||||
void ScrollBar::setSliderColor(const QColor &color)
|
||||
{
|
||||
Q_D(QtMaterialScrollBar);
|
||||
Q_D(ScrollBar);
|
||||
|
||||
d->sliderColor = color;
|
||||
|
||||
|
@ -135,28 +137,28 @@ void QtMaterialScrollBar::setSliderColor(const QColor &color)
|
|||
update();
|
||||
}
|
||||
|
||||
QColor QtMaterialScrollBar::sliderColor() const
|
||||
QColor ScrollBar::sliderColor() const
|
||||
{
|
||||
Q_D(const QtMaterialScrollBar);
|
||||
Q_D(const ScrollBar);
|
||||
|
||||
if (d->useThemeColors || !d->sliderColor.isValid()) {
|
||||
return QtMaterialStyle::instance().themeColor("primary1");
|
||||
return Style::instance().themeColor("primary1");
|
||||
} else {
|
||||
return d->sliderColor;
|
||||
}
|
||||
}
|
||||
|
||||
void QtMaterialScrollBar::setHideOnMouseOut(bool value)
|
||||
void ScrollBar::setHideOnMouseOut(bool value)
|
||||
{
|
||||
Q_D(QtMaterialScrollBar);
|
||||
Q_D(ScrollBar);
|
||||
|
||||
d->hideOnMouseOut = value;
|
||||
update();
|
||||
}
|
||||
|
||||
bool QtMaterialScrollBar::hideOnMouseOut() const
|
||||
bool ScrollBar::hideOnMouseOut() const
|
||||
{
|
||||
Q_D(const QtMaterialScrollBar);
|
||||
Q_D(const ScrollBar);
|
||||
|
||||
return d->hideOnMouseOut;
|
||||
}
|
||||
|
@ -164,11 +166,11 @@ bool QtMaterialScrollBar::hideOnMouseOut() const
|
|||
/*!
|
||||
* \reimp
|
||||
*/
|
||||
void QtMaterialScrollBar::paintEvent(QPaintEvent *event)
|
||||
void ScrollBar::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
Q_UNUSED(event)
|
||||
|
||||
Q_D(QtMaterialScrollBar);
|
||||
Q_D(ScrollBar);
|
||||
|
||||
QPainter painter(this);
|
||||
painter.setRenderHint(QPainter::Antialiasing);
|
||||
|
@ -210,3 +212,4 @@ void QtMaterialScrollBar::paintEvent(QPaintEvent *event)
|
|||
|
||||
painter.drawRoundedRect(handle, 9, 9);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,10 +2,12 @@
|
|||
#define QTMATERIALSCROLLBAR_H
|
||||
|
||||
#include <QtWidgets/QScrollBar>
|
||||
namespace md
|
||||
{
|
||||
|
||||
class QtMaterialScrollBarPrivate;
|
||||
class ScrollBarPrivate;
|
||||
|
||||
class QtMaterialScrollBar : public QScrollBar
|
||||
class ScrollBar : public QScrollBar
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
@ -14,8 +16,8 @@ class QtMaterialScrollBar : public QScrollBar
|
|||
Q_PROPERTY(QColor sliderColor WRITE setSliderColor READ sliderColor)
|
||||
|
||||
public:
|
||||
explicit QtMaterialScrollBar(QWidget *parent = 0);
|
||||
~QtMaterialScrollBar();
|
||||
explicit ScrollBar(QWidget *parent = 0);
|
||||
~ScrollBar();
|
||||
|
||||
QSize sizeHint() const Q_DECL_OVERRIDE;
|
||||
|
||||
|
@ -37,11 +39,11 @@ public:
|
|||
protected:
|
||||
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
const QScopedPointer<QtMaterialScrollBarPrivate> d_ptr;
|
||||
const QScopedPointer<ScrollBarPrivate> d_ptr;
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(QtMaterialScrollBar)
|
||||
Q_DECLARE_PRIVATE(QtMaterialScrollBar)
|
||||
Q_DISABLE_COPY(ScrollBar)
|
||||
Q_DECLARE_PRIVATE(ScrollBar)
|
||||
};
|
||||
|
||||
}
|
||||
#endif // QTMATERIALSCROLLBAR_H
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#include "qtmaterialscrollbar_internal.h"
|
||||
#include <QPropertyAnimation>
|
||||
#include <QEventTransition>
|
||||
namespace md
|
||||
{
|
||||
|
||||
/*!
|
||||
* \class QtMaterialScrollBarStateMachine
|
||||
|
@ -10,7 +12,7 @@
|
|||
/*!
|
||||
* \internal
|
||||
*/
|
||||
QtMaterialScrollBarStateMachine::QtMaterialScrollBarStateMachine(QtMaterialScrollBar *parent)
|
||||
ScrollBarStateMachine::ScrollBarStateMachine(ScrollBar *parent)
|
||||
: QStateMachine(parent),
|
||||
m_scrollBar(parent),
|
||||
m_focusState(new QState),
|
||||
|
@ -46,6 +48,7 @@ QtMaterialScrollBarStateMachine::QtMaterialScrollBarStateMachine(QtMaterialScrol
|
|||
/*!
|
||||
* \internal
|
||||
*/
|
||||
QtMaterialScrollBarStateMachine::~QtMaterialScrollBarStateMachine()
|
||||
ScrollBarStateMachine::~ScrollBarStateMachine()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,38 +3,40 @@
|
|||
|
||||
#include <QStateMachine>
|
||||
#include "qtmaterialscrollbar.h"
|
||||
namespace md
|
||||
{
|
||||
|
||||
class QtMaterialScrollBarStateMachine : public QStateMachine
|
||||
class ScrollBarStateMachine : public QStateMachine
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(qreal opacity WRITE setOpacity READ opacity)
|
||||
|
||||
public:
|
||||
QtMaterialScrollBarStateMachine(QtMaterialScrollBar *parent);
|
||||
~QtMaterialScrollBarStateMachine();
|
||||
ScrollBarStateMachine(ScrollBar *parent);
|
||||
~ScrollBarStateMachine();
|
||||
|
||||
inline void setOpacity(qreal opacity);
|
||||
inline qreal opacity() const;
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(QtMaterialScrollBarStateMachine)
|
||||
Q_DISABLE_COPY(ScrollBarStateMachine)
|
||||
|
||||
QtMaterialScrollBar *const m_scrollBar;
|
||||
ScrollBar *const m_scrollBar;
|
||||
QState *const m_focusState;
|
||||
QState *const m_blurState;
|
||||
qreal m_opacity;
|
||||
};
|
||||
|
||||
inline void QtMaterialScrollBarStateMachine::setOpacity(qreal opacity)
|
||||
inline void ScrollBarStateMachine::setOpacity(qreal opacity)
|
||||
{
|
||||
m_opacity = opacity;
|
||||
m_scrollBar->update();
|
||||
}
|
||||
|
||||
inline qreal QtMaterialScrollBarStateMachine::opacity() const
|
||||
inline qreal ScrollBarStateMachine::opacity() const
|
||||
{
|
||||
return m_opacity;
|
||||
}
|
||||
|
||||
}
|
||||
#endif // QTMATERIALSCROLLBAR_INTERNAL_H
|
||||
|
|
|
@ -3,28 +3,30 @@
|
|||
|
||||
#include <QtGlobal>
|
||||
#include <QColor>
|
||||
|
||||
class QtMaterialScrollBar;
|
||||
class QtMaterialScrollBarStateMachine;
|
||||
|
||||
class QtMaterialScrollBarPrivate
|
||||
namespace md
|
||||
{
|
||||
Q_DISABLE_COPY(QtMaterialScrollBarPrivate)
|
||||
Q_DECLARE_PUBLIC(QtMaterialScrollBar)
|
||||
|
||||
class ScrollBar;
|
||||
class ScrollBarStateMachine;
|
||||
|
||||
class ScrollBarPrivate
|
||||
{
|
||||
Q_DISABLE_COPY(ScrollBarPrivate)
|
||||
Q_DECLARE_PUBLIC(ScrollBar)
|
||||
|
||||
public:
|
||||
QtMaterialScrollBarPrivate(QtMaterialScrollBar *q);
|
||||
~QtMaterialScrollBarPrivate();
|
||||
ScrollBarPrivate(ScrollBar *q);
|
||||
~ScrollBarPrivate();
|
||||
|
||||
void init();
|
||||
|
||||
QtMaterialScrollBar *const q_ptr;
|
||||
QtMaterialScrollBarStateMachine *stateMachine;
|
||||
ScrollBar *const q_ptr;
|
||||
ScrollBarStateMachine *stateMachine;
|
||||
QColor backgroundColor;
|
||||
QColor sliderColor;
|
||||
QColor canvasColor;
|
||||
bool hideOnMouseOut;
|
||||
bool useThemeColors;
|
||||
};
|
||||
|
||||
}
|
||||
#endif // QTMATERIALSCROLLBAR_P_H
|
||||
|
|
Loading…
Reference in New Issue