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

List:       kde-commits
Subject:    [kmix/kmix-improvements] src/gui2: Show a label when there are no controls available
From:       Trever Fischer <tdfischer () fedoraproject ! org>
Date:       2012-09-26 1:35:51
Message-ID: 20120926013551.6722FA63A8 () git ! kde ! org
[Download RAW message or body]

Git commit f02749c05acc3405059a6f2b7bac8086ef7fdca7 by Trever Fischer.
Committed on 26/09/2012 at 02:13.
Pushed by tdfischer into branch 'kmix-improvements'.

Show a label when there are no controls available

M  +17   -1    src/gui2/ControlGroupTab.cpp
M  +5    -0    src/gui2/ControlGroupTab.h

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

diff --git a/src/gui2/ControlGroupTab.cpp b/src/gui2/ControlGroupTab.cpp
index 6870fc2..71b5f03 100644
--- a/src/gui2/ControlGroupTab.cpp
+++ b/src/gui2/ControlGroupTab.cpp
@@ -1,6 +1,8 @@
 #include "ControlGroupTab.h"
 #include "ControlSlider.h"
 #include <QtGui/QVBoxLayout>
+#include <QtGui/QResizeEvent>
+#include <QtGui/QLabel>
 
 #include "controlgroup_interface.h"
 #include "control_interface.h"
@@ -13,6 +15,11 @@ ControlGroupTab::ControlGroupTab(org::kde::KMix::ControlGroup *group, QWidget *p
     , m_group(group)
 {
     m_layout = new QVBoxLayout(this);
+    m_emptyLabel = new QLabel(tr("No controls available."), this);
+    m_emptyLabel->setGeometry(geometry());
+    m_emptyLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
+    m_emptyLabel->setEnabled(false);
+    m_emptyLabel->show();
     setLayout(m_layout);
     connect(group, SIGNAL(controlAdded(QString)), this, SLOT(controlAdded(QString)));
     connect(group, SIGNAL(controlRemoved(QString)), this, SLOT(controlRemoved(QString)));
@@ -25,6 +32,11 @@ ControlGroupTab::~ControlGroupTab()
 {
 }
 
+void ControlGroupTab::resizeEvent(QResizeEvent *evt)
+{
+    m_emptyLabel->setGeometry(geometry());
+}
+
 void ControlGroupTab::controlAdded(const QString &path)
 {
     qDebug() << "Discovered control" << path;
@@ -32,12 +44,16 @@ void ControlGroupTab::controlAdded(const QString &path)
     ControlSlider *slider = new ControlSlider(control, this);
     m_layout->addWidget(slider);
     m_controls[path] = slider;
+    m_emptyLabel->hide();
 }
 
 void ControlGroupTab::controlRemoved(const QString &path)
 {
     qDebug() << "Lost control" << path;
-    ControlSlider *slider = m_controls[path];
+    ControlSlider *slider = m_controls.take(path);
     slider->deleteLater();
     m_layout->removeWidget(slider);
+    if (m_controls.size() == 0) {
+        m_emptyLabel->show();
+    }
 }
diff --git a/src/gui2/ControlGroupTab.h b/src/gui2/ControlGroupTab.h
index 1d57d2c..144d5ca 100644
--- a/src/gui2/ControlGroupTab.h
+++ b/src/gui2/ControlGroupTab.h
@@ -6,6 +6,8 @@
 
 class QLayout;
 class ControlSlider;
+class QResizeEvent;
+class QLabel;
 
 class OrgKdeKMixControlGroupInterface;
 namespace org {
@@ -21,6 +23,8 @@ class ControlGroupTab : public QWidget {
 public:
     ControlGroupTab(org::kde::KMix::ControlGroup *group, QWidget *parent);
     ~ControlGroupTab();
+protected:
+    void resizeEvent(QResizeEvent *evt);
 private slots:
     void controlAdded(const QString &path);
     void controlRemoved(const QString &path);
@@ -28,6 +32,7 @@ private:
     org::kde::KMix::ControlGroup *m_group;
     QLayout *m_layout;
     QHash<QString, ControlSlider*> m_controls;
+    QLabel *m_emptyLabel;
 };
 
 #endif // CONTROLGROUPTAB_H

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

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