RemoteCommandsPlugin::RemoteCommandsPlugin(QObject *parent, const QVariantList &args)
: KdeConnectPlugin(parent, args)
, m_commands("{}")
, m_canAddCommand(false)
{
}
RemoteCommandsPlugin::~RemoteCommandsPlugin() = default;
bool RemoteCommandsPlugin::receivePacket(const NetworkPacket &np)
{
if (np.has(QStringLiteral("commandList"))) {
m_canAddCommand = np.get(QStringLiteral("canAddCommand"));
setCommands(np.get(QStringLiteral("commandList")));
return true;
}
return false;
}
void RemoteCommandsPlugin::connected()
{
NetworkPacket np(PACKET_TYPE_RUNCOMMAND_REQUEST, {{QStringLiteral("requestCommandList"), true}});
sendPacket(np);
}
QString RemoteCommandsPlugin::dbusPath() const
{
return QStringLiteral("/modules/kdeconnect/devices/") + device()->id() + QStringLiteral("/remotecommands");
}
void RemoteCommandsPlugin::setCommands(const QByteArray &cmds)
{
if (m_commands != cmds) {
m_commands = cmds;
Q_EMIT commandsChanged(m_commands);
}
}
void RemoteCommandsPlugin::triggerCommand(const QString &key)
{
NetworkPacket np(PACKET_TYPE_RUNCOMMAND_REQUEST, {{QStringLiteral("key"), key}});
sendPacket(np);
}
void RemoteCommandsPlugin::editCommands()
{
NetworkPacket np(PACKET_TYPE_RUNCOMMAND_REQUEST, {{QStringLiteral("setup"), true}});
sendPacket(np);
}