Add a function to list device names

To ease dbus scripting
This commit is contained in:
Albert Vaca 2018-03-24 12:52:20 +01:00
parent 749351ec64
commit b009c5fd0b
2 changed files with 15 additions and 0 deletions

View file

@ -21,6 +21,7 @@
#include "daemon.h" #include "daemon.h"
#include <QDBusConnection> #include <QDBusConnection>
#include <QDBusMetaType>
#include <QNetworkAccessManager> #include <QNetworkAccessManager>
#include <QDebug> #include <QDebug>
#include <QPointer> #include <QPointer>
@ -90,6 +91,7 @@ Daemon::Daemon(QObject* parent, bool testMode)
} }
//Register on DBus //Register on DBus
qDBusRegisterMetaType< QMap<QString,QString> >();
QDBusConnection::sessionBus().registerService(QStringLiteral("org.kde.kdeconnect")); QDBusConnection::sessionBus().registerService(QStringLiteral("org.kde.kdeconnect"));
QDBusConnection::sessionBus().registerObject(QStringLiteral("/modules/kdeconnect"), this, QDBusConnection::ExportScriptableContents); QDBusConnection::sessionBus().registerObject(QStringLiteral("/modules/kdeconnect"), this, QDBusConnection::ExportScriptableContents);
@ -168,6 +170,17 @@ QStringList Daemon::devices(bool onlyReachable, bool onlyTrusted) const
return ret; return ret;
} }
QMap<QString, QString> Daemon::deviceNames(bool onlyReachable, bool onlyTrusted) const
{
QMap<QString, QString> ret;
for (Device* device : qAsConst(d->m_devices)) {
if (onlyReachable && !device->isReachable()) continue;
if (onlyTrusted && !device->isTrusted()) continue;
ret[device->id()] = device->name();
}
return ret;
}
void Daemon::onNewDeviceLink(const NetworkPacket& identityPacket, DeviceLink* dl) void Daemon::onNewDeviceLink(const NetworkPacket& identityPacket, DeviceLink* dl)
{ {
const QString& id = identityPacket.get<QString>(QStringLiteral("deviceId")); const QString& id = identityPacket.get<QString>(QStringLiteral("deviceId"));

View file

@ -71,6 +71,8 @@ public Q_SLOTS:
//Returns a list of ids. The respective devices can be manipulated using the dbus path: "/modules/kdeconnect/Devices/"+id //Returns a list of ids. The respective devices can be manipulated using the dbus path: "/modules/kdeconnect/Devices/"+id
Q_SCRIPTABLE QStringList devices(bool onlyReachable = false, bool onlyPaired = false) const; Q_SCRIPTABLE QStringList devices(bool onlyReachable = false, bool onlyPaired = false) const;
Q_SCRIPTABLE QMap<QString,QString> deviceNames(bool onlyReachable = false, bool onlyPaired = false) const;
Q_SCRIPTABLE QString deviceIdByName(const QString& name) const; Q_SCRIPTABLE QString deviceIdByName(const QString& name) const;
Q_SCRIPTABLE virtual void sendSimpleNotification(const QString &eventId, const QString &title, const QString &text, const QString &iconName) = 0; Q_SCRIPTABLE virtual void sendSimpleNotification(const QString &eventId, const QString &title, const QString &text, const QString &iconName) = 0;