[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kmix/kmix-improvements] src/gui2: Support volume modifications
From:       Trever Fischer <tdfischer () fedoraproject ! org>
Date:       2012-09-24 21:58:25
Message-ID: 20120924215825.4B693A60D1 () git ! kde ! org
[Download RAW message or body]

Git commit 3743867da0d5ab533303d90490b1059c698d377b by Trever Fischer.
Committed on 24/09/2012 at 23:37.
Pushed by tdfischer into branch 'kmix-improvements'.

Support volume modifications

M  +12   -2    src/gui2/ControlSlider.cpp
M  +1    -0    src/gui2/ControlSlider.h

http://commits.kde.org/kmix/3743867da0d5ab533303d90490b1059c698d377b

diff --git a/src/gui2/ControlSlider.cpp b/src/gui2/ControlSlider.cpp
index 0f67497..ab176bb 100644
--- a/src/gui2/ControlSlider.cpp
+++ b/src/gui2/ControlSlider.cpp
@@ -2,6 +2,7 @@
 #include <QtGui/QVBoxLayout>
 #include <QtGui/QLabel>
 #include <QtGui/QSlider>
+#include <QtCore/QSignalMapper>
 
 #include "control_interface.h"
 
@@ -17,13 +18,16 @@ ControlSlider::ControlSlider(org::kde::KMix::Control *control, QWidget *parent)
     layout->addWidget(label);
     layout->addWidget(sliderContainer);
     QHBoxLayout *sliderLayout = new QHBoxLayout(sliderContainer);
-    qDebug() << control->channels() << "channels";
-    for(int i = 0;i<2/*control->channels()*/;i++) {
+    QSignalMapper *mapper = new QSignalMapper(this);
+    connect(mapper, SIGNAL(mapped(int)), this, SLOT(updateVolume(int)));
+    for(int i = 0;i<control->channels();i++) {
         QSlider *slider = new QSlider(sliderContainer);
         sliderLayout->addWidget(slider);
         slider->setMaximum(65536);
         slider->setValue(control->getVolume(i));
+        mapper->setMapping(slider, i);
         m_sliders << slider;
+        connect(slider, SIGNAL(valueChanged(int)), mapper, SLOT(map()));
     }
     connect(control, SIGNAL(volumeChanged(int)), this, SLOT(volumeChange(int)));
 }
@@ -38,4 +42,10 @@ void ControlSlider::volumeChange(int channel)
     m_sliders[channel]->setValue(m_control->getVolume(channel));
 }
 
+void ControlSlider::updateVolume(int channel)
+{
+    m_control->setVolume(channel, m_sliders[channel]->value());
+}
+
+
 #include "ControlSlider.moc"
diff --git a/src/gui2/ControlSlider.h b/src/gui2/ControlSlider.h
index 493afd1..c5d5949 100644
--- a/src/gui2/ControlSlider.h
+++ b/src/gui2/ControlSlider.h
@@ -43,6 +43,7 @@ public:
     ~ControlSlider();
 private slots:
     void volumeChange(int channel);
+    void updateVolume(int channel);
 private:
     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