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
qqmlstringconverters.cpp
Go to the documentation of this file.
1
// Copyright (C) 2016 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
// Qt-Security score:significant
4
5
#
include
"qqmlstringconverters_p.h"
6
#
include
<
private
/
qqmlglobal_p
.
h
>
7
8
#
include
<
QtCore
/
qpoint
.
h
>
9
#
include
<
QtCore
/
qrect
.
h
>
10
#
include
<
QtCore
/
qsize
.
h
>
11
#
include
<
QtCore
/
qvariant
.
h
>
12
#
include
<
QtCore
/
qdatetime
.
h
>
13
14
QT_BEGIN_NAMESPACE
15
16
QVariant QQmlStringConverters::variantFromString(
const
QString &s, QMetaType preferredType,
bool
*ok)
17
{
18
switch
(preferredType.id()) {
19
case
QMetaType::Int:
20
return
QVariant(
int
(qRound(s.toDouble(ok))));
21
case
QMetaType::UInt:
22
return
QVariant(uint(qRound(s.toDouble(ok))));
23
#
if
QT_CONFIG
(
datestring
)
24
case
QMetaType::QDate:
25
return
QVariant::fromValue(dateFromString(s, ok));
26
case
QMetaType::QTime:
27
return
QVariant::fromValue(timeFromString(s, ok));
28
case
QMetaType::QDateTime:
29
return
QVariant::fromValue(dateTimeFromString(s, ok));
30
#
endif
// datestring
31
case
QMetaType::QPointF:
32
return
QVariant::fromValue(pointFFromString(s, ok));
33
case
QMetaType::QPoint:
34
return
QVariant::fromValue(pointFFromString(s, ok).toPoint());
35
case
QMetaType::QSizeF:
36
return
QVariant::fromValue(sizeFFromString(s, ok));
37
case
QMetaType::QSize:
38
return
QVariant::fromValue(sizeFFromString(s, ok).toSize());
39
case
QMetaType::QRectF:
40
return
QVariant::fromValue(rectFFromString(s, ok));
41
case
QMetaType::QRect:
42
return
QVariant::fromValue(rectFFromString(s, ok).toRect());
43
default
: {
44
const
QVariant ret = QQmlValueTypeProvider::createValueType(s, preferredType);
45
if
(ret.isValid()) {
46
if
(ok)
47
*ok =
true
;
48
return
ret;
49
}
50
if
(ok)
51
*ok =
false
;
52
return
QVariant();
53
}
54
}
55
}
56
57
QVariant
QQmlStringConverters
::colorFromString(
const
QString &s,
bool
*ok)
58
{
59
return
QQml_colorProvider()->colorFromString(s, ok);
60
}
61
62
unsigned
QQmlStringConverters
::
rgbaFromString
(
const
QString &s,
bool
*ok)
63
{
64
return
QQml_colorProvider()->rgbaFromString(s, ok);
65
}
66
67
#
if
QT_CONFIG
(
datestring
)
68
QDate QQmlStringConverters::dateFromString(
const
QString &s,
bool
*ok)
69
{
70
QDate d = QDate::fromString(s, Qt::ISODate);
71
if
(ok) *ok = d.isValid();
72
return
d;
73
}
74
75
QTime QQmlStringConverters::timeFromString(
const
QString &s,
bool
*ok)
76
{
77
QTime t = QTime::fromString(s, Qt::ISODate);
78
if
(ok) *ok = t.isValid();
79
return
t;
80
}
81
82
QDateTime QQmlStringConverters::dateTimeFromString(
const
QString &s,
bool
*ok)
83
{
84
QDateTime d = QDateTime::fromString(s, Qt::ISODate);
85
if
(ok) *ok = d.isValid();
86
return
d;
87
}
88
#
endif
// datestring
89
90
//expects input of "x,y"
91
QPointF
QQmlStringConverters
::pointFFromString(
const
QString &s,
bool
*ok)
92
{
93
return
valueTypeFromNumberString<QPointF, 2, u','>(s, ok);
94
}
95
96
//expects input of "widthxheight"
97
QSizeF
QQmlStringConverters
::sizeFFromString(
const
QString &s,
bool
*ok)
98
{
99
return
valueTypeFromNumberString<QSizeF, 2, u'x'>(s, ok);
100
}
101
102
//expects input of "x,y,widthxheight" //### use space instead of second comma?
103
QRectF
QQmlStringConverters
::rectFFromString(
const
QString &s,
bool
*ok)
104
{
105
return
valueTypeFromNumberString<QRectF, 4, u',', u',', u'x'>(s, ok);
106
}
107
108
QT_END_NAMESPACE
QPointF
\inmodule QtCore\reentrant
Definition
qpoint.h:232
QQmlStringConverters
Definition
qqmlstringconverters_p.h:33
QQmlStringConverters::rgbaFromString
Q_QML_EXPORT unsigned rgbaFromString(const QString &, bool *ok=nullptr)
Definition
qqmlstringconverters.cpp:62
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtdeclarative
src
qml
qml
qqmlstringconverters.cpp
Generated on
for Qt by
1.18.0