1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2025-01-04 05:56:02 +00:00
transmission/qt/DBusInteropHelper.cc
Mike Gelfand dadffa2c0f Align type qualifiers to the right (code style)
This way all the qualifiers (`const`, `volatile`, `mutable`) are grouped
together, e.g. `T const* const x` vs. `const T* const x`. Also helps reading
types right-to-left, e.g. "constant pointer to constant T" vs. "constant
pointer to T which is constant".
2017-04-20 19:53:20 +03:00

62 lines
1.6 KiB
C++

/*
* This file Copyright (C) 2015 Mnemosyne LLC
*
* It may be used under the GNU GPL versions 2 or 3
* or any future license endorsed by Mnemosyne LLC.
*
*/
#include <iostream>
#include <QDBusConnection>
#include <QDBusMessage>
#include <QDBusReply>
#include <QString>
#include <QVariant>
#include "DBusInteropHelper.h"
#include "InteropObject.h"
namespace
{
QLatin1String const DBUS_SERVICE("com.transmissionbt.Transmission");
QLatin1String const DBUS_OBJECT_PATH("/com/transmissionbt/Transmission");
QLatin1String const DBUS_INTERFACE("com.transmissionbt.Transmission");
} // namespace
bool DBusInteropHelper::isConnected() const
{
return QDBusConnection::sessionBus().isConnected();
}
QVariant DBusInteropHelper::addMetainfo(QString const& metainfo)
{
QDBusMessage request = QDBusMessage::createMethodCall(DBUS_SERVICE, DBUS_OBJECT_PATH, DBUS_INTERFACE,
QLatin1String("AddMetainfo"));
request.setArguments(QVariantList() << metainfo);
QDBusReply<bool> const response = QDBusConnection::sessionBus().call(request);
return response.isValid() ? QVariant(response.value()) : QVariant();
}
void DBusInteropHelper::registerObject(QObject* parent)
{
QDBusConnection bus = QDBusConnection::sessionBus();
if (!bus.isConnected())
{
return;
}
if (!bus.registerService(DBUS_SERVICE))
{
std::cerr << "couldn't register " << qPrintable(DBUS_SERVICE) << std::endl;
}
if (!bus.registerObject(DBUS_OBJECT_PATH, new InteropObject(parent), QDBusConnection::ExportAllSlots))
{
std::cerr << "couldn't register " << qPrintable(DBUS_OBJECT_PATH) << std::endl;
}
}