[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