File indexing completed on 2024-04-28 03:59:49
0001 /* 0002 SPDX-FileCopyrightText: 2015 Jan Grulich <jgrulich@redhat.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #include "modemlocation.h" 0008 0009 #include <QDBusConnection> 0010 #include <QDBusMessage> 0011 0012 ModemLocation::ModemLocation(QObject *parent) 0013 : QDBusAbstractAdaptor(parent) 0014 , m_enabledNotifications(false) 0015 , m_capabilities(0) 0016 , m_enabled(0) 0017 , m_signalsLocation(false) 0018 { 0019 } 0020 0021 ModemLocation::~ModemLocation() 0022 { 0023 } 0024 0025 uint ModemLocation::capabilities() const 0026 { 0027 return m_capabilities; 0028 } 0029 0030 uint ModemLocation::enabled() const 0031 { 0032 return m_enabled; 0033 } 0034 0035 ModemManager::LocationInformationMap ModemLocation::location() const 0036 { 0037 return m_location; 0038 } 0039 0040 bool ModemLocation::signalsLocation() const 0041 { 0042 return m_signalsLocation; 0043 } 0044 0045 ModemManager::LocationInformationMap ModemLocation::GetLocation() 0046 { 0047 return m_location; 0048 } 0049 0050 void ModemLocation::Setup(uint sources, bool signal_location) 0051 { 0052 Q_UNUSED(sources); 0053 Q_UNUSED(signal_location) 0054 } 0055 0056 void ModemLocation::setModemPath(const QString &path) 0057 { 0058 m_modemPath = path; 0059 } 0060 0061 void ModemLocation::setEnableNotifications(bool enable) 0062 { 0063 m_enabledNotifications = enable; 0064 } 0065 0066 void ModemLocation::setCapabilities(uint capabilities) 0067 { 0068 m_capabilities = capabilities; 0069 0070 if (m_enabledNotifications) { 0071 QVariantMap map; 0072 map.insert(QLatin1String("Capabilities"), m_capabilities); 0073 QDBusMessage message = QDBusMessage::createSignal(m_modemPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged")); 0074 message << QLatin1String("org.kde.fakemodem.Modem.Location") << map << QStringList(); 0075 QDBusConnection::sessionBus().send(message); 0076 } 0077 } 0078 0079 void ModemLocation::setEnabled(uint enabled) 0080 { 0081 m_enabled = enabled; 0082 0083 if (m_enabledNotifications) { 0084 QVariantMap map; 0085 map.insert(QLatin1String("Enabled"), m_enabled); 0086 QDBusMessage message = QDBusMessage::createSignal(m_modemPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged")); 0087 message << QLatin1String("org.kde.fakemodem.Modem.Location") << map << QStringList(); 0088 QDBusConnection::sessionBus().send(message); 0089 } 0090 } 0091 0092 void ModemLocation::setLocation(const ModemManager::LocationInformationMap &location) 0093 { 0094 m_location = location; 0095 0096 if (m_enabledNotifications) { 0097 QVariantMap map; 0098 map.insert(QLatin1String("Location"), QVariant::fromValue<ModemManager::LocationInformationMap>(location)); 0099 QDBusMessage message = QDBusMessage::createSignal(m_modemPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged")); 0100 message << QLatin1String("org.kde.fakemodem.Modem.Location") << map << QStringList(); 0101 QDBusConnection::sessionBus().send(message); 0102 } 0103 } 0104 0105 void ModemLocation::setSignalsLocation(bool signalsLocation) 0106 { 0107 m_signalsLocation = signalsLocation; 0108 0109 if (m_enabledNotifications) { 0110 QVariantMap map; 0111 map.insert(QLatin1String("SignalsLocation"), m_signalsLocation); 0112 QDBusMessage message = QDBusMessage::createSignal(m_modemPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("PropertiesChanged")); 0113 message << QLatin1String("org.kde.fakemodem.Modem.Location") << map << QStringList(); 0114 QDBusConnection::sessionBus().send(message); 0115 } 0116 } 0117 0118 QVariantMap ModemLocation::toMap() const 0119 { 0120 QVariantMap map; 0121 map.insert(QLatin1String(MM_MODEM_LOCATION_PROPERTY_CAPABILITIES), m_capabilities); 0122 map.insert(QLatin1String(MM_MODEM_LOCATION_PROPERTY_ENABLED), m_enabled); 0123 map.insert(QLatin1String(MM_MODEM_LOCATION_PROPERTY_SIGNALSLOCATION), QVariant::fromValue<ModemManager::LocationInformationMap>(m_location)); 0124 map.insert(QLatin1String(MM_MODEM_LOCATION_PROPERTY_LOCATION), m_signalsLocation); 0125 return map; 0126 } 0127 0128 #include "moc_modemlocation.cpp"