]> git.sesse.net Git - kdenlive/commitdiff
Fix mouse wheel in drag value slider for parameters with a large range (> 1000).
authorTill Theato <root@ttill.de>
Thu, 30 Jun 2011 22:32:08 +0000 (22:32 +0000)
committerTill Theato <root@ttill.de>
Thu, 30 Jun 2011 22:32:08 +0000 (22:32 +0000)
svn path=/trunk/kdenlive/; revision=5753

src/dragvalue.cpp

index 8ef11178385b3a6a31eae3c02137951befc040c0..e3416795d9a40a043110e49328001626fc80bc86 100644 (file)
@@ -64,7 +64,8 @@ DragValue::DragValue(const QString &label, double defaultValue, int decimals, do
     m_label = new CustomLabel(label, showSlider, this);
     l->addWidget(m_label);
     if (decimals == 0) {
-        m_label->setStep(m_label->maximum() / (max - min));
+        m_label->setMaximum(max - min);
+        m_label->setStep(1);
         m_intEdit = new QSpinBox(this);
         m_intEdit->setObjectName("dragBox");
         if (!suffix.isEmpty()) m_intEdit->setSuffix(suffix);
@@ -247,7 +248,7 @@ void DragValue::slotSetValue(double value)
 void DragValue::setValueFromProgress(double value, bool final)
 {
     value = m_minimum + value * (m_maximum - m_minimum) / m_label->maximum();
-    if (m_decimals == 0) setValue((int) (value + 0.5), final);
+    if (m_decimals == 0) setValue(qRound(value), final);
     else setValue(value, final);
 }
 
@@ -460,13 +461,13 @@ void CustomLabel::slotValueDec(double factor)
 
 void CustomLabel::setProgressValue(double value)
 {
-    setValue((int) (value + 0.5));
+    setValue(qRound(value));
 }
 
 void CustomLabel::setNewValue(double value, bool update)
 {
-    setValue((int) (value + 0.5));
-    emit valueChanged((int) (value + 0.5), update);
+    setValue(qRound(value));
+    emit valueChanged(qRound(value), update);
 }
 
 void CustomLabel::setStep(double step)
@@ -475,4 +476,3 @@ void CustomLabel::setStep(double step)
 }
 
 #include "dragvalue.moc"
-