From ecc66e3e2a49a9d4e68dd0226ba14eebd38fa8fa Mon Sep 17 00:00:00 2001 From: Mike Solar Date: Fri, 17 Jul 2026 14:13:09 +0800 Subject: [PATCH] fix: widget bugs surfaced by new gtest coverage - FrameRateComboBox: RepopulateList() left current index at -1 on first fill, so GetFrameRate() returned 0/1 instead of the displayed first entry until something called SetFrameRate() - HandMovableView: default_drag_mode_ was never initialized; an early Core::ToolChanged signal would setDragMode() with it (UB) --- app/widget/handmovableview/handmovableview.cpp | 1 + app/widget/standardcombos/frameratecombobox.h | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/widget/handmovableview/handmovableview.cpp b/app/widget/handmovableview/handmovableview.cpp index 87ccd2cc7..dfcf6fbad 100644 --- a/app/widget/handmovableview/handmovableview.cpp +++ b/app/widget/handmovableview/handmovableview.cpp @@ -34,6 +34,7 @@ namespace olive HandMovableView::HandMovableView(QWidget *parent) : super(parent) , dragging_hand_(false) + , default_drag_mode_(NoDrag) , is_timeline_axes_(false) { connect(Core::instance(), &Core::ToolChanged, this, diff --git a/app/widget/standardcombos/frameratecombobox.h b/app/widget/standardcombos/frameratecombobox.h index ac8ecbb47..b38684817 100644 --- a/app/widget/standardcombos/frameratecombobox.h +++ b/app/widget/standardcombos/frameratecombobox.h @@ -177,7 +177,9 @@ private: .arg(VideoParams::FrameRateToString(custom_rate_))); } - inner_->setCurrentIndex(temp_index); + // On the first populate there is no current index (-1); select the + // first standard rate so GetFrameRate() matches what's displayed + inner_->setCurrentIndex(qMax(temp_index, 0)); inner_->blockSignals(false); }