1/****************************************************************************
2**
3** Copyright (C) 2015 The Qt Company Ltd and/or its subsidiary(-ies).
4** Contact: http://www.qt-project.org/legal
5**
6** This file is part of the QtSystems module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:LGPL21$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see http://www.qt.io/terms-conditions. For further
15** information use the contact form at http://www.qt.io/contact-us.
16**
17** GNU Lesser General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU Lesser
19** General Public License version 2.1 or version 3 as published by the Free
20** Software Foundation and appearing in the file LICENSE.LGPLv21 and
21** LICENSE.LGPLv3 included in the packaging of this file. Please review the
22** following information to ensure the GNU Lesser General Public License
23** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
24** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25**
26** As a special exception, The Qt Company gives you certain additional
27** rights. These rights are described in The Qt Company LGPL Exception
28** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29**
30** $QT_END_LICENSE$
31**
32****************************************************************************/
33
34//
35// W A R N I N G
36// -------------
37//
38// This file is not part of the Qt API. It exists purely as an
39// implementation detail. This header file may change from version to
40// version without notice, or even be removed.
41//
42// We mean it.
43//
44
45#ifndef QDECLARATIVEDEVICEINFO_P_H
46#define QDECLARATIVEDEVICEINFO_P_H
47
48#include "qdeviceinfo.h"
49
50QT_BEGIN_NAMESPACE
51
52class QDeclarativeDeviceInfo : public QObject
53{
54 Q_OBJECT
55
56 Q_ENUMS(Feature)
57 Q_ENUMS(LockType)
58 Q_ENUMS(ThermalState)
59 Q_ENUMS(Version)
60
61 Q_FLAGS(LockType LockTypeFlags)
62
63 Q_PROPERTY(bool monitorThermalState READ monitorThermalState WRITE setMonitorThermalState NOTIFY monitorThermalStateChanged)
64
65 Q_PROPERTY(LockTypeFlags activatedLocks READ activatedLocks NOTIFY activatedLocksChanged)
66 Q_PROPERTY(LockTypeFlags enabledLocks READ enabledLocks NOTIFY enabledLocksChanged)
67 Q_PROPERTY(ThermalState thermalState READ thermalState NOTIFY thermalStateChanged)
68
69public:
70 enum Feature {
71 BluetoothFeature = QDeviceInfo::BluetoothFeature,
72 CameraFeature = QDeviceInfo::CameraFeature,
73 FmRadioFeature = QDeviceInfo::FmRadioFeature,
74 FmTransmitterFeature = QDeviceInfo::FmTransmitterFeature,
75 InfraredFeature = QDeviceInfo::InfraredFeature,
76 LedFeature = QDeviceInfo::LedFeature,
77 MemoryCardFeature = QDeviceInfo::MemoryCardFeature,
78 UsbFeature = QDeviceInfo::UsbFeature,
79 VibrationFeature = QDeviceInfo::VibrationFeature,
80 WlanFeature = QDeviceInfo::WlanFeature,
81 SimFeature = QDeviceInfo::SimFeature,
82 PositioningFeature = QDeviceInfo::PositioningFeature,
83 VideoOutFeature = QDeviceInfo::VideoOutFeature,
84 HapticsFeature = QDeviceInfo::HapticsFeature,
85 NfcFeature = QDeviceInfo::NfcFeature
86 };
87
88 enum LockType {
89 NoLock = QDeviceInfo::NoLock,
90 PinLock = QDeviceInfo::PinLock,
91 TouchOrKeyboardLock = QDeviceInfo::TouchOrKeyboardLock,
92 UnknownLock = QDeviceInfo::UnknownLock
93 };
94 Q_DECLARE_FLAGS(LockTypeFlags, LockType)
95
96 enum ThermalState {
97 UnknownThermal = QDeviceInfo::UnknownThermal,
98 NormalThermal = QDeviceInfo::NormalThermal,
99 WarningThermal = QDeviceInfo::WarningThermal,
100 AlertThermal = QDeviceInfo::AlertThermal,
101 ErrorThermal = QDeviceInfo::ErrorThermal
102 };
103
104 enum Version {
105 Os = QDeviceInfo::Os,
106 Firmware = QDeviceInfo::Firmware
107 };
108
109 QDeclarativeDeviceInfo(QObject *parent = 0);
110 virtual ~QDeclarativeDeviceInfo();
111
112 LockTypeFlags activatedLocks() const;
113 LockTypeFlags enabledLocks() const;
114
115 bool monitorThermalState() const;
116 void setMonitorThermalState(bool monitor);
117 ThermalState thermalState() const;
118
119 Q_INVOKABLE bool hasFeature(Feature feature) const;
120 Q_INVOKABLE int imeiCount() const;
121 Q_INVOKABLE QString imei(int interface) const;
122 Q_INVOKABLE QString manufacturer() const;
123 Q_INVOKABLE QString model() const;
124 Q_INVOKABLE QString productName() const;
125 Q_INVOKABLE QString uniqueDeviceID() const;
126 Q_INVOKABLE QString version(Version type) const;
127
128Q_SIGNALS:
129 void monitorThermalStateChanged();
130
131 void activatedLocksChanged();
132 void enabledLocksChanged();
133 void thermalStateChanged();
134
135private:
136 QDeviceInfo *deviceInfo;
137
138 bool isMonitorThermalState;
139};
140
141QT_END_NAMESPACE
142
143#endif // QDECLARATIVEDEVICEINFO_P_H
144

source code of qtsystems/src/imports/systeminfo/qdeclarativedeviceinfo_p.h