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
qohosutils.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
"qohosutils.h"
5
#
include
<
cerrno
>
6
#
include
<
cstdarg
>
7
8
QT_BEGIN_NAMESPACE
9
10
namespace
QtOhos
11
{
12
13
std
::optional<
double
>
tryParseStringAsFiniteDouble
(
const
std
::string &inputString)
14
{
15
char
*endPtr;
16
errno = 0;
17
auto
value =
std
::strtod(inputString.c_str(), &endPtr);
18
bool
validValue = !inputString.empty()
19
&& endPtr == inputString.c_str() + inputString.size()
20
&& errno != ERANGE
21
&& std::isfinite(value);
22
23
return
validValue
24
?
std
::optional(value)
25
:
std
::nullopt;
26
}
27
28
std
::string printfToString(
const
char
*format, ...)
29
{
30
std
::va_list ap;
31
32
va_start(ap, format);
33
auto
dryVsnprintfResult = std::vsnprintf(
nullptr
, 0, format, ap);
34
va_end(ap);
35
36
if
(dryVsnprintfResult < 0)
37
qOhosReportFatalErrorAndAbort(
"String formatting with format '%s' failed: %d"
, format, dryVsnprintfResult);
38
39
auto
outputSize =
static_cast
<
std
::size_t>(dryVsnprintfResult);
40
41
std
::string output(outputSize + 1,
'\0'
);
42
43
va_start(ap, format);
44
auto
vsnprintfResult = std::vsnprintf(&output[0], output.size(), format, ap);
45
va_end(ap);
46
47
if
(vsnprintfResult < 0)
48
qOhosReportFatalErrorAndAbort(
"String formatting with format '%s' failed: %d"
, format, vsnprintfResult);
49
50
output.resize(outputSize);
51
52
return
output;
53
}
54
55
const
char
*
mapBoolToTrueFalseStr
(
bool
value)
56
{
57
return
value ?
"true"
:
"false"
;
58
}
59
60
std
::
optional
<
QNapi
::
Object
>
tryMapOptMainWindowToQAbility
(
61
QOhosJsState &jsState, std::optional<QtOhos::QObjectThreadSafeRef> optInstanceMainWindowRef)
62
{
63
if
(!optInstanceMainWindowRef.has_value())
64
return
jsState.defaultQAbility();
65
66
auto
optQAbility = jsState.tryGetQAbilityByQWindow(optInstanceMainWindowRef.value());
67
if
(!optQAbility) {
68
qCWarning(
69
QtForOhos,
"%s: QAbility for window '%s' no longer exists"
,
70
Q_FUNC_INFO, optInstanceMainWindowRef.value().refName().c_str());
71
}
72
73
return
optQAbility;
74
}
75
76
}
77
78
QT_END_NAMESPACE
QtOhos
Definition
qcore_ohos.cpp:59
QtOhos::tryMapOptMainWindowToQAbility
std::optional< QNapi::Object > tryMapOptMainWindowToQAbility(QOhosJsState &jsState, std::optional< QtOhos::QObjectThreadSafeRef > optInstanceMainWindowRef)
Definition
qohosutils.cpp:60
QtOhos::mapBoolToTrueFalseStr
std::string const char * mapBoolToTrueFalseStr(bool value)
Definition
qohosutils.cpp:55
QtOhos::tryParseStringAsFiniteDouble
std::optional< double > tryParseStringAsFiniteDouble(const std::string &inputString)
Definition
qohosutils.cpp:13
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
qtbase
src
plugins
platforms
ohos
qohosutils.cpp
Generated on
for Qt by
1.18.0