diff --git a/runners/findmyphone/findmyphonerunner.cpp b/runners/findmyphone/findmyphonerunner.cpp index 9fbc913c..0ff4eda5 100644 --- a/runners/findmyphone/findmyphonerunner.cpp +++ b/runners/findmyphone/findmyphonerunner.cpp @@ -1,81 +1,82 @@ /*************************************************************************** * Copyright © 2018 Nicolas Fella * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License as * * published by the Free Software Foundation; either version 2 of * * the License or (at your option) version 3 or any later version * * accepted by the membership of KDE e.V. (or its successor approved * * by the membership of KDE e.V.), which shall act as a proxy * * defined in Section 14 of version 3 of the license. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "findmyphonerunner.h" #include #include #include "interfaces/dbusinterfaces.h" K_EXPORT_PLASMA_RUNNER(installer, FindMyPhoneRunner) FindMyPhoneRunner::FindMyPhoneRunner(QObject *parent, const QVariantList &args) : Plasma::AbstractRunner(parent, args) , m_daemonInterface(new DaemonDbusInterface) { Q_UNUSED(args) setObjectName(QStringLiteral("Find my device")); setPriority(AbstractRunner::NormalPriority); } FindMyPhoneRunner::~FindMyPhoneRunner() { } void FindMyPhoneRunner::match(Plasma::RunnerContext &context) { QDBusReply devicesReply = m_daemonInterface.devices(true, true); if (devicesReply.isValid()) { - for (const QString& deviceId : devicesReply.value()) { + const auto devices = devicesReply.value(); + for (const QString& deviceId : devices) { DeviceDbusInterface deviceInterface(deviceId, this); if(!deviceInterface.hasPlugin(QStringLiteral("kdeconnect_findmyphone"))) { continue; } QString deviceName = deviceInterface.name(); if (deviceName.contains(context.query(), Qt::CaseInsensitive) || i18n("Ring").contains(context.query(), Qt::CaseInsensitive) || i18n("Find").contains(context.query(), Qt::CaseInsensitive)) { Plasma::QueryMatch match(this); match.setType(Plasma::QueryMatch::PossibleMatch); match.setId(deviceId); match.setIconName(QStringLiteral("kdeconnect")); match.setText(i18n("Find %1", deviceName)); match.setData(deviceId); context.addMatch(match); } } } } void FindMyPhoneRunner::run(const Plasma::RunnerContext &/*context*/, const Plasma::QueryMatch &match) { FindMyPhoneDeviceDbusInterface findInterface(match.data().toString(), this); findInterface.ring(); } #include "findmyphonerunner.moc" diff --git a/runners/remotecommands/remotecommandsrunner.cpp b/runners/remotecommands/remotecommandsrunner.cpp index 22d8f90a..e6f44853 100644 --- a/runners/remotecommands/remotecommandsrunner.cpp +++ b/runners/remotecommands/remotecommandsrunner.cpp @@ -1,90 +1,91 @@ /*************************************************************************** * Copyright © 2018 Nicolas Fella * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License as * * published by the Free Software Foundation; either version 2 of * * the License or (at your option) version 3 or any later version * * accepted by the membership of KDE e.V. (or its successor approved * * by the membership of KDE e.V.), which shall act as a proxy * * defined in Section 14 of version 3 of the license. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "remotecommandsrunner.h" #include #include "interfaces/dbusinterfaces.h" K_EXPORT_PLASMA_RUNNER(installer, RemoteCommandsRunner) RemoteCommandsRunner::RemoteCommandsRunner(QObject *parent, const QVariantList &args) : Plasma::AbstractRunner(parent, args) , m_daemonInterface(new DaemonDbusInterface) { Q_UNUSED(args) setObjectName(QStringLiteral("Run Commands")); setPriority(AbstractRunner::HighestPriority); } RemoteCommandsRunner::~RemoteCommandsRunner() { } void RemoteCommandsRunner::match(Plasma::RunnerContext &context) { QDBusReply devicesReply = m_daemonInterface.devices(true, true); if (devicesReply.isValid()) { - for (const QString& deviceId : devicesReply.value()) { + const auto devices = devicesReply.value(); + for (const QString& deviceId : devices) { DeviceDbusInterface deviceInterface(deviceId, this); if(!deviceInterface.hasPlugin("kdeconnect_remotecommands")) { continue; } RemoteCommandsDbusInterface remoteCommandsInterface(deviceId, this); const auto cmds = QJsonDocument::fromJson(remoteCommandsInterface.commands()).object(); for (auto it = cmds.constBegin(), itEnd = cmds.constEnd(); it!=itEnd; ++it) { const QJsonObject cont = it->toObject(); const QString deviceName = deviceInterface.name(); const QString commandName = cont.value(QStringLiteral("name")).toString(); if (deviceName.contains(context.query(), Qt::CaseInsensitive) || commandName.contains(context.query(), Qt::CaseInsensitive)) { Plasma::QueryMatch match(this); match.setType(Plasma::QueryMatch::PossibleMatch); match.setId(it.key()); match.setIconName(QStringLiteral("kdeconnect")); match.setText(deviceName + ": " + commandName); match.setSubtext(cont.value(QStringLiteral("command")).toString()); match.setData(deviceId + "$" + it.key()); context.addMatch(match); } } } } } void RemoteCommandsRunner::run(const Plasma::RunnerContext &/*context*/, const Plasma::QueryMatch &match) { RemoteCommandsDbusInterface remoteCommandsInterface(match.data().toString().split("$")[0], this); remoteCommandsInterface.triggerCommand(match.data().toString().split("$")[1]); } #include "remotecommandsrunner.moc"