if (duration.isEmpty()) {
return 0;
}
-
int hours, minutes, seconds, frames;
int offset = 0;
if (duration.at(0) == '-') {
int frameNumber = ((m_displayedFramesPerSecond * 3600 * hours) + (m_displayedFramesPerSecond * 60 * minutes) + (m_displayedFramesPerSecond * seconds) + frames) - (m_dropFrames * (totalMinutes - floor(totalMinutes / 10)));
return frameNumber;
}
- return (int)(hours * 3600.0 + minutes * 60.0 + seconds * m_realFps + frames);
+ return (int)((hours * 3600.0 + minutes * 60.0 + seconds) * m_realFps + frames);
}
QString Timecode::getDisplayTimecode(const GenTime & time, bool frameDisplay) const
QAbstractSpinBox::StepEnabled TimecodeDisplay::stepEnabled () const
{
QAbstractSpinBox::StepEnabled result = QAbstractSpinBox::StepNone;
- if (getValue() > m_minimum) result |= QAbstractSpinBox::StepDownEnabled;
- if (m_maximum == -1 || getValue() < m_maximum) result |= QAbstractSpinBox::StepUpEnabled;
+ if (m_value > m_minimum) result |= QAbstractSpinBox::StepDownEnabled;
+ if (m_maximum == -1 || m_value < m_maximum) result |= QAbstractSpinBox::StepUpEnabled;
return result;
}
// virtual
void TimecodeDisplay::stepBy(int steps)
{
- int val = getValue();
- val += steps;
+ int val = m_value + steps;
setValue(val);
emit editingFinished();
}
void TimecodeDisplay::setTimeCodeFormat(bool frametimecode, bool init)
{
if (!init && m_frametimecode == frametimecode) return;
- int val = getValue();
m_frametimecode = frametimecode;
+ lineEdit()->clear();
if (m_frametimecode) {
QIntValidator *valid = new QIntValidator(lineEdit());
valid->setBottom(0);
lineEdit()->setValidator(0);
lineEdit()->setInputMask(m_timecode.mask());
}
- setValue(val);
+ setValue(m_value);
}
void TimecodeDisplay::slotUpdateTimeCodeFormat()
void TimecodeDisplay::keyPressEvent(QKeyEvent *e)
{
- if (e->key() == Qt::Key_Return)
- slotEditingFinished();
+ if (e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter) {
+ e->setAccepted(true);
+ clearFocus();
+ }
else
QAbstractSpinBox::keyPressEvent(e);
}
int TimecodeDisplay::getValue() const
{
- if (m_frametimecode) return lineEdit()->text().toInt();
- else return m_timecode.getFrameCount(lineEdit()->text());
+ return m_value;
}
GenTime TimecodeDisplay::gentime() const
{
- return GenTime(getValue(), m_timecode.fps());
+ return GenTime(m_value, m_timecode.fps());
}
Timecode TimecodeDisplay::timecode() const
value = m_minimum;
if (m_maximum > m_minimum && value > m_maximum)
value = m_maximum;
-
- if (value == getValue() && !lineEdit()->text().isEmpty()) return;
- //downarrow->setEnabled(value > m_minimum);
- //uparrow->setEnabled(m_maximum < m_minimum || value < m_maximum);
+ if (value == m_value && !lineEdit()->text().isEmpty()) return;
+ m_value = value;
if (m_frametimecode)
lineEdit()->setText(QString::number(value));
void TimecodeDisplay::setValue(GenTime value)
{
- setValue(m_timecode.getTimecode(value));
+ setValue((int) value.frames(m_timecode.fps()));
}
void TimecodeDisplay::slotEditingFinished()
{
- clearFocus();
lineEdit()->deselect();
+ if (m_frametimecode) setValue(lineEdit()->text().toInt());
+ else setValue(lineEdit()->text());
emit editingFinished();
}