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

List:       kde-commits
Subject:    [kmix/kmix-improvements] src/gui2: Implment tandem channel volumes
From:       Trever Fischer <tdfischer () fedoraproject ! org>
Date:       2012-09-25 23:12:30
Message-ID: 20120925231230.84588A6320 () git ! kde ! org
[Download RAW message or body]

Git commit d2627ed891893fb495b2e636451fc33bfa778f90 by Trever Fischer.
Committed on 26/09/2012 at 01:10.
Pushed by tdfischer into branch 'kmix-improvements'.

Implment tandem channel volumes

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

http://commits.kde.org/kmix/d2627ed891893fb495b2e636451fc33bfa778f90

diff --git a/src/gui2/ControlSlider.cpp b/src/gui2/ControlSlider.cpp
index f7ba2b2..39da91a 100644
--- a/src/gui2/ControlSlider.cpp
+++ b/src/gui2/ControlSlider.cpp
@@ -30,8 +30,14 @@ ControlSlider::ControlSlider(org::kde::KMix::Control *control, QWidget *parent)
     KIcon icon(control->iconName());
     iconLabel->setPixmap(icon.pixmap(QSize(32, 32)));
 
+    m_channelLock = new QPushButton(labelContainer);
+    m_channelLock->setIcon(KIcon("object-locked"));
+    m_channelLock->setCheckable(true);
+    m_channelLock->setChecked(true);
+
     labelLayout->addWidget(iconLabel);
     labelLayout->addWidget(label);
+    labelLayout->addWidget(m_channelLock);
 
     QWidget *sliderContainer = new QWidget(this);
     QVBoxLayout *sliderLayout = new QVBoxLayout(sliderContainer);
@@ -98,7 +104,16 @@ void ControlSlider::volumeChange(int channel)
 
 void ControlSlider::updateVolume(int channel)
 {
-    m_control->setVolume(channel, m_sliders[channel]->value());
+    int value = m_sliders[channel]->value();
+    if (m_channelLock->isChecked()) {
+        for(int i = 0;i<m_control->channels();i++) {
+            m_control->setVolume(i, value);
+            if (i != channel)
+                m_sliders[i]->setValue(value);
+        }
+    } else {
+        m_control->setVolume(channel, value);
+    }
 }
 
 void ControlSlider::updateMute()
diff --git a/src/gui2/ControlSlider.h b/src/gui2/ControlSlider.h
index c1e366f..8aa9aff 100644
--- a/src/gui2/ControlSlider.h
+++ b/src/gui2/ControlSlider.h
@@ -55,6 +55,7 @@ private:
     org::kde::KMix::Control *m_control;
     QList<QSlider*> m_sliders;
     QComboBox *m_targetSwitcher;
+    QPushButton *m_channelLock;
 };
 
 #endif // CONTROLSLIDER_H
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic