Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
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
5#include <private/qqmlglobal_p.h>
6
7#include <QtCore/qpoint.h>
8#include <QtCore/qrect.h>
9#include <QtCore/qsize.h>
10#include <QtCore/qvariant.h>
11#include <QtCore/qdatetime.h>
12
14
16{
17 switch (preferredType.id()) {
18 case QMetaType::Int:
19 return QVariant(int(qRound(s.toDouble(ok))));
20 case QMetaType::UInt:
21 return QVariant(uint(qRound(s.toDouble(ok))));
22#if QT_CONFIG(datestring)
23 case QMetaType::QDate:
25 case QMetaType::QTime:
27 case QMetaType::QDateTime:
29#endif // datestring
30 case QMetaType::QPointF:
32 case QMetaType::QPoint:
33 return QVariant::fromValue(pointFFromString(s, ok).toPoint());
34 case QMetaType::QSizeF:
36 case QMetaType::QSize:
37 return QVariant::fromValue(sizeFFromString(s, ok).toSize());
38 case QMetaType::QRectF:
40 case QMetaType::QRect:
41 return QVariant::fromValue(rectFFromString(s, ok).toRect());
42 default: {
44 if (ret.isValid()) {
45 if (ok)
46 *ok = true;
47 return ret;
48 }
49 if (ok)
50 *ok = false;
51 return QVariant();
52 }
53 }
54}
55
60
62{
64}
65
66#if QT_CONFIG(datestring)
67QDate QQmlStringConverters::dateFromString(const QString &s, bool *ok)
68{
69 QDate d = QDate::fromString(s, Qt::ISODate);
70 if (ok) *ok = d.isValid();
71 return d;
72}
73
74QTime QQmlStringConverters::timeFromString(const QString &s, bool *ok)
75{
76 QTime t = QTime::fromString(s, Qt::ISODate);
77 if (ok) *ok = t.isValid();
78 return t;
79}
80
81QDateTime QQmlStringConverters::dateTimeFromString(const QString &s, bool *ok)
82{
83 QDateTime d = QDateTime::fromString(s, Qt::ISODate);
84 if (ok) *ok = d.isValid();
85 return d;
86}
87#endif // datestring
88
89//expects input of "x,y"
91{
92 return valueTypeFromNumberString<QPointF, 2, u','>(s, ok);
93}
94
95//expects input of "widthxheight"
97{
98 return valueTypeFromNumberString<QSizeF, 2, u'x'>(s, ok);
99}
100
101//expects input of "x,y,widthxheight" //### use space instead of second comma?
103{
104 return valueTypeFromNumberString<QRectF, 4, u',', u',', u'x'>(s, ok);
105}
106
\inmodule QtCore\reentrant
Definition qdatetime.h:283
\inmodule QtCore \reentrant
Definition qdatetime.h:29
\inmodule QtCore
Definition qmetatype.h:341
int id(int=0) const
Definition qmetatype.h:475
\inmodule QtCore\reentrant
Definition qpoint.h:217
virtual QVariant colorFromString(const QString &, bool *)
virtual unsigned rgbaFromString(const QString &, bool *)
static QVariant createValueType(const QJSValue &, QMetaType)
\inmodule QtCore\reentrant
Definition qrect.h:484
\inmodule QtCore
Definition qsize.h:208
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore \reentrant
Definition qdatetime.h:215
\inmodule QtCore
Definition qvariant.h:65
static auto fromValue(T &&value) noexcept(std::is_nothrow_copy_constructible_v< T > &&Private::CanUseInternalSpace< T >) -> std::enable_if_t< std::conjunction_v< std::is_copy_constructible< T >, std::is_destructible< T > >, QVariant >
Definition qvariant.h:536
Q_QML_EXPORT QPointF pointFFromString(const QString &, bool *ok=nullptr)
Q_QML_EXPORT unsigned rgbaFromString(const QString &, bool *ok=nullptr)
Q_QML_EXPORT QSizeF sizeFFromString(const QString &, bool *ok=nullptr)
Q_QML_EXPORT QVariant variantFromString(const QString &, QMetaType preferredType, bool *ok=nullptr)
Q_QML_EXPORT QRectF rectFFromString(const QString &, bool *ok=nullptr)
Q_QML_EXPORT QVariant colorFromString(const QString &, bool *ok=nullptr)
Combined button and popup list for selecting options.
@ ISODate
int qRound(qfloat16 d) noexcept
Definition qfloat16.h:327
return ret
GLdouble s
[6]
Definition qopenglext.h:235
GLdouble GLdouble t
Definition qopenglext.h:243
static std::optional< QDate > dateFromString(const QString &string, QV4::ExecutionEngine *engine)
\qmlmethod string Qt::formatDate(datetime date, variant format, variant localeFormatOption)
static std::optional< QTime > timeFromString(const QString &string, QV4::ExecutionEngine *engine)
\qmlmethod string Qt::formatTime(datetime time, variant format, variant localeFormatOption)
static std::optional< QDateTime > dateTimeFromString(const QString &string, QV4::ExecutionEngine *engine)
\qmlmethod string Qt::formatDateTime(datetime dateTime, variant format, variant localeFormatOption)
Q_AUTOTEST_EXPORT QQmlColorProvider * QQml_colorProvider(void)
unsigned int uint
Definition qtypes.h:34