]> git.sesse.net Git - kdenlive/blobdiff - src/positionedit.cpp
Const'ref
[kdenlive] / src / positionedit.cpp
index 31b3ddc71b0143b086077c8a1e7e339a1a65646b..f96ebae967e4adcd4e12719db462b990a4534ac8 100644 (file)
 
 #include <QLabel>
 #include <QSlider>
+#include <QHBoxLayout>
 
-PositionEdit::PositionEdit(const QString name, int pos, int min, int max, const Timecode tc, QWidget* parent) :
-        QWidget(parent)
+PositionEdit::PositionEdit(const QString &name, int pos, int min, int max, const Timecode&tc, QWidget* parent) :
+    QWidget(parent)
 {
     QHBoxLayout *layout = new QHBoxLayout(this);
 
@@ -44,8 +45,8 @@ PositionEdit::PositionEdit(const QString name, int pos, int min, int max, const
     layout->addWidget(m_display);
 
     connect(m_slider, SIGNAL(valueChanged(int)), m_display, SLOT(setValue(int)));
-    connect(m_slider, SIGNAL(valueChanged(int)), this, SIGNAL(parameterChanged()));
-    connect(m_display, SIGNAL(editingFinished()), this, SLOT(slotUpdatePosition()));
+    connect(m_slider, SIGNAL(valueChanged(int)), this, SIGNAL(parameterChanged(int)));
+    connect(m_display, SIGNAL(timeCodeEditingFinished()), this, SLOT(slotUpdatePosition()));
     m_slider->setValue(pos);
 }
 
@@ -77,7 +78,18 @@ void PositionEdit::slotUpdatePosition()
     m_slider->blockSignals(true);
     m_slider->setValue(m_display->getValue());
     m_slider->blockSignals(false);
-    emit parameterChanged();
+    emit parameterChanged(m_display->getValue());
+}
+
+void PositionEdit::setRange(int min, int max, bool absolute)
+{
+    if (absolute) {
+        m_slider->setRange(min, max);
+        m_display->setRange(min, max);
+    } else {
+        m_slider->setRange(0, max - min);
+        m_display->setRange(0, max - min);
+    }
 }
 
 #include "positionedit.moc"