double-slider.cpp 676 B

123456789101112131415161718192021222324252627282930313233
  1. #include "double-slider.hpp"
  2. DoubleSlider::DoubleSlider(QWidget *parent) : QSlider(parent)
  3. {
  4. connect(this, SIGNAL(valueChanged(int)),
  5. this, SLOT(intValChanged(int)));
  6. }
  7. void DoubleSlider::setDoubleConstraints(double newMin, double newMax,
  8. double newStep, double val)
  9. {
  10. minVal = newMin;
  11. maxVal = newMax;
  12. minStep = newStep;
  13. double total = maxVal - minVal;
  14. int intMax = int(total / minStep);
  15. setMinimum(0);
  16. setMaximum(intMax);
  17. setSingleStep(1);
  18. setDoubleVal(val);
  19. }
  20. void DoubleSlider::intValChanged(int val)
  21. {
  22. emit doubleValChanged(double(val) * minStep + minVal);
  23. }
  24. void DoubleSlider::setDoubleVal(double val)
  25. {
  26. setValue(int((val - minVal) / minStep));
  27. }