mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
toggle sink mute when click icon
Change-Id: I1707c80796d98b335630cd685f38aede674250a1
This commit is contained in:
parent
3cd78188f7
commit
519f63415a
Notes:
Deepin Code Review
2016-08-03 02:12:20 +00:00
Verified+1: Anonymous Coward #1000004 Code-Review+2: 石博文 <sbw@sbw.so> Submitted-by: 石博文 <sbw@sbw.so> Submitted-at: Wed, 03 Aug 2016 02:12:20 +0000 Reviewed-on: https://cr.deepin.io/14877 Project: dde/dde-dock Branch: refs/heads/master
@ -7,12 +7,14 @@
|
||||
#define WIDTH 200
|
||||
#define ICON_SIZE 24
|
||||
|
||||
DWIDGET_USE_NAMESPACE
|
||||
|
||||
SoundApplet::SoundApplet(QWidget *parent)
|
||||
: QScrollArea(parent),
|
||||
|
||||
m_centeralWidget(new QWidget),
|
||||
m_appControlWidget(new QWidget),
|
||||
m_volumeIcon(new QLabel),
|
||||
m_volumeBtn(new DImageButton),
|
||||
m_volumeSlider(new VolumeSlider),
|
||||
|
||||
m_audioInter(new DBusAudio(this)),
|
||||
@ -31,7 +33,7 @@ SoundApplet::SoundApplet(QWidget *parent)
|
||||
deviceLineLayout->setSpacing(10);
|
||||
|
||||
QHBoxLayout *volumeCtrlLayout = new QHBoxLayout;
|
||||
volumeCtrlLayout->addWidget(m_volumeIcon);
|
||||
volumeCtrlLayout->addWidget(m_volumeBtn);
|
||||
volumeCtrlLayout->addWidget(m_volumeSlider);
|
||||
volumeCtrlLayout->setSpacing(0);
|
||||
volumeCtrlLayout->setMargin(0);
|
||||
@ -51,7 +53,7 @@ SoundApplet::SoundApplet(QWidget *parent)
|
||||
appLayout->setSpacing(0);
|
||||
appLayout->setMargin(0);
|
||||
|
||||
m_volumeIcon->setFixedSize(ICON_SIZE, ICON_SIZE);
|
||||
m_volumeBtn->setFixedSize(ICON_SIZE, ICON_SIZE);
|
||||
m_volumeSlider->setMinimum(0);
|
||||
m_volumeSlider->setMaximum(1000);
|
||||
|
||||
@ -72,6 +74,7 @@ SoundApplet::SoundApplet(QWidget *parent)
|
||||
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
setStyleSheet("background-color:transparent;");
|
||||
|
||||
connect(m_volumeBtn, &DImageButton::clicked, this, &SoundApplet::toggleMute);
|
||||
connect(m_volumeSlider, &VolumeSlider::valueChanged, this, &SoundApplet::volumeSliderValueChanged);
|
||||
connect(this, static_cast<void (SoundApplet::*)(DBusSink*) const>(&SoundApplet::defaultSinkChanged), this, &SoundApplet::onVolumeChanged);
|
||||
|
||||
@ -109,10 +112,15 @@ void SoundApplet::onVolumeChanged()
|
||||
volumeString = "low";
|
||||
|
||||
const QString iconString = QString("audio-volume-%1-symbolic").arg(volumeString);
|
||||
m_volumeIcon->setPixmap(QIcon::fromTheme(iconString).pixmap(ICON_SIZE, ICON_SIZE));
|
||||
m_volumeBtn->setPixmap(QIcon::fromTheme(iconString).pixmap(ICON_SIZE, ICON_SIZE));
|
||||
}
|
||||
|
||||
void SoundApplet::volumeSliderValueChanged()
|
||||
{
|
||||
m_defSinkInter->SetVolume(double(m_volumeSlider->value()) / 1000, false);
|
||||
}
|
||||
|
||||
void SoundApplet::toggleMute()
|
||||
{
|
||||
m_defSinkInter->SetMute(!m_defSinkInter->mute());
|
||||
}
|
||||
|
@ -10,6 +10,8 @@
|
||||
#include <QLabel>
|
||||
#include <QSlider>
|
||||
|
||||
#include <dimagebutton.h>
|
||||
|
||||
class SoundApplet : public QScrollArea
|
||||
{
|
||||
Q_OBJECT
|
||||
@ -24,11 +26,12 @@ private slots:
|
||||
void defaultSinkChanged();
|
||||
void onVolumeChanged();
|
||||
void volumeSliderValueChanged();
|
||||
void toggleMute();
|
||||
|
||||
private:
|
||||
QWidget *m_centeralWidget;
|
||||
QWidget *m_appControlWidget;
|
||||
QLabel *m_volumeIcon;
|
||||
Dtk::Widget::DImageButton *m_volumeBtn;
|
||||
VolumeSlider *m_volumeSlider;
|
||||
QVBoxLayout *m_centeralLayout;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user