[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