From 224b0a9cb9c526500881b7bf85be01f2a6f43e11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E6=9C=8B=E7=A8=8B?= Date: Tue, 22 Nov 2022 13:24:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=9F=B3=E9=87=8F?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E8=B0=83=E8=8A=82=E6=9C=80=E5=B0=8F=E5=88=BB?= =?UTF-8?q?=E5=BA=A6=E4=B8=8D=E6=98=AF%2=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原有的功能,新需求做的时候并没有考虑到继承 Log: 修复音量插件调节最小刻度不是%2的问题 Influence: 音量插件调节 Bug: https://pms.uniontech.com/bug-view-172417.html Change-Id: Ia10448abb3e872ad47a46d34d1e179538c585c49 --- plugins/sound/soundwidget.cpp | 6 ++++-- widgets/slidercontainer.cpp | 10 ++++++++++ widgets/slidercontainer.h | 3 +++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/plugins/sound/soundwidget.cpp b/plugins/sound/soundwidget.cpp index df3f6f0ae..65ddfe9bf 100644 --- a/plugins/sound/soundwidget.cpp +++ b/plugins/sound/soundwidget.cpp @@ -71,6 +71,8 @@ void SoundWidget::initUi() QPixmap rightPixmap = ImageUtil::loadSvg(rightIcon(), QSize(ICON_SIZE, ICON_SIZE)); m_sliderContainer->setIcon(SliderContainer::IconPosition::LeftIcon, leftPixmap, QSize(), 12); m_sliderContainer->setIcon(SliderContainer::IconPosition::RightIcon, rightPixmap, QSize(BACKSIZE, BACKSIZE), 12); + m_sliderContainer->setRange(0, 100); + m_sliderContainer->setPageStep(2); SliderProxyStyle *proxy = new SliderProxyStyle; m_sliderContainer->setSliderProxyStyle(proxy); @@ -80,14 +82,14 @@ void SoundWidget::initUi() void SoundWidget::initConnection() { - connect(m_defaultSink, &DBusSink::VolumeChanged, this, [ this ](double value) { m_sliderContainer->updateSliderValue(value * 100); }); + connect(m_defaultSink, &DBusSink::VolumeChanged, this, [ this ](double value) {m_sliderContainer->updateSliderValue(std::round(value * 100.00));}); connect(m_dbusAudio, &DBusAudio::DefaultSinkChanged, this, [ this ](const QDBusObjectPath &value) { if (m_defaultSink) delete m_defaultSink; m_defaultSink = new DBusSink("org.deepin.daemon.Audio1", value.path(), QDBusConnection::sessionBus(), this); - m_sliderContainer->updateSliderValue(m_defaultSink->volume() * 100); + m_sliderContainer->updateSliderValue(std::round(m_defaultSink->volume() * 100.00)); connect(m_defaultSink, &DBusSink::VolumeChanged, m_sliderContainer, &SliderContainer::updateSliderValue); }); diff --git a/widgets/slidercontainer.cpp b/widgets/slidercontainer.cpp index 6ce0a95f2..fc6ef72c3 100644 --- a/widgets/slidercontainer.cpp +++ b/widgets/slidercontainer.cpp @@ -181,6 +181,16 @@ void SliderContainer::setIcon(const SliderContainer::IconPosition &iconPosition, } } +void SliderContainer::setPageStep(int step) +{ + return m_slider->setPageStep(step); +} + +void SliderContainer::setRange(int min, int max) +{ + return m_slider->setRange(min, max); +} + bool SliderContainer::eventFilter(QObject *watched, QEvent *event) { if (event->type() == QEvent::MouseButtonRelease) { diff --git a/widgets/slidercontainer.h b/widgets/slidercontainer.h index f2f8d76b7..320ae035a 100644 --- a/widgets/slidercontainer.h +++ b/widgets/slidercontainer.h @@ -55,6 +55,9 @@ public: void setIcon(const IconPosition &iconPosition, const QIcon &icon); void setIcon(const IconPosition &iconPosition, const QPixmap &icon, const QSize &shadowSize, int space); + void setPageStep(int step); + void setRange(int min, int max); + Q_SIGNALS: void iconClicked(const IconPosition &); void sliderValueChanged(int value);