use the brand new slider svg
svn path=/trunk/KDE/kdelibs/; revision=962188
This commit is contained in:
parent
540090a1b7
commit
359c2145b3
@ -46,7 +46,6 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
Plasma::FrameSvg *background;
|
Plasma::FrameSvg *background;
|
||||||
Plasma::FrameSvg *handle;
|
|
||||||
Plasma::Style::Ptr style;
|
Plasma::Style::Ptr style;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -63,12 +62,7 @@ Slider::Slider(QGraphicsWidget *parent)
|
|||||||
native->setAttribute(Qt::WA_NoSystemBackground);
|
native->setAttribute(Qt::WA_NoSystemBackground);
|
||||||
|
|
||||||
d->background = new Plasma::FrameSvg(this);
|
d->background = new Plasma::FrameSvg(this);
|
||||||
d->background->setImagePath("widgets/frame");
|
d->background->setImagePath("widgets/slider");
|
||||||
d->background->setElementPrefix("sunken");
|
|
||||||
|
|
||||||
d->handle = new Plasma::FrameSvg(this);
|
|
||||||
d->handle->setImagePath("widgets/button");
|
|
||||||
d->handle->setElementPrefix("normal");
|
|
||||||
|
|
||||||
d->style = Plasma::Style::sharedStyle();
|
d->style = Plasma::Style::sharedStyle();
|
||||||
native->setStyle(d->style.data());
|
native->setStyle(d->style.data());
|
||||||
@ -116,8 +110,28 @@ void Slider::paint(QPainter *painter,
|
|||||||
|
|
||||||
QRect backgroundRect =
|
QRect backgroundRect =
|
||||||
style->subControlRect(QStyle::CC_Slider, &sliderOpt, QStyle::SC_SliderGroove, slider);
|
style->subControlRect(QStyle::CC_Slider, &sliderOpt, QStyle::SC_SliderGroove, slider);
|
||||||
d->background->resizeFrame(backgroundRect.size());
|
|
||||||
d->background->paintFrame(painter, backgroundRect.topLeft());
|
if (sliderOpt.orientation == Qt::Horizontal &&
|
||||||
|
d->background->hasElement("horizontal-background-center")) {
|
||||||
|
d->background->setElementPrefix("horizontal-background");
|
||||||
|
d->background->resizeFrame(backgroundRect.size());
|
||||||
|
d->background->paintFrame(painter, backgroundRect.topLeft());
|
||||||
|
} else if (sliderOpt.orientation == Qt::Vertical &&
|
||||||
|
d->background->hasElement("vertical-background-center")) {
|
||||||
|
d->background->setElementPrefix("vertical-background");
|
||||||
|
d->background->resizeFrame(backgroundRect.size());
|
||||||
|
d->background->paintFrame(painter, backgroundRect.topLeft());
|
||||||
|
} else if (sliderOpt.orientation == Qt::Horizontal) {
|
||||||
|
QRect elementRect = d->background->elementRect("horizontal-slider-line").toRect();
|
||||||
|
elementRect.setWidth(sliderOpt.rect.width());
|
||||||
|
elementRect.moveCenter(sliderOpt.rect.center());
|
||||||
|
d->background->paint(painter, elementRect, "horizontal-slider-line");
|
||||||
|
} else {
|
||||||
|
QRect elementRect = d->background->elementRect("vertical-slider-line").toRect();
|
||||||
|
elementRect.setHeight(sliderOpt.rect.height());
|
||||||
|
elementRect.moveCenter(sliderOpt.rect.center());
|
||||||
|
d->background->paint(painter, elementRect, "vertical-slider-line");
|
||||||
|
}
|
||||||
|
|
||||||
//Tickmarks
|
//Tickmarks
|
||||||
if (sliderOpt.tickPosition != QSlider::NoTicks) {
|
if (sliderOpt.tickPosition != QSlider::NoTicks) {
|
||||||
@ -129,8 +143,18 @@ void Slider::paint(QPainter *painter,
|
|||||||
|
|
||||||
QRect handleRect =
|
QRect handleRect =
|
||||||
style->subControlRect(QStyle::CC_Slider, &sliderOpt, QStyle::SC_SliderHandle, slider);
|
style->subControlRect(QStyle::CC_Slider, &sliderOpt, QStyle::SC_SliderHandle, slider);
|
||||||
d->handle->resizeFrame(handleRect.size());
|
|
||||||
d->handle->paintFrame(painter, handleRect.topLeft());
|
QString handle;
|
||||||
|
if (sliderOpt.orientation == Qt::Horizontal) {
|
||||||
|
handle = "horizontal-slider-handle";
|
||||||
|
} else {
|
||||||
|
handle = "vertical-slider-handle";
|
||||||
|
}
|
||||||
|
|
||||||
|
QRect elementRect = d->background->elementRect(handle).toRect();
|
||||||
|
elementRect.moveCenter(handleRect.center());
|
||||||
|
d->background->paint(painter, elementRect, handle);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Slider::wheelEvent(QGraphicsSceneWheelEvent *event)
|
void Slider::wheelEvent(QGraphicsSceneWheelEvent *event)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user