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

List:       kde-commits
Subject:    [kmix/kmix-improvements] src/gui2: Create ControlSlider for controlling volume, currently is read-on
From:       Trever Fischer <tdfischer () fedoraproject ! org>
Date:       2012-09-24 21:58:25
Message-ID: 20120924215825.4493DA60C9 () git ! kde ! org
[Download RAW message or body]

Git commit 8c7992eb83454042a8124534eeeba8c0d2d085f8 by Trever Fischer.
Committed on 24/09/2012 at 23:20.
Pushed by tdfischer into branch 'kmix-improvements'.

Create ControlSlider for controlling volume, currently is read-only

M  +1    -0    src/gui2/CMakeLists.txt
A  +41   -0    src/gui2/ControlSlider.cpp     [License: UNKNOWN]  *
C  +14   -25   src/gui2/ControlSlider.h [from: src/gui2/KMixWindow.h - 067% \
similarity] M  +10   -2    src/gui2/KMixWindow.cpp
M  +2    -0    src/gui2/KMixWindow.h

The files marked with a * at the end have a non valid license. Please read: \
http://techbase.kde.org/Policies/Licensing_Policy and use the headers which are \
listed at that page.


http://commits.kde.org/kmix/8c7992eb83454042a8124534eeeba8c0d2d085f8

diff --git a/src/gui2/CMakeLists.txt b/src/gui2/CMakeLists.txt
index 771111f..a8a535e 100644
--- a/src/gui2/CMakeLists.txt
+++ b/src/gui2/CMakeLists.txt
@@ -2,6 +2,7 @@ set(kmix_KDEINIT_SRCS
    main.cpp
    KMixWindow.cpp
    KMixApp.cpp
+   ControlSlider.cpp
 )
 
 qt4_add_dbus_interface(kmix_KDEINIT_SRCS ../dbus/org.kde.kmix.kmixd.xml
diff --git a/src/gui2/ControlSlider.cpp b/src/gui2/ControlSlider.cpp
new file mode 100644
index 0000000..0f67497
--- /dev/null
+++ b/src/gui2/ControlSlider.cpp
@@ -0,0 +1,41 @@
+#include "ControlSlider.h"
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QLabel>
+#include <QtGui/QSlider>
+
+#include "control_interface.h"
+
+ControlSlider::ControlSlider(org::kde::KMix::Control *control, QWidget *parent)
+    : QWidget(parent)
+    , m_control(control)
+{
+    QVBoxLayout *layout = new QVBoxLayout();
+    QLabel *label = new QLabel(m_control->displayName(), this);
+    setLayout(layout);
+
+    QWidget *sliderContainer = new QWidget(this);
+    layout->addWidget(label);
+    layout->addWidget(sliderContainer);
+    QHBoxLayout *sliderLayout = new QHBoxLayout(sliderContainer);
+    qDebug() << control->channels() << "channels";
+    for(int i = 0;i<2/*control->channels()*/;i++) {
+        QSlider *slider = new QSlider(sliderContainer);
+        sliderLayout->addWidget(slider);
+        slider->setMaximum(65536);
+        slider->setValue(control->getVolume(i));
+        m_sliders << slider;
+    }
+    connect(control, SIGNAL(volumeChanged(int)), this, SLOT(volumeChange(int)));
+}
+
+ControlSlider::~ControlSlider()
+{
+}
+
+void ControlSlider::volumeChange(int channel)
+{
+    qDebug() << "Updated volume on" << channel << m_control->getVolume(channel);
+    m_sliders[channel]->setValue(m_control->getVolume(channel));
+}
+
+#include "ControlSlider.moc"
diff --git a/src/gui2/KMixWindow.h b/src/gui2/ControlSlider.h
similarity index 67%
copy from src/gui2/KMixWindow.h
copy to src/gui2/ControlSlider.h
index 8b9a5ca..493afd1 100644
--- a/src/gui2/KMixWindow.h
+++ b/src/gui2/ControlSlider.h
@@ -18,45 +18,34 @@
  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  \
                02110-1301, USA.
  */
 
-#ifndef KMIX_H
-#define KMIX_H
+#ifndef CONTROLSLIDER_H
+#define CONTROLSLIDER_H
 
+#include <QtGui/QWidget>
 
-#include <config.h>
-
-// Qt
-
-// KDE
-#include <kxmlguiwindow.h>
-
-// KMix
-class OrgKdeKMixKMixDInterface;
+class OrgKdeKMixControlInterface;
 namespace org {
     namespace kde {
         namespace KMix {
-            typedef ::OrgKdeKMixKMixDInterface KMixD;
+            typedef OrgKdeKMixControlInterface Control;
         }
     }
 }
 
-class KMixDockWidget;
+class QSlider;
 
-class
-KMixWindow : public KXmlGuiWindow
+class ControlSlider : public QWidget
 {
-   Q_OBJECT
+    Q_OBJECT
 
 public:
-    KMixWindow(QWidget* parent = 0);
-    ~KMixWindow();
-
+    ControlSlider(org::kde::KMix::Control *control, QWidget *parent = 0);
+    ~ControlSlider();
 private slots:
-    void launchPhononConfig();
-
+    void volumeChange(int channel);
 private:
-    void initActions();
-    org::kde::KMix::KMixD *m_daemon;
-    KMixDockWidget *m_dockWidget;
+    org::kde::KMix::Control *m_control;
+    QList<QSlider*> m_sliders;
 };
 
-#endif // KMIX_H
+#endif // CONTROLSLIDER_H
diff --git a/src/gui2/KMixWindow.cpp b/src/gui2/KMixWindow.cpp
index 0bc649c..0ebf2c6 100644
--- a/src/gui2/KMixWindow.cpp
+++ b/src/gui2/KMixWindow.cpp
@@ -24,7 +24,7 @@
 #include "KMixWindow.h"
 
 // include files for QT
-
+#include <QtGui/QHBoxLayout>
 
 // include files for KDE
 #include <KDE/KActionCollection>
@@ -41,6 +41,8 @@
 #include "controlgroup_interface.h"
 #include "control_interface.h"
 
+#include "ControlSlider.h"
+
 const QString KMIX_DBUS_SERVICE = "org.kde.kmixd";
 const QString KMIX_DBUS_PATH = "/KMixD";
 
@@ -57,12 +59,18 @@ KMixWindow::KMixWindow(QWidget* parent)
     initActions();
     createGUI( QLatin1String( "kmixui.rc" ) );
     show();
+    QWidget *mainWidget = new QWidget(this);
+    setCentralWidget(mainWidget);
+    m_layout = new QHBoxLayout(mainWidget);
+    mainWidget->setLayout(m_layout);
     foreach(const QString &groupName, m_daemon->mixerGroups()) {
         org::kde::KMix::ControlGroup *group = new \
org::kde::KMix::ControlGroup(KMIX_DBUS_SERVICE, groupName, \
QDBusConnection::sessionBus(), this);  qDebug() << "Group:" << groupName << \
group->displayName();  foreach(const QString &controlName, group->controls()) {
             org::kde::KMix::Control *control = new \
org::kde::KMix::Control(KMIX_DBUS_SERVICE, controlName, \
                QDBusConnection::sessionBus());
-            qDebug() << "Control:" << control->displayName() << control->canMute() \
<< control->mute(); +            ControlSlider *slider = new ControlSlider(control, \
mainWidget); +            m_layout->addWidget(slider);
+            qDebug() << "Control:" << control->displayName() << control->canMute() \
<< control->mute() << control->getVolume(0);  }
     }
 }
diff --git a/src/gui2/KMixWindow.h b/src/gui2/KMixWindow.h
index 8b9a5ca..c8355fe 100644
--- a/src/gui2/KMixWindow.h
+++ b/src/gui2/KMixWindow.h
@@ -40,6 +40,7 @@ namespace org {
 }
 
 class KMixDockWidget;
+class QHBoxLayout;
 
 class
 KMixWindow : public KXmlGuiWindow
@@ -57,6 +58,7 @@ private:
     void initActions();
     org::kde::KMix::KMixD *m_daemon;
     KMixDockWidget *m_dockWidget;
+    QHBoxLayout *m_layout;
 };
 
 #endif // KMIX_H


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

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