File indexing completed on 2024-05-12 05:37:20
0001 /* 0002 SPDX-FileCopyrightText: 2007 Christopher Blauvelt <cblauvelt@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-only 0005 */ 0006 0007 #include "devicesignalmapmanager.h" 0008 0009 DeviceSignalMapManager::DeviceSignalMapManager(QObject *parent) 0010 : QObject(parent) 0011 { 0012 user = parent; 0013 } 0014 0015 DeviceSignalMapManager::~DeviceSignalMapManager() 0016 { 0017 } 0018 0019 void DeviceSignalMapManager::mapDevice(Solid::Battery *battery, const QString &udi) 0020 { 0021 BatterySignalMapper *map = nullptr; 0022 if (!signalmap.contains(Solid::DeviceInterface::Battery)) { 0023 map = new BatterySignalMapper(this); 0024 signalmap[Solid::DeviceInterface::Battery] = map; 0025 connect(map, SIGNAL(deviceChanged(QString, QString, QVariant)), user, SLOT(deviceChanged(QString, QString, QVariant))); 0026 } else { 0027 map = (BatterySignalMapper *)signalmap[Solid::DeviceInterface::Battery]; 0028 } 0029 0030 connect(battery, &Solid::Battery::chargePercentChanged, map, &BatterySignalMapper::chargePercentChanged); 0031 connect(battery, &Solid::Battery::chargeStateChanged, map, &BatterySignalMapper::chargeStateChanged); 0032 connect(battery, &Solid::Battery::presentStateChanged, map, &BatterySignalMapper::presentStateChanged); 0033 map->setMapping(battery, udi); 0034 } 0035 0036 void DeviceSignalMapManager::mapDevice(Solid::StorageAccess *storageaccess, const QString &udi) 0037 { 0038 StorageAccessSignalMapper *map = nullptr; 0039 if (!signalmap.contains(Solid::DeviceInterface::StorageAccess)) { 0040 map = new StorageAccessSignalMapper(this); 0041 signalmap[Solid::DeviceInterface::StorageAccess] = map; 0042 connect(map, SIGNAL(deviceChanged(QString, QString, QVariant)), user, SLOT(deviceChanged(QString, QString, QVariant))); 0043 } else { 0044 map = (StorageAccessSignalMapper *)signalmap[Solid::DeviceInterface::StorageAccess]; 0045 } 0046 0047 connect(storageaccess, &Solid::StorageAccess::accessibilityChanged, map, &StorageAccessSignalMapper::accessibilityChanged); 0048 map->setMapping(storageaccess, udi); 0049 } 0050 0051 void DeviceSignalMapManager::unmapDevice(Solid::Battery *battery) 0052 { 0053 BatterySignalMapper *map = (BatterySignalMapper *)signalmap.value(Solid::DeviceInterface::Battery); 0054 if (!map) { 0055 return; 0056 } 0057 0058 disconnect(battery, &Solid::Battery::chargePercentChanged, map, &BatterySignalMapper::chargePercentChanged); 0059 disconnect(battery, &Solid::Battery::chargeStateChanged, map, &BatterySignalMapper::chargeStateChanged); 0060 disconnect(battery, &Solid::Battery::presentStateChanged, map, &BatterySignalMapper::presentStateChanged); 0061 } 0062 0063 void DeviceSignalMapManager::unmapDevice(Solid::StorageAccess *storageaccess) 0064 { 0065 StorageAccessSignalMapper *map = (StorageAccessSignalMapper *)signalmap.value(Solid::DeviceInterface::StorageAccess); 0066 if (!map) { 0067 return; 0068 } 0069 0070 disconnect(storageaccess, &Solid::StorageAccess::accessibilityChanged, map, &StorageAccessSignalMapper::accessibilityChanged); 0071 }