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 m_ui.krestrictedline->setInputMask("000000000000");
35 m_ui.krestrictedline->setText(QString::number(pos));
36 } else m_ui.krestrictedline->setText(m_tc.getTimecodeFromFrames(pos));
39 int PositionEdit::getPosition() const
41 return m_ui.horizontalSlider->value();
44 void PositionEdit::setPosition(int pos)
46 m_ui.horizontalSlider->setValue(pos);
47 if (KdenliveSettings::frametimecode()) m_ui.krestrictedline->setText(QString::number(pos));
48 else m_ui.krestrictedline->setText(m_tc.getTimecodeFromFrames(pos));
51 void PositionEdit::slotUpdateTimecode()
53 if (KdenliveSettings::frametimecode()) m_ui.krestrictedline->setText(QString::number(m_ui.horizontalSlider->value()));
54 else m_ui.krestrictedline->setText(m_tc.getTimecodeFromFrames(m_ui.horizontalSlider->value()));
55 emit parameterChanged();
58 void PositionEdit::slotUpdatePosition()
60 m_ui.horizontalSlider->blockSignals(true);
62 if (KdenliveSettings::frametimecode()) pos = m_ui.krestrictedline->text().toInt();
63 else pos = m_tc.getFrameCount(m_ui.krestrictedline->text());
64 m_ui.horizontalSlider->setValue(pos);
65 if (pos != m_ui.horizontalSlider->value()) {
67 if (KdenliveSettings::frametimecode()) m_ui.krestrictedline->setText(QString::number(m_ui.horizontalSlider->value()));
68 else m_ui.krestrictedline->setText(m_tc.getTimecodeFromFrames(m_ui.horizontalSlider->value()));
70 m_ui.horizontalSlider->blockSignals(false);
71 emit parameterChanged();