78 const QRect areaRect = sliderRect();
80 int rawValue = -pt.y() + (areaRect.top() + areaRect.height());
81 int maxRawValue = areaRect.height();
83 int value = QStyle::sliderValueFromPosition(q->minimum(), q->maximum(), rawValue, maxRawValue);
86 const int singleStep = q->singleStep();
87 value = ((
value + singleStep / 2) / singleStep) * singleStep;
95 if (maximum() == minimum() || (ev->buttons() ^ ev->button())) {
100 const bool precise = ev->modifiers() & Qt::ControlModifier ||
101 ev->button() == Qt::RightButton;
103 int value =
m_d->mousePosToValue(ev->pos(), !precise);
104 setSliderPosition(
value);
105 triggerAction(SliderMove);
106 setRepeatAction(SliderNoAction);
111 if (ev->modifiers() & Qt::ShiftModifier &&
112 !
rect().contains(ev->pos())) {
118 const bool precise = ev->modifiers() & Qt::ControlModifier ||
119 ev->buttons() & Qt::RightButton;
121 int value =
m_d->mousePosToValue(ev->pos(), !precise);
122 setSliderPosition(
value);
123 triggerAction(SliderMove);
124 setRepeatAction(SliderNoAction);
146 const QRect
bounds =
m_d->boundingRect();
147 const QColor backgroundColor =
palette().color(QPalette::Base);
154 QStyleOptionViewItem option;
155 const int gridHint = style()->styleHint(QStyle::SH_Table_GridLineColor, &option,
this);
156 const QColor gridColor =
static_cast<QRgb>(gridHint);
157 const QPen gridPen(gridColor);
160 p.setBrush(backgroundColor);
165 QRect sliderRect =
m_d->sliderRect();
166 const int sliderPos = QStyle::sliderPositionFromValue(minimum(), maximum(),
value(), sliderRect.height());
167 sliderRect.adjust(0, sliderRect.height() - sliderPos, 0, 0);
169 p.setPen(Qt::transparent);
171 QColor color =
m_d->toggleState ?
176 p.drawRect(sliderRect);
179 QString textValue = QString::number(
value());
202 QStyleOptionFocusRect fropt;
203 fropt.initFrom(
this);
204 fropt.backgroundColor = backgroundColor;
206 int dfw1 = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, &fropt,
this) + 1,
210 style()->drawPrimitive(QStyle::PE_FrameFocusRect, &fropt, &
p,
this);