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 #pragma once 0008 0009 #include <QMap> 0010 #include <QObject> 0011 #include <QSignalMapper> 0012 0013 #include <QDebug> 0014 0015 #include <solid/battery.h> 0016 #include <solid/block.h> 0017 #include <solid/camera.h> 0018 #include <solid/device.h> 0019 #include <solid/devicenotifier.h> 0020 #include <solid/opticaldisc.h> 0021 #include <solid/opticaldrive.h> 0022 #include <solid/portablemediaplayer.h> 0023 #include <solid/processor.h> 0024 #include <solid/storageaccess.h> 0025 #include <solid/storagedrive.h> 0026 #include <solid/storagevolume.h> 0027 0028 class DeviceSignalMapper : public QSignalMapper 0029 { 0030 Q_OBJECT 0031 0032 public: 0033 explicit DeviceSignalMapper(QObject *parent = nullptr); 0034 ~DeviceSignalMapper() override; 0035 0036 void setMapping(QObject *device, const QString &udi); 0037 0038 Q_SIGNALS: 0039 void deviceChanged(const QString &udi, const QString &property, QVariant value); 0040 0041 protected: 0042 QMap<QObject *, QString> signalmap; 0043 }; 0044 0045 class BatterySignalMapper : public DeviceSignalMapper 0046 { 0047 Q_OBJECT 0048 0049 public: 0050 explicit BatterySignalMapper(QObject *parent = nullptr); 0051 ~BatterySignalMapper() override; 0052 0053 public Q_SLOTS: 0054 void chargePercentChanged(int value); 0055 void chargeStateChanged(int newState); 0056 void presentStateChanged(bool newState); 0057 }; 0058 0059 class StorageAccessSignalMapper : public DeviceSignalMapper 0060 { 0061 Q_OBJECT 0062 0063 public: 0064 explicit StorageAccessSignalMapper(QObject *parent = nullptr); 0065 ~StorageAccessSignalMapper() override; 0066 0067 public Q_SLOTS: 0068 void accessibilityChanged(bool accessible); 0069 };