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

List:       kde-commits
Subject:    playground/base/bluedevil/src/kcmodule
From:       Rafael Fernández López <ereslibre () kde ! org>
Date:       2010-03-15 12:19:32
Message-ID: 1268655572.451263.19486.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1103575 by ereslibre:

Provide the user the way to start the bluedevil module in case it is not running


 M  +1 -1      CMakeLists.txt  
 M  +52 -1     bluedevil.cpp  
 A             bluedevil.desktop  
 M  +12 -0     bluedevil.h  
 D             kcmbluedevil.desktop  


--- trunk/playground/base/bluedevil/src/kcmodule/CMakeLists.txt #1103574:1103575
@@ -5,4 +5,4 @@
 target_link_libraries(kcm_bluetooth  ${KDE4_KIO_LIBS} ${KDE4_KNOTIFYCONFIG_LIBS} \
${QT_QTGUI_LIBRARY})  
 install(TARGETS kcm_bluetooth  DESTINATION ${PLUGIN_INSTALL_DIR})
-install(FILES kcmbluedevil.desktop DESTINATION ${SERVICES_INSTALL_DIR})
+install(FILES bluedevil.desktop DESTINATION ${SERVICES_INSTALL_DIR})
--- trunk/playground/base/bluedevil/src/kcmodule/bluedevil.cpp #1103574:1103575
@@ -19,14 +19,30 @@
 
 #include "bluedevil.h"
 
+#include <QtGui/QLabel>
+#include <QtGui/QBoxLayout>
+
+#include <QtDBus/QDBusMessage>
+#include <QtDBus/QDBusConnection>
+
+#include <kpushbutton.h>
 #include <kpluginfactory.h>
+#include <klocalizedstring.h>
 
 K_PLUGIN_FACTORY(BlueDevilFactory, registerPlugin<KCMBlueDevil>();)
-K_EXPORT_PLUGIN(BlueDevilFactory("kcmbluedevil"))
+K_EXPORT_PLUGIN(BlueDevilFactory("bluedevil"))
 
 KCMBlueDevil::KCMBlueDevil(QWidget *parent, const QVariantList&)
     : KCModule(BlueDevilFactory::componentData(), parent)
+    , m_kdedNotRunningWarning(new QWidget(this))
 {
+    generateUi();
+    checkKDEDModuleLoaded();
+
+    QVBoxLayout *layout = new QVBoxLayout;
+    layout->addWidget(m_kdedNotRunningWarning);
+    layout->addStretch();
+    setLayout(layout);
 }
 
 KCMBlueDevil::~KCMBlueDevil()
@@ -40,3 +56,38 @@
 void KCMBlueDevil::save()
 {
 }
+
+void KCMBlueDevil::launchService()
+{
+    QDBusMessage msg = QDBusMessage::createMethodCall("org.kde.kded", "/kded", \
QString(), "loadModule"); +    msg.setArguments(QVariantList() << "bluedevil");
+    QDBusConnection::sessionBus().call(msg);
+
+    checkKDEDModuleLoaded();
+}
+
+void KCMBlueDevil::generateUi()
+{
+    {
+        QHBoxLayout *layout = new QHBoxLayout;
+        layout->addWidget(new QLabel(i18n("Bluetooth backend is not running"), \
this)); +        KPushButton *launch = new KPushButton(i18n("Launch"), this);
+        connect(launch, SIGNAL(clicked()), this, SLOT(launchService()));
+        layout->addWidget(launch);
+        m_kdedNotRunningWarning->setLayout(layout);
+    }
+}
+
+void KCMBlueDevil::checkKDEDModuleLoaded()
+{
+    const QDBusMessage msg = QDBusMessage::createMethodCall("org.kde.kded", "/kded", \
QString(), "loadedModules"); +    const QList<QVariant> res = \
QDBusConnection::sessionBus().call(msg).arguments()[0].toList(); +    bool \
moduleLoaded = false; +    foreach (const QVariant &module, res) {
+        if (module.toString() == "bluedevil") {
+            moduleLoaded = true;
+            break;
+        }
+    }
+    m_kdedNotRunningWarning->setVisible(!moduleLoaded);
+}
--- trunk/playground/base/bluedevil/src/kcmodule/bluedevil.h #1103574:1103575
@@ -25,12 +25,24 @@
 class KCMBlueDevil
     : public KCModule
 {
+    Q_OBJECT
+
 public:
     KCMBlueDevil(QWidget *parent, const QVariantList&);
     virtual ~KCMBlueDevil();
 
     virtual void defaults();
     virtual void save();
+
+private Q_SLOTS:
+    void launchService();
+
+private:
+    void generateUi();
+    void checkKDEDModuleLoaded();
+
+private:
+    QWidget *m_kdedNotRunningWarning;
 };
 
 #endif


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

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