fix: 调节任务栏音量与控制中心输出音量不同步

任务栏向后端发送了音量变化,后端接受并返回一个改变完成的信号,控制中心接受到了信号,但是任务栏没有接收到信号.收到后端的音量变化信号后,不再通过DBus调用获取属性值,而是使用后端传过来的参数值

Log: 调节任务栏音量与控制中心输出音量不同步
Bug: https://pms.uniontech.com/zentao/bug-view-48689.html

Change-Id: I79c6efdf712df8a2e32a496ead689c471afdba39
This commit is contained in:
xuyanghe 2020-10-28 09:48:04 +08:00
parent d139334fff
commit d7a2f1577c
2 changed files with 4 additions and 6 deletions

View File

@ -207,7 +207,6 @@ void SoundApplet::initUi()
connect(m_audioInter, &DBusAudio::PortEnabledChanged, [this](uint cardId, QString portId) {
portEnableChange(cardId, portId);
});;
connect(this, static_cast<void (SoundApplet::*)(DBusSink *) const>(&SoundApplet::defaultSinkChanged), this, &SoundApplet::onVolumeChanged);
connect(m_listView, &DListView::clicked, this, [this](const QModelIndex & idx) {
const Port * port = m_listView->model()->data(idx, Qt::WhatsThisPropertyRole).value<const Port *>();
if (port) {
@ -269,13 +268,12 @@ void SoundApplet::defaultSinkChanged()
activePort(portId,cardId);
emit defaultSinkChanged(m_defSinkInter);
onVolumeChanged(m_defSinkInter->volume());
}
void SoundApplet::onVolumeChanged()
void SoundApplet::onVolumeChanged(double volume)
{
const float volume = m_defSinkInter->volume();
m_volumeSlider->setValue(std::min(150.0f, volume * 100.0f));
m_volumeSlider->setValue(static_cast<int>(std::min(150.0, volume * 100.0)));
m_soundShow->setText(QString::number(volume * 100) + '%');
emit volumeChanged(m_volumeSlider->value());

View File

@ -115,7 +115,7 @@ signals:
private slots:
void defaultSinkChanged();
void onVolumeChanged();
void onVolumeChanged(double volume);
void volumeSliderValueChanged();
void sinkInputsChanged();
void toggleMute();