Hi,

I replaced QSpinBox controls with QDoubleSpinBox in interface preferences
and made some changes in enginebuffer.cpp, so that rate slider range won't
affect the temp/perm values.

Cheers,
Martin
Index: src/dlgprefcontrols.h
===================================================================
--- src/dlgprefcontrols.h	(revision 2211)
+++ src/dlgprefcontrols.h	(working copy)
@@ -40,10 +40,10 @@
     void slotUpdate();
     void slotSetRateRange(int pos);
     void slotSetRateDir(int pos);
-    void slotSetRateTempLeft(int);
-    void slotSetRateTempRight(int);
-    void slotSetRatePermLeft(int);
-    void slotSetRatePermRight(int);
+    void slotSetRateTempLeft(double);
+    void slotSetRateTempRight(double);
+    void slotSetRatePermLeft(double);
+    void slotSetRatePermRight(double);
     void slotSetVisuals(int pos);
     void slotSetScaleBpm(int pos);
     void slotSetTooltips(int pos);
Index: src/dlgprefcontrols.cpp
===================================================================
--- src/dlgprefcontrols.cpp	(revision 2211)
+++ src/dlgprefcontrols.cpp	(working copy)
@@ -18,7 +18,7 @@
 #include <QList>
 #include <QDir>
 #include <QToolTip>
-#include <QSpinBox>
+#include <QDoubleSpinBox>
 #include <QWidget>
 
 #include "dlgprefcontrols.h"
@@ -96,23 +96,23 @@
     // Rate buttons configuration
     //
     if (m_pConfig->getValueString(ConfigKey("[Controls]","RateTempLeft")).length() == 0)
-        m_pConfig->set(ConfigKey("[Controls]","RateTempLeft"),ConfigValue(400));
+        m_pConfig->set(ConfigKey("[Controls]","RateTempLeft"),ConfigValue(QString("4.0")));
     if (m_pConfig->getValueString(ConfigKey("[Controls]","RateTempRight")).length() == 0)
-        m_pConfig->set(ConfigKey("[Controls]","RateTempRight"),ConfigValue(200));
+        m_pConfig->set(ConfigKey("[Controls]","RateTempRight"),ConfigValue(QString("2.0")));
     if (m_pConfig->getValueString(ConfigKey("[Controls]","RatePermLeft")).length() == 0)
-        m_pConfig->set(ConfigKey("[Controls]","RatePermLeft"),ConfigValue(10));
+        m_pConfig->set(ConfigKey("[Controls]","RatePermLeft"),ConfigValue(QString("1.0")));
     if (m_pConfig->getValueString(ConfigKey("[Controls]","RatePermRight")).length() == 0)
-        m_pConfig->set(ConfigKey("[Controls]","RatePermRight"),ConfigValue(10));
+        m_pConfig->set(ConfigKey("[Controls]","RatePermRight"),ConfigValue(QString("1.0")));
 
-    connect(spinBoxTempRateLeft, SIGNAL(valueChanged(int)), this, SLOT(slotSetRateTempLeft(int)));
-    connect(spinBoxTempRateRight, SIGNAL(valueChanged(int)), this, SLOT(slotSetRateTempRight(int)));
-    connect(spinBoxPermRateLeft, SIGNAL(valueChanged(int)), this, SLOT(slotSetRatePermLeft(int)));
-    connect(spinBoxPermRateRight, SIGNAL(valueChanged(int)), this, SLOT(slotSetRatePermRight(int)));
+    connect(spinBoxTempRateLeft, SIGNAL(valueChanged(double)), this, SLOT(slotSetRateTempLeft(double)));
+    connect(spinBoxTempRateRight, SIGNAL(valueChanged(double)), this, SLOT(slotSetRateTempRight(double)));
+    connect(spinBoxPermRateLeft, SIGNAL(valueChanged(double)), this, SLOT(slotSetRatePermLeft(double)));
+    connect(spinBoxPermRateRight, SIGNAL(valueChanged(double)), this, SLOT(slotSetRatePermRight(double)));
 
-    spinBoxTempRateLeft->setValue(m_pConfig->getValueString(ConfigKey("[Controls]","RateTempLeft")).toInt());
-    spinBoxTempRateRight->setValue(m_pConfig->getValueString(ConfigKey("[Controls]","RateTempRight")).toInt());
-    spinBoxPermRateLeft->setValue(m_pConfig->getValueString(ConfigKey("[Controls]","RatePermLeft")).toInt());
-    spinBoxPermRateRight->setValue(m_pConfig->getValueString(ConfigKey("[Controls]","RatePermRight")).toInt());
+    spinBoxTempRateLeft->setValue(m_pConfig->getValueString(ConfigKey("[Controls]","RateTempLeft")).toDouble());
+    spinBoxTempRateRight->setValue(m_pConfig->getValueString(ConfigKey("[Controls]","RateTempRight")).toDouble());
+    spinBoxPermRateLeft->setValue(m_pConfig->getValueString(ConfigKey("[Controls]","RatePermLeft")).toDouble());
+    spinBoxPermRateRight->setValue(m_pConfig->getValueString(ConfigKey("[Controls]","RatePermRight")).toDouble());
 
 
     //
@@ -406,28 +406,36 @@
     }
 }
 
-void DlgPrefControls::slotSetRateTempLeft(int v)
+void DlgPrefControls::slotSetRateTempLeft(double v)
 {
-    m_pConfig->set(ConfigKey("[Controls]","RateTempLeft"),ConfigValue(v));
-    EngineBuffer::setTemp(v/1000.);
+    QString str;
+    str = str.setNum(v, 'f', 1);
+    m_pConfig->set(ConfigKey("[Controls]","RateTempLeft"),ConfigValue(str));
+    EngineBuffer::setTemp(v);
 }
 
-void DlgPrefControls::slotSetRateTempRight(int v)
+void DlgPrefControls::slotSetRateTempRight(double v)
 {
-    m_pConfig->set(ConfigKey("[Controls]","RateTempRight"),ConfigValue(v));
-    EngineBuffer::setTempSmall(v/1000.);
+    QString str;
+    str = str.setNum(v, 'f', 1);
+    m_pConfig->set(ConfigKey("[Controls]","RateTempRight"),ConfigValue(str));
+    EngineBuffer::setTempSmall(v);
 }
 
-void DlgPrefControls::slotSetRatePermLeft(int v)
+void DlgPrefControls::slotSetRatePermLeft(double v)
 {
-    m_pConfig->set(ConfigKey("[Controls]","RatePermLeft"),ConfigValue(v));
-    EngineBuffer::setPerm(v/1000.);
+    QString str;
+    str = str.setNum(v, 'f', 1);
+    m_pConfig->set(ConfigKey("[Controls]","RatePermLeft"),ConfigValue(str));
+    EngineBuffer::setPerm(v);
 }
 
-void DlgPrefControls::slotSetRatePermRight(int v)
+void DlgPrefControls::slotSetRatePermRight(double v)
 {
-    m_pConfig->set(ConfigKey("[Controls]","RatePermRight"),ConfigValue(v));
-    EngineBuffer::setPermSmall(v/1000.);
+    QString str;
+    str = str.setNum(v, 'f', 1);
+    m_pConfig->set(ConfigKey("[Controls]","RatePermRight"),ConfigValue(str));
+    EngineBuffer::setPermSmall(v);
 }
 
 void DlgPrefControls::slotApply()
Index: src/dlgprefcontrolsdlg.ui
===================================================================
--- src/dlgprefcontrolsdlg.ui	(revision 2211)
+++ src/dlgprefcontrolsdlg.ui	(working copy)
@@ -353,16 +353,25 @@
       </widget>
      </item>
      <item row="1" column="1" >
-      <widget class="QSpinBox" name="spinBoxTempRateLeft" >
+      <widget class="QDoubleSpinBox" name="spinBoxTempRateLeft" >
        <property name="toolTip" >
         <string>Temporary rate change (between 1 and 8000) when left clicking</string>
        </property>
-       <property name="minimum" >
+       <property name="accelerated" >
+        <bool>true</bool>
+       </property>
+       <property name="decimals" >
         <number>1</number>
        </property>
+       <property name="minimum" >
+        <double>0.100000000000000</double>
+       </property>
        <property name="maximum" >
-        <number>8000</number>
+        <double>10.000000000000000</double>
        </property>
+       <property name="singleStep" >
+        <double>0.100000000000000</double>
+       </property>
       </widget>
      </item>
      <item row="1" column="3" >
@@ -382,16 +391,25 @@
       </widget>
      </item>
      <item row="1" column="4" >
-      <widget class="QSpinBox" name="spinBoxPermRateLeft" >
+      <widget class="QDoubleSpinBox" name="spinBoxPermRateLeft" >
        <property name="toolTip" >
         <string>Permanent rate change (between 1 and 8000) when left clicking</string>
        </property>
-       <property name="minimum" >
+       <property name="accelerated" >
+        <bool>true</bool>
+       </property>
+       <property name="decimals" >
         <number>1</number>
        </property>
+       <property name="minimum" >
+        <double>0.100000000000000</double>
+       </property>
        <property name="maximum" >
-        <number>8000</number>
+        <double>10.000000000000000</double>
        </property>
+       <property name="singleStep" >
+        <double>0.100000000000000</double>
+       </property>
       </widget>
      </item>
      <item row="2" column="0" >
@@ -411,16 +429,25 @@
       </widget>
      </item>
      <item row="2" column="1" >
-      <widget class="QSpinBox" name="spinBoxTempRateRight" >
+      <widget class="QDoubleSpinBox" name="spinBoxTempRateRight" >
        <property name="toolTip" >
         <string>Temporary rate change (between 1 and 8000) when right clicking</string>
        </property>
-       <property name="minimum" >
+       <property name="accelerated" >
+        <bool>true</bool>
+       </property>
+       <property name="decimals" >
         <number>1</number>
        </property>
+       <property name="minimum" >
+        <double>0.100000000000000</double>
+       </property>
        <property name="maximum" >
-        <number>8000</number>
+        <double>10.000000000000000</double>
        </property>
+       <property name="singleStep" >
+        <double>0.100000000000000</double>
+       </property>
       </widget>
      </item>
      <item row="2" column="3" >
@@ -440,16 +467,25 @@
       </widget>
      </item>
      <item row="2" column="4" >
-      <widget class="QSpinBox" name="spinBoxPermRateRight" >
+      <widget class="QDoubleSpinBox" name="spinBoxPermRateRight" >
        <property name="toolTip" >
         <string>Permanent rate change (between 1 and 8000) when right clicking</string>
        </property>
-       <property name="minimum" >
+       <property name="accelerated" >
+        <bool>true</bool>
+       </property>
+       <property name="decimals" >
         <number>1</number>
        </property>
+       <property name="minimum" >
+        <double>0.100000000000000</double>
+       </property>
        <property name="maximum" >
-        <number>8000</number>
+        <double>10.000000000000000</double>
        </property>
+       <property name="singleStep" >
+        <double>0.100000000000000</double>
+       </property>
       </widget>
      </item>
      <item row="3" column="0" >
@@ -457,7 +493,7 @@
        <property name="orientation" >
         <enum>Qt::Vertical</enum>
        </property>
-       <property name="sizeHint" >
+       <property name="sizeHint" stdset="0" >
         <size>
          <width>20</width>
          <height>40</height>
Index: src/enginebuffer.cpp
===================================================================
--- src/enginebuffer.cpp	(revision 2211)
+++ src/enginebuffer.cpp	(working copy)
@@ -595,28 +595,28 @@
 {
     // Adjusts temp rate down if button pressed
     if (buttonRatePermDown->get())
-        rateSlider->sub(m_dPerm * m_pRateDir->get());
+        rateSlider->sub(m_pRateDir->get() * m_dPerm / (100. * m_pRateRange->get()));
 }
 
 void EngineBuffer::slotControlRatePermDownSmall(double)
 {
     // Adjusts temp rate down if button pressed
     if (buttonRatePermDownSmall->get())
-        rateSlider->sub(m_dPermSmall * m_pRateDir->get());
+        rateSlider->sub(m_pRateDir->get() * m_dPermSmall / (100. * m_pRateRange->get()));
 }
 
 void EngineBuffer::slotControlRatePermUp(double)
 {
     // Adjusts temp rate up if button pressed
     if (buttonRatePermUp->get())
-        rateSlider->add(m_dPerm * m_pRateDir->get());
+        rateSlider->add(m_pRateDir->get() * m_dPerm / (100. * m_pRateRange->get()));
 }
 
 void EngineBuffer::slotControlRatePermUpSmall(double)
 {
     // Adjusts temp rate up if button pressed
     if (buttonRatePermUpSmall->get())
-        rateSlider->add(m_dPermSmall * m_pRateDir->get());
+        rateSlider->add(m_pRateDir->get() * m_dPermSmall / (100. * m_pRateRange->get()));
 }
 
 void EngineBuffer::slotControlRateTempDown(double)
@@ -626,7 +626,7 @@
     {
         m_bTempPress = true;
         m_dOldRate = rateSlider->get();
-        rateSlider->sub(m_dTemp * m_pRateDir->get());
+        rateSlider->sub(m_pRateDir->get() * m_dTemp / (100. * m_pRateRange->get()));
     }
     else if (!buttonRateTempDown->get())
     {
@@ -642,7 +642,7 @@
     {
         m_bTempPress = true;
         m_dOldRate = rateSlider->get();
-        rateSlider->sub(m_dTempSmall * m_pRateDir->get());
+        rateSlider->sub(m_pRateDir->get() * m_dTempSmall / (100. * m_pRateRange->get()));
     }
     else if (!buttonRateTempDownSmall->get())
     {
@@ -658,7 +658,7 @@
     {
         m_bTempPress = true;
         m_dOldRate = rateSlider->get();
-        rateSlider->add(m_dTemp * m_pRateDir->get());
+        rateSlider->add(m_pRateDir->get() * m_dTemp / (100. * m_pRateRange->get()));
     }
     else if (!buttonRateTempUp->get())
     {
@@ -674,7 +674,7 @@
     {
         m_bTempPress = true;
         m_dOldRate = rateSlider->get();
-        rateSlider->add(m_dTempSmall * m_pRateDir->get());
+        rateSlider->add(m_pRateDir->get() * m_dTempSmall / (100. * m_pRateRange->get()));
     }
     else if (!buttonRateTempUpSmall->get())
     {
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to