From f01fc82cf49d33de49c451d5592a09ef879eb384 Mon Sep 17 00:00:00 2001 From: wjyrich Date: Mon, 21 Jul 2025 17:39:48 +0800 Subject: [PATCH] feat: add wheel event support for brightness and volume controls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Added wheel event handling for brightness slider in BrightnessApplet 2. Implemented wheel event handling for volume control in SoundApplet 3. Installed event filters on relevant slider widgets to capture wheel events 4. Adjusted brightness/volume values in steps of 2% per wheel tick 5. Added necessary QWheelEvent includes The changes allow users to adjust brightness and volume levels using mouse wheel directly on the dock applets, providing a more intuitive and convenient control method. This matches common UX patterns found in other desktop environments. feat: 为亮度和音量控制添加滚轮事件支持 1. 在 BrightnessApplet 中添加亮度滑块的滚轮事件处理 2. 在 SoundApplet 中实现音量控制的滚轮事件处理 3. 在相关滑块部件上安装事件过滤器以捕获滚轮事件 4. 每次滚轮滚动调整亮度/音量2% 5. 添加必要的 QWheelEvent 头文件 这些修改允许用户直接在dock应用上使用鼠标滚轮调整亮度和音量级别,提供了更 直观和方便的控制方式。这与其他桌面环境中常见的用户体验模式相匹配。 Pms: BUG-317615 --- plugins/dde-dock/brightness/brightnessapplet.cpp | 4 +++- plugins/dde-dock/common/dockslider.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/dde-dock/brightness/brightnessapplet.cpp b/plugins/dde-dock/brightness/brightnessapplet.cpp index 48d70fd7e..6c5bcb1ee 100644 --- a/plugins/dde-dock/brightness/brightnessapplet.cpp +++ b/plugins/dde-dock/brightness/brightnessapplet.cpp @@ -113,7 +113,9 @@ void BrightnessApplet::addMonitor(Monitor *monitor) auto container = new SliderContainer(this); container->setFixedHeight(SLIDER_ITEM_HEIGHT); container->addBackground(); - container->setSlider(new Dtk::Widget::DSlider); + auto dSlider = new Dtk::Widget::DSlider(); + dSlider->setMouseWheelEnabled(true); + container->setSlider(dSlider); container->setRange(BrightnessModel::ref().minBrightness(), BrightnessModel::ref().maxBrightness()); container->setTip(monitor->name(), SliderContainer::LeftTip); container->setTip(QString::number(monitor->brightness() * 100) + "%", SliderContainer::RightTip); diff --git a/plugins/dde-dock/common/dockslider.cpp b/plugins/dde-dock/common/dockslider.cpp index 5b93c535a..bc2607ea7 100644 --- a/plugins/dde-dock/common/dockslider.cpp +++ b/plugins/dde-dock/common/dockslider.cpp @@ -15,7 +15,7 @@ DockSlider::DockSlider(QWidget *parent) { setPageStep(50); m_timer->setInterval(100); - + setMouseWheelEnabled(true); connect(m_timer, &QTimer::timeout, this, &DockSlider::onTimeout); }