[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kmix/kmix-improvements] src/gui2: Add mute support
From: Trever Fischer <tdfischer () fedoraproject ! org>
Date: 2012-09-25 0:36:28
Message-ID: 20120925003628.3B3C5A60A6 () git ! kde ! org
[Download RAW message or body]
Git commit 6abb46a368c3759f3de3f046b1c19d3d07f9da36 by Trever Fischer.
Committed on 25/09/2012 at 00:18.
Pushed by tdfischer into branch 'kmix-improvements'.
Add mute support
M +29 -1 src/gui2/ControlSlider.cpp
M +4 -0 src/gui2/ControlSlider.h
http://commits.kde.org/kmix/6abb46a368c3759f3de3f046b1c19d3d07f9da36
diff --git a/src/gui2/ControlSlider.cpp b/src/gui2/ControlSlider.cpp
index a532fe5..254f9cf 100644
--- a/src/gui2/ControlSlider.cpp
+++ b/src/gui2/ControlSlider.cpp
@@ -4,6 +4,7 @@
#include <QtGui/QSlider>
#include <QtCore/QSignalMapper>
#include <KDE/KIcon>
+#include <QtGui/QPushButton>
#include "control_interface.h"
@@ -40,10 +41,17 @@ ControlSlider::ControlSlider(org::kde::KMix::Control *control, QWidget *parent)
m_sliders << slider;
connect(slider, SIGNAL(valueChanged(int)), mapper, SLOT(map()));
}
- connect(control, SIGNAL(volumeChanged(int)), this, SLOT(volumeChange(int)));
+
+ m_mute = new QPushButton(this);
+ connect(m_mute, SIGNAL(clicked(bool)), this, SLOT(toggleMute()));
layout->addWidget(labelContainer);
layout->addWidget(sliderContainer);
+ layout->addWidget(m_mute);
+
+ updateMute();
+ connect(control, SIGNAL(volumeChanged(int)), this, SLOT(volumeChange(int)));
+ connect(control, SIGNAL(muteChanged(bool)), this, SLOT(updateMute()));
}
ControlSlider::~ControlSlider()
@@ -61,5 +69,25 @@ void ControlSlider::updateVolume(int channel)
m_control->setVolume(channel, m_sliders[channel]->value());
}
+void ControlSlider::updateMute()
+{
+ if (m_mute) {
+ KIcon icon;
+ if (m_control->mute()) {
+ icon = KIcon("audio-volume-muted");
+ } else {
+ icon = KIcon("audio-volume-high");
+ }
+ m_mute->setIcon(icon);
+ }
+}
+
+void ControlSlider::toggleMute()
+{
+ if (m_mute) {
+ m_control->setMute(!m_control->mute());
+ }
+}
+
#include "ControlSlider.moc"
diff --git a/src/gui2/ControlSlider.h b/src/gui2/ControlSlider.h
index c5d5949..9d544d6 100644
--- a/src/gui2/ControlSlider.h
+++ b/src/gui2/ControlSlider.h
@@ -33,6 +33,7 @@ namespace org {
}
class QSlider;
+class QPushButton;
class ControlSlider : public QWidget
{
@@ -44,7 +45,10 @@ public:
private slots:
void volumeChange(int channel);
void updateVolume(int channel);
+ void updateMute();
+ void toggleMute();
private:
+ QPushButton *m_mute;
org::kde::KMix::Control *m_control;
QList<QSlider*> m_sliders;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic