[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