diff --git a/src/plugins/qmldesigner/qmldesignerextension/timelineeditor/timelinetoolbar.cpp b/src/plugins/qmldesigner/qmldesignerextension/timelineeditor/timelinetoolbar.cpp index 4fd657463ab..adc49a97b18 100644 --- a/src/plugins/qmldesigner/qmldesignerextension/timelineeditor/timelinetoolbar.cpp +++ b/src/plugins/qmldesigner/qmldesignerextension/timelineeditor/timelinetoolbar.cpp @@ -48,6 +48,7 @@ #include #include #include +#include namespace QmlDesigner { @@ -154,6 +155,7 @@ void TimelineToolBar::setStartFrame(qreal frame) { auto text = QString::number(frame, 'f', 0); m_firstFrame->setText(text); + setupCurrentFrameValidator(); } void TimelineToolBar::setCurrentFrame(qreal frame) @@ -166,6 +168,7 @@ void TimelineToolBar::setEndFrame(qreal frame) { auto text = QString::number(frame, 'f', 0); m_lastFrame->setText(text); + setupCurrentFrameValidator(); } void TimelineToolBar::setScaleFactor(int factor) @@ -234,6 +237,8 @@ static QLineEdit *createToolBarLineEdit(QWidget *parent) QPalette pal = parent->palette(); pal.setColor(QPalette::Text, Theme::instance()->color(Utils::Theme::PanelTextColorLight)); lineEdit->setPalette(pal); + QValidator *validator = new QIntValidator(-100000, 100000, lineEdit); + lineEdit->setValidator(validator); return lineEdit; } @@ -427,6 +432,12 @@ void TimelineToolBar::addSpacing(int width) addWidget(widget); } +void TimelineToolBar::setupCurrentFrameValidator() +{ + auto validator = static_cast(m_currentFrame->validator()); + const_cast(validator)->setRange(m_firstFrame->text().toInt(), m_lastFrame->text().toInt()); +} + void TimelineToolBar::resizeEvent(QResizeEvent *event) { Q_UNUSED(event) diff --git a/src/plugins/qmldesigner/qmldesignerextension/timelineeditor/timelinetoolbar.h b/src/plugins/qmldesigner/qmldesignerextension/timelineeditor/timelinetoolbar.h index b10cb7a7cc1..43d42b83f92 100644 --- a/src/plugins/qmldesigner/qmldesignerextension/timelineeditor/timelinetoolbar.h +++ b/src/plugins/qmldesigner/qmldesignerextension/timelineeditor/timelinetoolbar.h @@ -91,6 +91,7 @@ private: void createCenterControls(); void createRightControls(); void addSpacing(int width); + void setupCurrentFrameValidator(); QList m_grp;