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