From e9e53709ee75a413a6726a8e77db34b9e6ee372f Mon Sep 17 00:00:00 2001 From: Bas Pape Date: Thu, 24 Sep 2015 20:32:13 +0200 Subject: [PATCH] Disable checkbox if no DockManager is present This gets rid of the stray debug message introduced by 0bf9227 and adds some visual feedback on the settingspage instead. --- src/qtui/dockmanagernotificationbackend.cpp | 10 +++++----- src/qtui/dockmanagernotificationbackend.h | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/qtui/dockmanagernotificationbackend.cpp b/src/qtui/dockmanagernotificationbackend.cpp index c9fdc0de..56547763 100644 --- a/src/qtui/dockmanagernotificationbackend.cpp +++ b/src/qtui/dockmanagernotificationbackend.cpp @@ -46,11 +46,11 @@ DockManagerNotificationBackend::DockManagerNotificationBackend(QObject *parent) if (_dock->isValid()) { _bus.connect("org.freedesktop.DockManager", "/org/freedesktop/DockManager", "org.freedesktop.DockManager", "ItemAdded", this, SLOT(itemAdded(QDBusObjectPath))); } else { - qDebug() << "No DockManager available"; - _enabled = false; + _available = _enabled = false; return; } } + _available = true; itemAdded(QDBusObjectPath()); @@ -171,18 +171,18 @@ void DockManagerNotificationBackend::enabledChanged(const QVariant &v) SettingsPage *DockManagerNotificationBackend::createConfigWidget() const { - return new ConfigWidget(); + return new ConfigWidget(_available); } /***************************************************************************/ -DockManagerNotificationBackend::ConfigWidget::ConfigWidget(QWidget *parent) +DockManagerNotificationBackend::ConfigWidget::ConfigWidget(bool enabled, QWidget *parent) : SettingsPage("Internal", "DockManagerNotification", parent) { QHBoxLayout *layout = new QHBoxLayout(this); layout->addWidget(enabledBox = new QCheckBox(tr("Mark dockmanager entry"), this)); - enabledBox->setEnabled(true); + enabledBox->setEnabled(enabled); connect(enabledBox, SIGNAL(toggled(bool)), SLOT(widgetChanged())); } diff --git a/src/qtui/dockmanagernotificationbackend.h b/src/qtui/dockmanagernotificationbackend.h index 70efb006..bbae76c4 100644 --- a/src/qtui/dockmanagernotificationbackend.h +++ b/src/qtui/dockmanagernotificationbackend.h @@ -50,6 +50,7 @@ private slots: private: class ConfigWidget; bool _enabled; + bool _available; QDBusConnection _bus; QDBusInterface *_dock; QDBusInterface *_item; @@ -62,7 +63,7 @@ class DockManagerNotificationBackend::ConfigWidget : public SettingsPage Q_OBJECT public: - ConfigWidget(QWidget *parent = 0); + ConfigWidget(bool enabled, QWidget *parent = 0); void save(); void load(); -- 2.20.1