media-slider.cpp 763 B

12345678910111213141516171819202122232425262728293031323334
  1. #include "slider-absoluteset-style.hpp"
  2. #include "media-slider.hpp"
  3. #include <QStyleFactory>
  4. MediaSlider::MediaSlider(QWidget *parent) : SliderIgnoreScroll(parent)
  5. {
  6. setMouseTracking(true);
  7. QString styleName = style()->objectName();
  8. QStyle *style;
  9. style = QStyleFactory::create(styleName);
  10. if (!style) {
  11. style = new SliderAbsoluteSetStyle();
  12. } else {
  13. style = new SliderAbsoluteSetStyle(style);
  14. }
  15. style->setParent(this);
  16. this->setStyle(style);
  17. }
  18. void MediaSlider::mouseMoveEvent(QMouseEvent *event)
  19. {
  20. int val = minimum() + ((maximum() - minimum()) * event->x()) / width();
  21. if (val > maximum())
  22. val = maximum();
  23. else if (val < minimum())
  24. val = minimum();
  25. emit mediaSliderHovered(val);
  26. event->accept();
  27. QSlider::mouseMoveEvent(event);
  28. }