File indexing completed on 2024-05-12 04:01:50

0001 /*
0002     SPDX-FileCopyrightText: 2006-2007 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 "deviceinterface.h"
0008 #include "deviceinterface_p.h"
0009 
0010 #include <solid/devices/ifaces/deviceinterface.h>
0011 
0012 #include <QMetaEnum>
0013 
0014 Solid::DeviceInterface::DeviceInterface(DeviceInterfacePrivate &dd, QObject *backendObject)
0015     : d_ptr(&dd)
0016 {
0017     Q_D(DeviceInterface);
0018 
0019     d->setBackendObject(backendObject);
0020 }
0021 
0022 Solid::DeviceInterface::~DeviceInterface()
0023 {
0024     delete d_ptr->backendObject();
0025     delete d_ptr;
0026     d_ptr = nullptr;
0027 }
0028 
0029 bool Solid::DeviceInterface::isValid() const
0030 {
0031     Q_D(const DeviceInterface);
0032     return d->backendObject() != nullptr;
0033 }
0034 
0035 QString Solid::DeviceInterface::typeToString(Type type)
0036 {
0037     int index = staticMetaObject.indexOfEnumerator("Type");
0038     QMetaEnum metaEnum = staticMetaObject.enumerator(index);
0039     return QString(metaEnum.valueToKey((int)type));
0040 }
0041 
0042 Solid::DeviceInterface::Type Solid::DeviceInterface::stringToType(const QString &type)
0043 {
0044     int index = staticMetaObject.indexOfEnumerator("Type");
0045     QMetaEnum metaEnum = staticMetaObject.enumerator(index);
0046     return (Type)metaEnum.keyToValue(type.toUtf8());
0047 }
0048 
0049 QString Solid::DeviceInterface::typeDescription(Type type)
0050 {
0051     switch (type) {
0052     case Unknown:
0053         return tr("Unknown", "Unknown device type");
0054     case GenericInterface:
0055         return tr("Generic Interface", "Generic Interface device type");
0056     case Processor:
0057         return tr("Processor", "Processor device type");
0058     case Block:
0059         return tr("Block", "Block device type");
0060     case StorageAccess:
0061         return tr("Storage Access", "Storage Access device type");
0062     case StorageDrive:
0063         return tr("Storage Drive", "Storage Drive device type");
0064     case OpticalDrive:
0065         return tr("Optical Drive", "Optical Drive device type");
0066     case StorageVolume:
0067         return tr("Storage Volume", "Storage Volume device type");
0068     case OpticalDisc:
0069         return tr("Optical Disc", "Optical Disc device type");
0070     case Camera:
0071         return tr("Camera", "Camera device type");
0072     case PortableMediaPlayer:
0073         return tr("Portable Media Player", "Portable Media Player device type");
0074     case Battery:
0075         return tr("Battery", "Battery device type");
0076     case NetworkShare:
0077         return tr("Network Share", "Network Share device type");
0078     case Last:
0079         return QString();
0080     }
0081     return QString();
0082 }
0083 
0084 Solid::DeviceInterfacePrivate::DeviceInterfacePrivate()
0085     : m_devicePrivate(nullptr)
0086 {
0087 }
0088 
0089 Solid::DeviceInterfacePrivate::~DeviceInterfacePrivate()
0090 {
0091 }
0092 
0093 QObject *Solid::DeviceInterfacePrivate::backendObject() const
0094 {
0095     return m_backendObject.data();
0096 }
0097 
0098 void Solid::DeviceInterfacePrivate::setBackendObject(QObject *object)
0099 {
0100     m_backendObject = object;
0101 }
0102 
0103 Solid::DevicePrivate *Solid::DeviceInterfacePrivate::devicePrivate() const
0104 {
0105     return m_devicePrivate;
0106 }
0107 
0108 void Solid::DeviceInterfacePrivate::setDevicePrivate(DevicePrivate *devicePrivate)
0109 {
0110     m_devicePrivate = devicePrivate;
0111 }
0112 
0113 #include "moc_deviceinterface.cpp"