Background
PR #2084 (commit 90ea3051) fixed VOX setter UI sync by adding emit phoneStateChanged() to setVoxEnable, setVoxLevel, and setVoxDelay. Identified during code review of that PR.
The same gap exists in setMicLevel
TransmitModel::setMicLevel() does m_micLevel = level and emit commandReady(...) but does not emit a state-change signal. UI controls bound to mic level via the model state pattern won't update when the value changes via a path other than the slider itself (e.g. keyboard shortcut, MIDI controller, or radio echo).
Suggested fix
Same shape as #2084:
void TransmitModel::setMicLevel(int level)
{
level = qBound(0, level, 100);
m_micLevel = level;
emit micStateChanged();
emit commandReady(QString("transmit set miclevel=%1").arg(level));
}
Worth checking
A quick audit of all setters in src/models/TransmitModel.cpp would catch any other instances of this pattern (m_xxx = value + emit commandReady but no state-change signal).
Background
PR #2084 (commit
90ea3051) fixed VOX setter UI sync by addingemit phoneStateChanged()tosetVoxEnable,setVoxLevel, andsetVoxDelay. Identified during code review of that PR.The same gap exists in setMicLevel
TransmitModel::setMicLevel()doesm_micLevel = levelandemit commandReady(...)but does not emit a state-change signal. UI controls bound to mic level via the model state pattern won't update when the value changes via a path other than the slider itself (e.g. keyboard shortcut, MIDI controller, or radio echo).Suggested fix
Same shape as #2084:
Worth checking
A quick audit of all setters in
src/models/TransmitModel.cppwould catch any other instances of this pattern (m_xxx = value+emit commandReadybut no state-change signal).