Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qohosdeviceinfo.cpp
Go to the documentation of this file.
1
// Copyright (C) 2025 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
#
include
"qohosdeviceinfo_p.h"
5
#
include
<
QtCore
/
private
/
qohoslogger_p
.
h
>
6
7
QT_BEGIN_NAMESPACE
8
9
namespace
QOhosDeviceInfo
{
10
11
namespace
{
12
13
bool
isSupportedDeviceType(
RecognizedDeviceType
recognizedDeviceType)
14
{
15
switch
(recognizedDeviceType) {
16
case
RecognizedDeviceType
::
_2in1
:
17
case
RecognizedDeviceType
::
tablet
:
18
case
RecognizedDeviceType
::
phone
:
19
return
true
;
20
}
21
return
false
;
22
}
23
24
}
25
26
static
QMap
<
Type
,
QVariant
>
s_deviceInfo
= {};
27
28
void
init
(QMap<Type, QVariant> devinfo)
29
{
30
s_deviceInfo
=
std
::move(devinfo);
31
}
32
33
QVariant
getProperty
(
Type
prop)
34
{
35
auto
result = s_deviceInfo.value(prop);
36
if
(!result.isValid()) {
37
qOhosWarning(QtForOhos)
38
<<
"QOhosDeviceInfo::getProperty cannot obtain value from DeviceInfo map"
;
39
}
40
return
result;
41
}
42
43
std
::optional<
RecognizedDeviceType
>
tryGetRecognizedDeviceType
()
44
{
45
static
const
QMap<QString, RecognizedDeviceType> deviceTypeNameMapping = {
46
{QStringLiteral(
"2in1"
),
RecognizedDeviceType
::
_2in1
},
47
{QStringLiteral(
"tablet"
),
RecognizedDeviceType
::
tablet
},
48
{QStringLiteral(
"phone"
),
RecognizedDeviceType
::
phone
},
49
};
50
51
auto
deviceTypeName = getProperty(Type::deviceType).toString();
52
auto
deviceTypeIt = deviceTypeNameMapping.constFind(deviceTypeName);
53
auto
deviceType = deviceTypeIt != deviceTypeNameMapping.constEnd()
54
?
std
::optional(deviceTypeIt.value())
55
:
std
::nullopt;
56
57
return
deviceType;
58
}
59
60
bool
isTablet
()
61
{
62
return
tryGetRecognizedDeviceType() == QOhosDeviceInfo::RecognizedDeviceType::tablet;
63
}
64
65
bool
is2in1
()
66
{
67
return
tryGetRecognizedDeviceType() == QOhosDeviceInfo::RecognizedDeviceType::_2in1;
68
}
69
70
bool
isPhone
()
71
{
72
return
tryGetRecognizedDeviceType() == RecognizedDeviceType::phone;
73
}
74
75
int
sdkApiVersion
()
76
{
77
return
getProperty(Type::sdkApiVersion).toInt();
78
}
79
80
bool
isCurrentDeviceSupported
()
81
{
82
auto
deviceType = tryGetRecognizedDeviceType();
83
return
deviceType.has_value() && isSupportedDeviceType(deviceType.value());
84
}
85
86
}
87
88
QT_END_NAMESPACE
QOhosDeviceInfo
Definition
qohosdeviceinfo.cpp:9
QOhosDeviceInfo::isCurrentDeviceSupported
bool isCurrentDeviceSupported()
Definition
qohosdeviceinfo.cpp:80
QOhosDeviceInfo::sdkApiVersion
int sdkApiVersion()
Definition
qohosdeviceinfo.cpp:75
QOhosDeviceInfo::getProperty
QVariant getProperty(Type prop)
Definition
qohosdeviceinfo.cpp:33
QOhosDeviceInfo::init
void init(QMap< Type, QVariant > devinfo)
Definition
qohosdeviceinfo.cpp:28
QOhosDeviceInfo::Type
Type
Definition
qohosdeviceinfo_p.h:26
QOhosDeviceInfo::isPhone
bool isPhone()
Definition
qohosdeviceinfo.cpp:70
QOhosDeviceInfo::RecognizedDeviceType
RecognizedDeviceType
Definition
qohosdeviceinfo_p.h:63
QOhosDeviceInfo::RecognizedDeviceType::_2in1
@ _2in1
Definition
qohosdeviceinfo_p.h:64
QOhosDeviceInfo::RecognizedDeviceType::tablet
@ tablet
Definition
qohosdeviceinfo_p.h:65
QOhosDeviceInfo::RecognizedDeviceType::phone
@ phone
Definition
qohosdeviceinfo_p.h:66
QOhosDeviceInfo::tryGetRecognizedDeviceType
std::optional< RecognizedDeviceType > tryGetRecognizedDeviceType()
Definition
qohosdeviceinfo.cpp:43
QOhosDeviceInfo::s_deviceInfo
static QMap< Type, QVariant > s_deviceInfo
Definition
qohosdeviceinfo.cpp:26
QOhosDeviceInfo::is2in1
bool is2in1()
Definition
qohosdeviceinfo.cpp:65
QOhosDeviceInfo::isTablet
bool isTablet()
Definition
qohosdeviceinfo.cpp:60
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
qtbase
src
plugins
platforms
ohos
qohosdeviceinfo.cpp
Generated on
for Qt by
1.18.0