X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fpositionedit.cpp;h=f96ebae967e4adcd4e12719db462b990a4534ac8;hb=56aee6aedeeed3efd10ada8fe3c229eddc01ef05;hp=402a8ec97ac5a1bc70e03ea9b988722797459891;hpb=cd0a632bc2ffba5c097869364ddffae65605b97b;p=kdenlive diff --git a/src/positionedit.cpp b/src/positionedit.cpp index 402a8ec9..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() @@ -57,7 +60,7 @@ PositionEdit::~PositionEdit() void PositionEdit::updateTimecodeFormat() { - m_display->slotPrepareTimeCodeFormat(m_display->timecode()); + m_display->slotUpdateTimeCodeFormat(); } int PositionEdit::getPosition() const @@ -68,15 +71,25 @@ int PositionEdit::getPosition() const void PositionEdit::setPosition(int pos) { m_slider->setValue(pos); - m_display->setValue(pos); } - void PositionEdit::slotUpdatePosition() { m_slider->blockSignals(true); - m_slider->setValue(m_display->value()); + 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"