[SCM] kdeconnect packaging branch, master, updated. debian/0.9g-1-1183-g9d69498

Maximiliano Curia maxy at moszumanska.debian.org
Fri Oct 14 14:26:44 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/kdeconnect.git;a=commitdiff;h=d868211

The following commit has been merged in the master branch:
commit d868211229b3d20619a472d6edc82ab586c8594e
Author: Albert Vaca <albertvaka at gmail.com>
Date:   Wed Aug 14 00:03:46 2013 +0200

    Migrated battery plugin to new format
    
    Added notification when battery is low (untested!)
    Added intial battery status request
---
 daemon/plugins/battery/CMakeLists.txt              | 32 +++++++---
 .../batterydbusinterface.cpp}                      | 21 ++++---
 .../batterydbusinterface.h}                        | 38 ++++++------
 daemon/plugins/battery/batteryplugin.cpp           | 71 +++++++++-------------
 daemon/plugins/battery/batteryplugin.h             | 35 +++++------
 .../kdeconnect_battery.desktop}                    | 10 +--
 6 files changed, 103 insertions(+), 104 deletions(-)

diff --git a/daemon/plugins/battery/CMakeLists.txt b/daemon/plugins/battery/CMakeLists.txt
index b4583cf..e20f13b 100644
--- a/daemon/plugins/battery/CMakeLists.txt
+++ b/daemon/plugins/battery/CMakeLists.txt
@@ -1,14 +1,30 @@
+find_package(KDE4 REQUIRED)
+include (KDE4Defaults)
+include_directories(${KDE4_INCLUDES})
 
-generate_and_install_dbus_interface(
-    kded_kdeconnect
-    packageinterfaces/devicebatteryinformation_p.h
-    org.kde.kdeconnect.device.battery.xml
-    OPTIONS -a
+set(kdeconnect_battery_SRCS
+    batteryplugin.cpp
+    batterydbusinterface.cpp
+    ../kdeconnectplugin.cpp
 )
 
+kde4_add_plugin(kdeconnect_battery ${kdeconnect_battery_SRCS})
+
+target_link_libraries(kdeconnect_battery
+    ${KDE4_KDECORE_LIBS}
+    ${KDE4_KDEUI_LIBS}
+    ${QT_QTNETWORK_LIBRARY}
+    qjson
+)
+
+install(TARGETS kdeconnect_battery DESTINATION ${PLUGIN_INSTALL_DIR} )
+install(FILES kdeconnect_battery.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+
+include(../../../cmakemacros.txt)
+
 generate_and_install_dbus_interface(
-    kded_kdeconnect
-    packageinterfaces/batterypackageinterface.h
-    org.kde.kdeconnect.battery.xml
+    kdeconnect_battery
+    batterydbusinterface.h
+    org.kde.kdeconnect.device.battery.xml
     OPTIONS -a
 )
diff --git a/daemon/plugins/kdeconnectplugin.cpp b/daemon/plugins/battery/batterydbusinterface.cpp
similarity index 74%
copy from daemon/plugins/kdeconnectplugin.cpp
copy to daemon/plugins/battery/batterydbusinterface.cpp
index 9a9d0bf..d44a998 100644
--- a/daemon/plugins/kdeconnectplugin.cpp
+++ b/daemon/plugins/battery/batterydbusinterface.cpp
@@ -18,19 +18,22 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "kdeconnectplugin.h"
+#include "batterydbusinterface.h"
 
-#include <QPointer>
+#include <QDebug>
 
-#include "../device.h"
-
-KdeConnectPlugin::KdeConnectPlugin(QObject* parent, const QVariantList& args)
-    : QObject(parent)
+BatteryDbusInterface::BatteryDbusInterface(QObject *parent)
+    : QDBusAbstractAdaptor(parent)
 {
-    mDevice = qvariant_cast< Device* >(args.first());
+
 }
 
-Device* KdeConnectPlugin::device()
+void BatteryDbusInterface::updateValues(bool isCharging, int currentCharge)
 {
-    return mDevice;
+    mIsCharging = isCharging;
+    mCharge = currentCharge;
+
+    Q_EMIT chargingChange();
 }
+
+
diff --git a/daemon/plugins/kdeconnectplugin.h b/daemon/plugins/battery/batterydbusinterface.h
similarity index 59%
copy from daemon/plugins/kdeconnectplugin.h
copy to daemon/plugins/battery/batterydbusinterface.h
index 67d9d08..457cbb0 100644
--- a/daemon/plugins/kdeconnectplugin.h
+++ b/daemon/plugins/battery/batterydbusinterface.h
@@ -18,35 +18,33 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef KDECONNECTPLUGIN_H
-#define KDECONNECTPLUGIN_H
+#ifndef BATTERYDBUSINTERFACE_H
+#define BATTERYDBUSINTERFACE_H
 
-#include <QObject>
-#include <QVariantList>
+#include <QDBusAbstractAdaptor>
 
-#include <kdemacros.h>
-#include <KPluginFactory>
-#include <KPluginLoader>
-
-#include "../networkpackage.h"
-#include "../device.h"
-
-class KDE_EXPORT KdeConnectPlugin
-    : public QObject
+class BatteryDbusInterface
+    : public QDBusAbstractAdaptor
 {
     Q_OBJECT
+    Q_CLASSINFO("D-Bus Interface", "org.kde.kdeconnect.device.battery")
+    Q_PROPERTY( int charge READ charge NOTIFY chargingChange )
+    Q_PROPERTY( bool isCharging READ isCharging NOTIFY chargingChange )
 
 public:
-    KdeConnectPlugin(QObject* parent, const QVariantList& args);
-    Device* device();
+    explicit BatteryDbusInterface(QObject *parent);
+
+    int charge() { return mCharge; }
+    bool isCharging() { return mIsCharging; }
+
+    void updateValues(bool isCharging, int currentCharge);
 
-public Q_SLOTS:
-    //Returns true if it has handled the package in some way
-    //device.sendPackage can be used to send an answer back to the device
-    virtual bool receivePackage(const NetworkPackage& np) = 0;
+Q_SIGNALS:
+    Q_SCRIPTABLE void chargingChange();
 
 private:
-    Device* mDevice;
+    bool mIsCharging;
+    int mCharge;
 
 };
 
diff --git a/daemon/plugins/battery/batteryplugin.cpp b/daemon/plugins/battery/batteryplugin.cpp
index 0478364..5de2fd1 100644
--- a/daemon/plugins/battery/batteryplugin.cpp
+++ b/daemon/plugins/battery/batteryplugin.cpp
@@ -18,67 +18,56 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "batterypackageinterface.h"
+#include "batteryplugin.h"
 
 #include <QDebug>
-#include <kicon.h>
+#include <KNotification>
+#include <KIcon>
 
+#include "batterydbusinterface.h"
 
-BatteryPackageInterface::BatteryPackageInterface(QObject* parent)
-    : PackageInterface(parent)
-{
-    //TODO: Get initial state of all devices
+K_PLUGIN_FACTORY( KdeConnectPluginFactory, registerPlugin< BatteryPlugin >(); )
+K_EXPORT_PLUGIN( KdeConnectPluginFactory("kdeconnect_battery", "kdeconnect_battery") )
 
-    QDBusConnection::sessionBus().registerObject("/modules/kdeconnect/plugins/battery", this, QDBusConnection::ExportScriptableContents);
-    //The solid backend watches for this service to become available, because it is not possible to watch for a path
-    QDBusConnection::sessionBus().registerService("org.kde.kdeconnect.battery");
+BatteryPlugin::BatteryPlugin(QObject *parent, const QVariantList &args)
+    : KdeConnectPlugin(parent, args)
+{
+    batteryDbusInterface = new BatteryDbusInterface(parent);
 
-    qDebug() << "BatteryPackageInterface registered in dbus";
+    NetworkPackage np(PACKAGE_TYPE_BATTERY);
+    np.set("request",true);
+    device()->sendPackage(np);
 
 }
 
-bool BatteryPackageInterface::receivePackage(const Device& device, const NetworkPackage& np)
+BatteryPlugin::~BatteryPlugin()
 {
-    if (np.type() != PACKAGE_TYPE_BATTERY) return false;
+    batteryDbusInterface->deleteLater();
+}
 
-    QString id = device.id();
+bool BatteryPlugin::receivePackage(const NetworkPackage& np)
+{
 
-    if (!mDevices.contains(id)) {
+    if (np.type() != PACKAGE_TYPE_BATTERY) return false;
 
-        //TODO: Avoid ugly const_cast
-        DeviceBatteryInformation* deviceInfo = new DeviceBatteryInformation(const_cast<Device*>(&device));
+    bool isCharging = np.get<bool>("isCharging");
+    int currentCharge = np.get<int>("currentCharge");
 
-        mDevices[id] = deviceInfo;
+    if (batteryDbusInterface->isCharging() != currentCharge || batteryDbusInterface->isCharging() != isCharging) {
 
-        emit batteryDeviceAdded(device.id());
-        connect(&device, SIGNAL(reachableStatusChanged()), this, SLOT(deviceReachableStatusChange()));
+        batteryDbusInterface->updateValues(isCharging, currentCharge);
 
-        qDebug() << "Added battery info to device" << id;
+        if (currentCharge == 14 && !isCharging) {
+            KNotification* notification = new KNotification("battery100");
+            notification->setPixmap(KIcon("battery-040").pixmap(48, 48));
+            notification->setComponentData(KComponentData("kdeconnect", "kdeconnect"));
+            notification->setTitle(device()->name() + ": low battery");
+            notification->setText("Battery at 14%");
+        }
 
     }
 
-    bool isCharging = np.get<bool>("isCharging");
-    mDevices[id]->setCharging(isCharging);
-
-    int currentCharge = np.get<int>("currentCharge");
-    mDevices[id]->setCharge(currentCharge);
-
     return true;
 
 }
 
-QStringList BatteryPackageInterface::getBatteryReportingDevices()
-{
-    return mDevices.keys();
-}
-
-void BatteryPackageInterface::deviceReachableStatusChange()
-{
-    Device* device = static_cast<Device*>(sender());
-    if (!device->reachable()) {
-        mDevices.remove(device->id());
-        emit batteryDeviceLost(device->id());
-        disconnect(device, SIGNAL(reachableStatusChanged()), this, SLOT(deviceReachableStatusChange()));
-    }
-}
-
diff --git a/daemon/plugins/battery/batteryplugin.h b/daemon/plugins/battery/batteryplugin.h
index 4d2fa8e..ba7daae 100644
--- a/daemon/plugins/battery/batteryplugin.h
+++ b/daemon/plugins/battery/batteryplugin.h
@@ -18,38 +18,31 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef BATTERYPACKAGEINTERFACE_H
-#define BATTERYPACKAGEINTERFACE_H
+#ifndef BATTERYPLUGIN_H
+#define BATTERYPLUGIN_H
 
-#include <knotification.h>
-
-#include "packageinterface.h"
 #include <QDBusAbstractAdaptor>
 
-#include "devicebatteryinformation_p.h"
+#include <KNotification>
+
+#include "../kdeconnectplugin.h"
 
-class BatteryPackageInterface
-    : public PackageInterface
+class BatteryDbusInterface;
+
+class BatteryPlugin
+    : public KdeConnectPlugin
 {
     Q_OBJECT
-    Q_CLASSINFO("D-Bus Interface", "org.kde.kdeconnect.battery")
 
 public:
-    BatteryPackageInterface(QObject* parent);
-    virtual bool receivePackage(const Device&, const NetworkPackage& np);
-
-private:
-    QHash<QString,DeviceBatteryInformation*> mDevices;
+    explicit BatteryPlugin(QObject *parent, const QVariantList &args);
+    virtual ~BatteryPlugin();
 
 public Q_SLOTS:
-    Q_SCRIPTABLE QStringList getBatteryReportingDevices();
-
-Q_SIGNALS:
-    Q_SCRIPTABLE void batteryDeviceAdded(const QString& id);
-    Q_SCRIPTABLE void batteryDeviceLost(const QString& id);
+    virtual bool receivePackage(const NetworkPackage& np);
 
-public slots:
-    void deviceReachableStatusChange();
+private:
+    BatteryDbusInterface* batteryDbusInterface;
 };
 
 #endif
diff --git a/daemon/plugins/ping/kdeconnect_ping.desktop b/daemon/plugins/battery/kdeconnect_battery.desktop
similarity index 63%
copy from daemon/plugins/ping/kdeconnect_ping.desktop
copy to daemon/plugins/battery/kdeconnect_battery.desktop
index c225c8d..ef0fbcb 100644
--- a/daemon/plugins/ping/kdeconnect_ping.desktop
+++ b/daemon/plugins/battery/kdeconnect_battery.desktop
@@ -2,14 +2,14 @@
 Encoding=UTF-8
 Type=Service
 ServiceTypes=KdeConnect/Plugin
-X-KDE-Library=kdeconnect_ping
+X-KDE-Library=kdeconnect_battery
 X-KDE-PluginInfo-Author=Albert Vaca
 X-KDE-PluginInfo-Email=albertvaka at gmail.com
-X-KDE-PluginInfo-Name=kdeconnect_ping
+X-KDE-PluginInfo-Name=kdeconnect_battery
 X-KDE-PluginInfo-Version=0.1
 X-KDE-PluginInfo-Website=http://albertvaka.wordpress.com
 X-KDE-PluginInfo-License=GPL
 X-KDE-PluginInfo-EnabledByDefault=true
-Icon=dialog-ok
-Name=Ping
-Comment=Send and receive pings
+Icon=battery-100
+Name=Battery display
+Comment=Show your phone battery next to your computer battery

-- 
kdeconnect packaging



More information about the pkg-kde-commits mailing list