]> git.sesse.net Git - kdenlive/blobdiff - src/dragvalue.cpp
use const'ref
[kdenlive] / src / dragvalue.cpp
index a69f6bd0bbde2399ca8f09cc7a366888256ee2d3..6a8eeb1ed7caa2abede043c404c88fad181cec8c 100644 (file)
@@ -57,6 +57,7 @@ DragValue::DragValue(const QString &label, double defaultValue, int decimals, do
     else setSizePolicy(QSizePolicy::Maximum, QSizePolicy::MinimumExpanding);
     setFocusPolicy(Qt::StrongFocus);
     setContextMenuPolicy(Qt::CustomContextMenu);
+    setFocusPolicy(Qt::StrongFocus);
     
     QHBoxLayout *l = new QHBoxLayout;
     l->setSpacing(0);
@@ -68,6 +69,7 @@ DragValue::DragValue(const QString &label, double defaultValue, int decimals, do
         m_label->setStep(1);
         m_intEdit = new QSpinBox(this);
         m_intEdit->setObjectName("dragBox");
+       m_intEdit->setFocusPolicy(Qt::StrongFocus);
         if (!suffix.isEmpty()) m_intEdit->setSuffix(suffix);
         m_intEdit->setKeyboardTracking(false);
         m_intEdit->setButtonSymbols(QAbstractSpinBox::NoButtons);
@@ -81,6 +83,7 @@ DragValue::DragValue(const QString &label, double defaultValue, int decimals, do
     else {
         m_doubleEdit = new QDoubleSpinBox(this);
         m_doubleEdit->setDecimals(decimals);
+       m_doubleEdit->setFocusPolicy(Qt::StrongFocus);
         m_doubleEdit->setObjectName("dragBox");
         if (!suffix.isEmpty()) m_doubleEdit->setSuffix(suffix);
         m_doubleEdit->setKeyboardTracking(false);
@@ -128,7 +131,7 @@ DragValue::DragValue(const QString &label, double defaultValue, int decimals, do
         m_menu->addAction(timeline);
     }
 
-    connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(slotShowContextMenu(const QPoint&)));
+    connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotShowContextMenu(QPoint)));
     connect(m_scale, SIGNAL(triggered(int)), this, SLOT(slotSetScaleMode(int)));
     connect(m_directUpdate, SIGNAL(triggered(bool)), this, SLOT(slotSetDirectUpdate(bool)));
 }
@@ -139,8 +142,8 @@ DragValue::~DragValue()
     if (m_intEdit) delete m_intEdit;
     if (m_doubleEdit) delete m_doubleEdit;
     delete m_menu;
-    delete m_scale;
-    delete m_directUpdate;
+    //delete m_scale;
+    //delete m_directUpdate;
 }
 
 int DragValue::spinSize()
@@ -240,12 +243,12 @@ void DragValue::slotReset()
 
 void DragValue::slotSetValue(int value)
 {
-   setValue(value, KdenliveSettings::dragvalue_directupdate());
+   setValue(value, true);
 }
 
 void DragValue::slotSetValue(double value)
 {
-    setValue(value, KdenliveSettings::dragvalue_directupdate());
+    setValue(value, true);
 }
 
 void DragValue::setValueFromProgress(double value, bool final)
@@ -274,8 +277,16 @@ void DragValue::setValue(double value, bool final)
     m_label->setProgressValue((value - m_minimum) / (m_maximum - m_minimum) * m_label->maximum());
 }
 
+void DragValue::focusOutEvent(QFocusEvent*)
+{
+    if (m_intEdit) m_intEdit->setFocusPolicy(Qt::StrongFocus);
+    else m_doubleEdit->setFocusPolicy(Qt::StrongFocus);
+}
+
 void DragValue::focusInEvent(QFocusEvent* e)
 {
+    if (m_intEdit) m_intEdit->setFocusPolicy(Qt::WheelFocus);
+    else m_doubleEdit->setFocusPolicy(Qt::WheelFocus);
     if (e->reason() == Qt::TabFocusReason || e->reason() == Qt::BacktabFocusReason) {
         if (m_intEdit) m_intEdit->setFocus(e->reason());
         else m_doubleEdit->setFocus(e->reason());
@@ -291,7 +302,7 @@ void DragValue::slotEditingFinished()
         m_intEdit->blockSignals(true);
         m_intEdit->clearFocus();
         m_intEdit->blockSignals(false);
-        if (!KdenliveSettings::dragvalue_directupdate()) emit valueChanged(value, true);
+        if (!KdenliveSettings::dragvalue_directupdate()) emit valueChanged((double) value, true);
     }
     else {
         double value = m_doubleEdit->value();
@@ -350,8 +361,8 @@ CustomLabel::CustomLabel(const QString &label, bool showSlider, int range, QWidg
     //m_precision(pow(10, precision)),
 {
     setFont(KGlobalSettings::toolBarFont());
-    setFormat(" " + label);
-    setFocusPolicy(Qt::ClickFocus);
+    setFormat(' ' + label);
+    setFocusPolicy(Qt::StrongFocus);
     setCursor(Qt::PointingHandCursor);
     setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Maximum);
     if (showSlider) setRange(0, 1000);
@@ -359,7 +370,7 @@ CustomLabel::CustomLabel(const QString &label, bool showSlider, int range, QWidg
         setRange(0, range);
         QSize sh;
         const QFontMetrics &fm = fontMetrics();
-        sh.setWidth(fm.width(" " + label + " "));
+        sh.setWidth(fm.width(' ' + label + ' '));
         setMaximumWidth(sh.width());
         setObjectName("dragOnly");
     }
@@ -478,4 +489,14 @@ void CustomLabel::setStep(double step)
     m_step = step;
 }
 
+void CustomLabel::focusInEvent(QFocusEvent*)
+{
+     setFocusPolicy(Qt::WheelFocus);
+}
+
+void CustomLabel::focusOutEvent(QFocusEvent*)
+{
+     setFocusPolicy(Qt::StrongFocus);
+}
+
 #include "dragvalue.moc"