X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fpositionedit.cpp;h=f96ebae967e4adcd4e12719db462b990a4534ac8;hb=56aee6aedeeed3efd10ada8fe3c229eddc01ef05;hp=19ccb857d7c0c091cc7136fc316398b85ecc71b1;hpb=d8702e10b55338ae1cfe51d186ae60c7a645ee78;p=kdenlive diff --git a/src/positionedit.cpp b/src/positionedit.cpp index 19ccb857..f96ebae9 100644 --- a/src/positionedit.cpp +++ b/src/positionedit.cpp @@ -16,35 +16,38 @@ ***************************************************************************/ #include "positionedit.h" +#include "timecodedisplay.h" #include "kdenlivesettings.h" #include #include #include +#include -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) { - QVBoxLayout *l = new QVBoxLayout; - QLabel *lab = new QLabel(name); - l->addWidget(lab); + QHBoxLayout *layout = new QHBoxLayout(this); + + QLabel *label = new QLabel(name, this); - QHBoxLayout *l2 = new QHBoxLayout; - m_display = new TimecodeDisplay(tc); m_slider = new QSlider(Qt::Horizontal); m_slider->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred)); + m_slider->setRange(min, max); + + m_display = new TimecodeDisplay(tc, this); m_display->setSizePolicy(QSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred)); - l2->addWidget(m_display); - l2->addWidget(m_slider); m_display->setRange(min, max); - m_slider->setRange(min, max); + + layout->addWidget(label); + layout->addWidget(m_slider); + 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); - l->addLayout(l2); - setLayout(l); } PositionEdit::~PositionEdit() @@ -70,12 +73,23 @@ void PositionEdit::setPosition(int pos) m_slider->setValue(pos); } - 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"