1 /***************************************************************************
2 geomeytrval.cpp - description
5 copyright : (C) 2008 by Marco Gittler
6 email : g.marco@freenet.de
7 ***************************************************************************/
9 /***************************************************************************
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
16 ***************************************************************************/
18 #include "positionedit.h"
19 #include "kdenlivesettings.h"
23 PositionEdit::PositionEdit(const QString name, int pos, int min, int max, const Timecode tc, QWidget* parent) :
28 m_ui.label->setText(name);
29 m_ui.horizontalSlider->setRange(min, max);
30 connect(m_ui.horizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(slotUpdateTimecode()));
31 connect(m_ui.krestrictedline, SIGNAL(editingFinished()), this, SLOT(slotUpdatePosition()));
32 m_ui.horizontalSlider->setValue(pos);
33 if (KdenliveSettings::frametimecode()) {
34 QValidator *valid = new QIntValidator();
35 m_ui.krestrictedline->setInputMask("");
36 m_ui.krestrictedline->setValidator(valid);
37 m_ui.krestrictedline->setText(QString::number(pos));
38 } else m_ui.krestrictedline->setText(m_tc.getTimecodeFromFrames(pos));
41 int PositionEdit::getPosition() const
43 return m_ui.horizontalSlider->value();
46 void PositionEdit::setPosition(int pos)
48 m_ui.horizontalSlider->setValue(pos);
49 if (KdenliveSettings::frametimecode()) m_ui.krestrictedline->setText(QString::number(pos));
50 else m_ui.krestrictedline->setText(m_tc.getTimecodeFromFrames(pos));
53 void PositionEdit::slotUpdateTimecode()
55 if (KdenliveSettings::frametimecode()) m_ui.krestrictedline->setText(QString::number(m_ui.horizontalSlider->value()));
56 else m_ui.krestrictedline->setText(m_tc.getTimecodeFromFrames(m_ui.horizontalSlider->value()));
57 emit parameterChanged();
60 void PositionEdit::slotUpdatePosition()
62 m_ui.horizontalSlider->blockSignals(true);
64 if (KdenliveSettings::frametimecode()) pos = m_ui.krestrictedline->text().toInt();
65 else pos = m_tc.getFrameCount(m_ui.krestrictedline->text());
66 m_ui.horizontalSlider->setValue(pos);
67 if (pos != m_ui.horizontalSlider->value()) {
69 if (KdenliveSettings::frametimecode()) m_ui.krestrictedline->setText(QString::number(m_ui.horizontalSlider->value()));
70 else m_ui.krestrictedline->setText(m_tc.getTimecodeFromFrames(m_ui.horizontalSlider->value()));
72 m_ui.horizontalSlider->blockSignals(false);
73 emit parameterChanged();