// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #include "editabletimecode.hpp" static const char *timeFormatMask("99:99:99"); EditableTimeCode::EditableTimeCode(QWidget *parent) : QLineEdit(parent), moreThanOneHour(false) { setFocusPolicy(Qt::StrongFocus); setCursorMoveStyle(Qt::VisualMoveStyle); } void EditableTimeCode::updateInputMask(bool moreThanOneHour, bool threeDigitsFps) { this->moreThanOneHour = moreThanOneHour; QString inputMask = timeFormatMask; if (moreThanOneHour) { inputMask = inputMask.prepend("99:"); } if (threeDigitsFps) { inputMask = inputMask.append("9"); } setInputMask(inputMask); } void EditableTimeCode::focusOutEvent(QFocusEvent *event) { emit editingFinished(); QLineEdit::focusOutEvent(event); } void EditableTimeCode::setText(const QString &text) { QString finalText = text; if (moreThanOneHour && finalText.split(":").size() == 3) { finalText = finalText.prepend("00:"); } if (finalText.split(":")[0].size() == 1) { finalText = finalText.prepend("0"); } QLineEdit::setText(finalText); }