fix: enable real-time volume adjustment in sound applet - #500
Conversation
1. Remove `setTracking(false)` calls from both SoundApplet and SoundQuickPanel 2. This restores the default tracking behavior that emits value changes during slider drag 3. Previously the tracking disabled prevented the volume from updating smoothly as the user dragged the slider 4. The volume now adjusts in real-time as the slider moves, providing immediate audio feedback Log: Fixed volume slider not responding in real-time during adjustment Influence: 1. Test volume adjustment by dragging the slider in the dock sound applet 2. Verify audio volume changes smoothly while dragging instead of only on release 3. Test the quick panel volume slider for the same real-time behavior 4. Ensure volume updates correctly when using keyboard shortcuts or slider steps 5. Verify no regression in volume slider functionality across different audio devices fix: 修复声音调节不能实时变化的问题 1. 移除 SoundApplet 和 SoundQuickPanel 中的 `setTracking(false)` 调用 2. 恢复默认的跟踪行为,使滑块在拖动过程中持续发出值变化事件 3. 此前禁用跟踪导致音量在拖动过程中无法实时更新 4. 音量现在随滑块移动实时调整,提供即时音频反馈 Log: 修复音量滑块在调节时不能实时响应的问题 Influence: 1. 测试在任务栏声音组件中拖拽音量滑块 2. 验证音量在拖动过程中平滑变化,而不是仅在松开时更新 3. 测试快捷面板音量滑块的实时响应行为 4. 验证使用键盘快捷键或步进调节时音量更新正常 5. 确认在不同音频设备上音量滑块功能无回归 PMS: BUG-375031 Change-Id: I3382aecb30658755616c3c5c470fa759c37ae32d
Reviewer's guide (collapsed on small PRs)Reviewer's GuideThe pull request removes setTracking(false) from the dock and quick panel volume sliders, allowing value-change events and audio volume updates to occur continuously during dragging while leaving slider configuration otherwise unchanged. Sequence diagram for real-time volume slider adjustmentsequenceDiagram
actor User
participant Slider as VolumeSlider
participant SoundModel
participant AudioDevice
User->>Slider: drag slider
Slider-->>SoundModel: valueChanged(value)
SoundModel->>AudioDevice: set volume
AudioDevice-->>User: immediate audio feedback
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
deepin pr auto review🤖 AI 代码审查报告📊 总体评价
🔍 详细分析1. 语法逻辑 ✅评价: 优秀 ✅ 通过 潜在问题: 建议: 语法正确,逻辑清晰。移除 setTracking(false) 调用后,QSlider 恢复默认的 tracking 行为,即在拖动过程中持续发出 valueChanged 信号,符合修复音量实时响应的意图。两个文件的修改均完整、无语法错误。 2. 代码质量 ✅评价: 优秀 ✅ 通过 潜在问题:
建议: 建议同步更新 soundquickpanel.cpp 第一行版权信息中的年份,保持与 SPDX 行一致。可在移除 setTracking(false) 的位置添加简短注释说明恢复 tracking 的原因,便于后续维护。 3. 代码性能 ✅评价: 优秀 ✅ 通过 潜在问题:
建议: 当前实现可接受,音频后端(PulseAudio/PipeWire)通常能处理频繁的音量变更请求。若后续出现性能问题,可考虑在 valueChanged 信号处理中加入 debounce 机制(如 50ms 延迟),平衡实时性与性能。 4. 代码安全 🔒评价: 优秀 ✅ 通过
安全漏洞详情: 建议: 本次变更不涉及安全相关代码,无安全风险。 💡 改进建议代码示例// SoundApplet::initUi() - 移除 setTracking(false) 后的推荐写法
// 恢复默认 tracking 行为,实现实时音量调整
void SoundApplet::initUi()
{
m_volumeSlider->setFixedHeight(36);
m_volumeSlider->setMinimum(0);
m_volumeSlider->setMaximum(SoundModel::ref().maxVolumeUI());
// 恢复默认 tracking,使滑块拖动时实时更新音量
m_volumeSlider->setPageStep(2);
m_sliderContainer->setSlider(m_volumeSlider);
m_sliderContainer->addBackground();
}
// SoundQuickPanel::initUi() - 同样移除 setTracking(false)
void SoundQuickPanel::initUi()
{
// 恢复默认 tracking,使滑块拖动时实时更新音量
m_sliderContainer->updateSliderValue(soundVolume());
m_sliderContainer->setRange(0, SoundModel::ref().maxVolumeUI());
m_sliderContainer->setPageStep(2);
}本报告由 AI 代码审查工具自动生成 |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: fly602, mhduiy, xionglinlin The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
setTracking(false)calls from both SoundApplet and SoundQuickPanelLog: Fixed volume slider not responding in real-time during adjustment
Influence:
fix: 修复声音调节不能实时变化的问题
setTracking(false)调用Log: 修复音量滑块在调节时不能实时响应的问题
Influence:
PMS: BUG-375031
Change-Id: I3382aecb30658755616c3c5c470fa759c37ae32d
Summary by Sourcery
Enable immediate audio volume adjustment across dock and quick-panel sliders.
Bug Fixes:
Chores: