implement QAbstractSlider behavior
This commit is contained in:
parent
6b354ecd04
commit
55ee28ff97
|
@ -27,8 +27,6 @@ void Slider::handleAction(int action)
|
||||||
if ((SliderPageStepAdd == action && sliderPosition() > d->stepTo) ||
|
if ((SliderPageStepAdd == action && sliderPosition() > d->stepTo) ||
|
||||||
(SliderPageStepSub == action && sliderPosition() < d->stepTo))
|
(SliderPageStepSub == action && sliderPosition() < d->stepTo))
|
||||||
{
|
{
|
||||||
d->step = false;
|
|
||||||
setRepeatAction(SliderNoAction);
|
|
||||||
setSliderPosition(d->stepTo);
|
setSliderPosition(d->stepTo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -63,12 +61,10 @@ void Slider::mouseMoveEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
Q_D(Slider);
|
Q_D(Slider);
|
||||||
|
|
||||||
if (d->slide)
|
if (isSliderDown()) {
|
||||||
{
|
|
||||||
setSliderPosition(d->valueFromPosition(event->pos()));
|
setSliderPosition(d->valueFromPosition(event->pos()));
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
QRect track(d->trackGeometry().adjusted(-2, -2, 2, 2));
|
QRect track(d->trackGeometry().adjusted(-2, -2, 2, 2));
|
||||||
|
|
||||||
if (track.contains(event->pos()) != d->hoverTrack) {
|
if (track.contains(event->pos()) != d->hoverTrack) {
|
||||||
|
@ -98,7 +94,7 @@ void Slider::mousePressEvent(QMouseEvent *event)
|
||||||
thumb.moveCenter(d->thumbGeometry().center());
|
thumb.moveCenter(d->thumbGeometry().center());
|
||||||
|
|
||||||
if (thumb.contains(pos)) {
|
if (thumb.contains(pos)) {
|
||||||
d->slide = true;
|
setSliderDown(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,13 +117,11 @@ void Slider::mouseReleaseEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
Q_D(Slider);
|
Q_D(Slider);
|
||||||
|
|
||||||
if (d->slide) {
|
if (isSliderDown()) {
|
||||||
d->slide = false;
|
setSliderDown(false);
|
||||||
setValue(sliderPosition());
|
|
||||||
return QAbstractSlider::mouseReleaseEvent(event);
|
|
||||||
} else if (d->step) {
|
} else if (d->step) {
|
||||||
d->step = false;
|
d->step = false;
|
||||||
setRepeatAction(SliderNoAction);
|
setRepeatAction(SliderNoAction, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
QAbstractSlider::mouseReleaseEvent(event);
|
QAbstractSlider::mouseReleaseEvent(event);
|
||||||
|
|
|
@ -17,7 +17,6 @@ public:
|
||||||
: q_ptr(parent),
|
: q_ptr(parent),
|
||||||
hoverTrack(false),
|
hoverTrack(false),
|
||||||
hoverThumb(false),
|
hoverThumb(false),
|
||||||
slide(false),
|
|
||||||
step(false),
|
step(false),
|
||||||
stepTo(0)
|
stepTo(0)
|
||||||
{
|
{
|
||||||
|
@ -37,8 +36,6 @@ public:
|
||||||
|
|
||||||
void paintTrack(QPainter *painter)
|
void paintTrack(QPainter *painter)
|
||||||
{
|
{
|
||||||
Q_Q(Slider);
|
|
||||||
|
|
||||||
painter->save();
|
painter->save();
|
||||||
|
|
||||||
QBrush brush;
|
QBrush brush;
|
||||||
|
@ -83,8 +80,6 @@ public:
|
||||||
|
|
||||||
void paintThumb(QPainter *painter)
|
void paintThumb(QPainter *painter)
|
||||||
{
|
{
|
||||||
Q_Q(Slider);
|
|
||||||
|
|
||||||
painter->save();
|
painter->save();
|
||||||
|
|
||||||
QBrush brush;
|
QBrush brush;
|
||||||
|
@ -135,7 +130,6 @@ public:
|
||||||
|
|
||||||
bool hoverTrack;
|
bool hoverTrack;
|
||||||
bool hoverThumb;
|
bool hoverThumb;
|
||||||
bool slide;
|
|
||||||
bool step;
|
bool step;
|
||||||
int stepTo;
|
int stepTo;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue