[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