toggle sink mute when click icon

Change-Id: I1707c80796d98b335630cd685f38aede674250a1
This commit is contained in:
石博文 2016-08-03 10:08:01 +08:00
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
2 changed files with 16 additions and 5 deletions

View File

@ -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());
}

View File

@ -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;