fix(audio-tray):Fixed an issue where the volume tray icon did not change with the volume after the default Sink was changed
- 修复默认Sink变更后,音量托盘图标不随音量大小改变的问题 Closed #14124
This commit is contained in:
parent
f2de37cad1
commit
71af9a1523
153
0008-fix-audio-tray-Fixed-an-issue-where-the-volume-tray-.patch
Normal file
153
0008-fix-audio-tray-Fixed-an-issue-where-the-volume-tray-.patch
Normal file
@ -0,0 +1,153 @@
|
||||
From 2c6ae961ff33c45c9d9d7758715af3b52d2db052 Mon Sep 17 00:00:00 2001
|
||||
From: luoqing <luoqing@kylinsec.com.cn>
|
||||
Date: Thu, 7 Sep 2023 19:21:39 +0800
|
||||
Subject: [PATCH] fix(audio-tray):Fixed an issue where the volume tray icon did
|
||||
not change with the volume after the default Sink was changed
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
- 修复默认Sink变更后,音量托盘图标不随音量大小改变的问题
|
||||
|
||||
Closed #14124
|
||||
---
|
||||
.../src/system-tray/audio-system-tray.cpp | 27 +++++++++++--------
|
||||
.../audio/src/system-tray/audio-system-tray.h | 1 -
|
||||
.../src/system-tray/volume-setting-page.cpp | 2 ++
|
||||
.../src/system-tray/volume-setting-page.h | 22 ++++++++-------
|
||||
4 files changed, 30 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/plugins/audio/src/system-tray/audio-system-tray.cpp b/plugins/audio/src/system-tray/audio-system-tray.cpp
|
||||
index 00e90f7..0c6aca6 100644
|
||||
--- a/plugins/audio/src/system-tray/audio-system-tray.cpp
|
||||
+++ b/plugins/audio/src/system-tray/audio-system-tray.cpp
|
||||
@@ -41,7 +41,6 @@ AudioSystemTray::AudioSystemTray(QWidget *parent) : QWidget(parent)
|
||||
initVolumeSettingPage(defaultSinkPath);
|
||||
initMixedSettingPage();
|
||||
|
||||
- m_sink = new AudioDeviceInterface(AUDIO_DBUS_NAME, defaultSinkPath, QDBusConnection::sessionBus());
|
||||
m_statusNotifierManager = new StatusNotifierManagerInterface(STATUS_NOTIFIER_MANAGER, STATUS_NOTIFIER_MANAGER_OBJECT_NAME, QDBusConnection::sessionBus(), this);
|
||||
m_systemTray = new QSystemTrayIcon();
|
||||
|
||||
@@ -82,8 +81,11 @@ void AudioSystemTray::initMixedSettingPage()
|
||||
void AudioSystemTray::initTrayIcon()
|
||||
{
|
||||
getTrayIconStyle();
|
||||
- double currentVolumeDouble = m_sink->volume() * 100;
|
||||
- KLOG_INFO() << "currentVolumeDouble" << round(currentVolumeDouble);
|
||||
+
|
||||
+ QDBusPendingReply<QString> defaultSinkPath = m_audioInterface->GetDefaultSink();
|
||||
+ AudioDeviceInterface defaultSink (AUDIO_DBUS_NAME, defaultSinkPath, QDBusConnection::sessionBus());
|
||||
+ double currentVolumeDouble = defaultSink.volume() * 100;
|
||||
+ KLOG_INFO() << "current Volume Double" << round(currentVolumeDouble);
|
||||
setTrayIcon(round(currentVolumeDouble));
|
||||
}
|
||||
|
||||
@@ -117,11 +119,12 @@ void AudioSystemTray::initConnect()
|
||||
{
|
||||
connect(m_systemTray, &QSystemTrayIcon::activated, this, &AudioSystemTray::handleAudioTrayClicked);
|
||||
|
||||
- connect(m_sink, &AudioDeviceInterface::volumeChanged, [=](double value)
|
||||
- {
|
||||
- int currentVolume = round(value * 100); //表示数值的时候向上取整
|
||||
- KLOG_DEBUG() << "m_sink volumeChanged :" << currentVolume;
|
||||
- setTrayIcon(currentVolume); });
|
||||
+ connect(m_volumeSettingPage,&VolumeSettingPage::volumeChanged,[=](double value)
|
||||
+ {
|
||||
+ int currentVolume = round(value * 100); //表示数值的时候向上取整
|
||||
+ KLOG_DEBUG() << "m_sink volumeChanged :" << currentVolume;
|
||||
+ setTrayIcon(currentVolume);
|
||||
+ });
|
||||
|
||||
connect(m_statusNotifierManager, &StatusNotifierManagerInterface::StyleChanged, [=](const QString &style)
|
||||
{
|
||||
@@ -129,9 +132,11 @@ void AudioSystemTray::initConnect()
|
||||
//重新获取style
|
||||
getTrayIconStyle();
|
||||
//获取当前音量值重新设置TrayIcon
|
||||
- m_sink->volume();
|
||||
- double currentVolumeDouble = m_sink->volume() * 100;
|
||||
- setTrayIcon(round(currentVolumeDouble)); });
|
||||
+ QDBusPendingReply<QString> defaultSinkPath = m_audioInterface->GetDefaultSink();
|
||||
+ AudioDeviceInterface defaultSink (AUDIO_DBUS_NAME, defaultSinkPath, QDBusConnection::sessionBus());
|
||||
+ double currentVolumeDouble = defaultSink.volume() * 100;
|
||||
+ setTrayIcon(round(currentVolumeDouble));
|
||||
+ });
|
||||
}
|
||||
|
||||
void AudioSystemTray::handleAudioTrayClicked(QSystemTrayIcon::ActivationReason reason)
|
||||
diff --git a/plugins/audio/src/system-tray/audio-system-tray.h b/plugins/audio/src/system-tray/audio-system-tray.h
|
||||
index 16846e6..a61284e 100644
|
||||
--- a/plugins/audio/src/system-tray/audio-system-tray.h
|
||||
+++ b/plugins/audio/src/system-tray/audio-system-tray.h
|
||||
@@ -68,7 +68,6 @@ private:
|
||||
|
||||
StatusNotifierManagerInterface* m_statusNotifierManager;
|
||||
AudioInterface* m_audioInterface;
|
||||
- AudioDeviceInterface* m_sink;
|
||||
|
||||
QString m_colorTheme;
|
||||
int xTray, yTray, heightTray, widthTray;
|
||||
diff --git a/plugins/audio/src/system-tray/volume-setting-page.cpp b/plugins/audio/src/system-tray/volume-setting-page.cpp
|
||||
index fac69a6..54b8f10 100644
|
||||
--- a/plugins/audio/src/system-tray/volume-setting-page.cpp
|
||||
+++ b/plugins/audio/src/system-tray/volume-setting-page.cpp
|
||||
@@ -132,6 +132,7 @@ void VolumeSettingPage::handleVolumeChanged(double value)
|
||||
setVolumeIcon(currentVolume);
|
||||
ui->volumeSetting->setValue(currentVolume);
|
||||
ui->volumeSetting->blockSignals(false);
|
||||
+ emit volumeChanged(value);
|
||||
}
|
||||
|
||||
void VolumeSettingPage::handleMuteButtonClicked()
|
||||
@@ -144,6 +145,7 @@ void VolumeSettingPage::handleMuteButtonClicked()
|
||||
|
||||
void VolumeSettingPage::handleDefaultSinkChanged(int index)
|
||||
{
|
||||
+ KLOG_DEBUG() << "Default Sink Changed";
|
||||
// delete and restart init defaultSink
|
||||
if (m_sink != nullptr)
|
||||
{
|
||||
diff --git a/plugins/audio/src/system-tray/volume-setting-page.h b/plugins/audio/src/system-tray/volume-setting-page.h
|
||||
index 4719021..80f0098 100644
|
||||
--- a/plugins/audio/src/system-tray/volume-setting-page.h
|
||||
+++ b/plugins/audio/src/system-tray/volume-setting-page.h
|
||||
@@ -40,16 +40,6 @@ public:
|
||||
QPixmap trayIconColorSwitch(const QString &iconPath);
|
||||
void disableSettings();
|
||||
|
||||
-private:
|
||||
- void initDbusServiceWatcher();
|
||||
- void initAudioDevice();
|
||||
- void initAudioStream();
|
||||
- template <class Audio>
|
||||
- void initSettings(Audio *audio);
|
||||
- template <class Audio>
|
||||
- void clickMuteButton(Audio *audio);
|
||||
-
|
||||
-
|
||||
public slots:
|
||||
void handleVolumeChanged(double value);
|
||||
void handleMuteButtonClicked();
|
||||
@@ -60,6 +50,18 @@ public slots:
|
||||
void setVolumeIcon(int value);
|
||||
void hideLine();
|
||||
|
||||
+private:
|
||||
+ void initDbusServiceWatcher();
|
||||
+ void initAudioDevice();
|
||||
+ void initAudioStream();
|
||||
+ template <class Audio>
|
||||
+ void initSettings(Audio *audio);
|
||||
+ template <class Audio>
|
||||
+ void clickMuteButton(Audio *audio);
|
||||
+
|
||||
+signals:
|
||||
+ void volumeChanged(double value);
|
||||
+
|
||||
private:
|
||||
Ui::VolumeSettingPage *ui;
|
||||
AudioInterface *m_audioInterface;
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
Name: kiran-control-panel
|
||||
Version: 2.5.5
|
||||
Release: 5%{?dist}
|
||||
Release: 6%{?dist}
|
||||
Summary: Kiran Control Panel
|
||||
Summary(zh_CN): Kiran桌面控制面板
|
||||
|
||||
@ -14,6 +14,7 @@ Patch0004: 0004-fix-wallpaper-don-t-call-xmlWriter-if-system-backgro.patch
|
||||
Patch0005: 0005-fix-account-Fixed-issues-related-to-creating-and-del.patch
|
||||
Patch0006: 0006-feature-network-When-the-gateway-setting-item-is-0.0.patch
|
||||
Patch0007: 0007-fix-audio-Fix-parsing-error-when-json-contains-Chine.patch
|
||||
Patch0008: 0008-fix-audio-tray-Fixed-an-issue-where-the-volume-tray-.patch
|
||||
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: cmake >= 3.2
|
||||
@ -171,6 +172,9 @@ make %{?_smp_mflags}
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%changelog
|
||||
* Fri Sep 08 2023 luoqing <luoqing@kylinsec.com.cn> - 2.5.5-6
|
||||
- KYOS-F: Fixed an issue where the volume tray icon did not change with the volume after the default Sink was changed(#14124)
|
||||
|
||||
* Wed Aug 30 2023 luoqing <luoqing@kylinsec.com.cn> - 2.5.5-5
|
||||
- KYOS-F: Fix parsing error when json contains Chinese character(#13261)
|
||||
- KYOS-F: When the gateway setting item is 0.0.0.0, the gateway setting item is null(#13150)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user