File indexing completed on 2024-05-19 04:03:20

0001 /*
0002     SPDX-FileCopyrightText: 2005 Kevin Ottens <ervin@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #include "ifaces/device.h"
0008 
0009 #ifdef QT_DBUS_LIB
0010 #include <QDBusConnection>
0011 #include <QDBusMessage>
0012 #endif
0013 
0014 Solid::Ifaces::Device::Device(QObject *parent)
0015     : QObject(parent)
0016 {
0017 }
0018 
0019 Solid::Ifaces::Device::~Device()
0020 {
0021 }
0022 
0023 QString Solid::Ifaces::Device::parentUdi() const
0024 {
0025     return QString();
0026 }
0027 
0028 void Solid::Ifaces::Device::registerAction(const QString &actionName, QObject *dest, const char *requestSlot, const char *doneSlot) const
0029 {
0030 #ifdef QT_DBUS_LIB
0031     QDBusConnection::sessionBus().connect(QString(), deviceDBusPath(), "org.kde.Solid.Device", actionName + "Requested", dest, requestSlot);
0032 
0033     QDBusConnection::sessionBus().connect(QString(), deviceDBusPath(), "org.kde.Solid.Device", actionName + "Done", dest, doneSlot);
0034 #endif
0035 }
0036 
0037 void Solid::Ifaces::Device::broadcastActionDone(const QString &actionName, int error, const QString &errorString) const
0038 {
0039 #ifdef QT_DBUS_LIB
0040     QDBusMessage signal = QDBusMessage::createSignal(deviceDBusPath(), "org.kde.Solid.Device", actionName + "Done");
0041     signal << error << errorString;
0042 
0043     QDBusConnection::sessionBus().send(signal);
0044 #endif
0045 }
0046 
0047 void Solid::Ifaces::Device::broadcastActionRequested(const QString &actionName) const
0048 {
0049 #ifdef QT_DBUS_LIB
0050     QDBusMessage signal = QDBusMessage::createSignal(deviceDBusPath(), "org.kde.Solid.Device", actionName + "Requested");
0051     QDBusConnection::sessionBus().send(signal);
0052 #endif
0053 }
0054 
0055 QString Solid::Ifaces::Device::deviceDBusPath() const
0056 {
0057     const QByteArray encodedUdi = udi().toUtf8().toPercentEncoding(QByteArray(), ".~-", '_');
0058     return QString("/org/kde/solid/Device_") + QString::fromLatin1(encodedUdi);
0059 }
0060 
0061 QString Solid::Ifaces::Device::displayName() const
0062 {
0063     return description();
0064 }
0065 
0066 #include "moc_device.cpp"