diff options
Diffstat (limited to 'src/corelib/tools/qversionnumber.cpp')
-rw-r--r-- | src/corelib/tools/qversionnumber.cpp | 53 |
1 files changed, 45 insertions, 8 deletions
diff --git a/src/corelib/tools/qversionnumber.cpp b/src/corelib/tools/qversionnumber.cpp index 97e5da8b3c..0f237bce87 100644 --- a/src/corelib/tools/qversionnumber.cpp +++ b/src/corelib/tools/qversionnumber.cpp @@ -406,10 +406,8 @@ QString QVersionNumber::toString() const return version; } +#if QT_STRINGVIEW_LEVEL < 2 /*! - \fn QVersionNumber QVersionNumber::fromString(const QString &string, - int *suffixIndex) - Constructs a QVersionNumber from a specially formatted \a string of non-negative decimal numbers delimited by '.'. @@ -423,14 +421,53 @@ QString QVersionNumber::toString() const */ QVersionNumber QVersionNumber::fromString(const QString &string, int *suffixIndex) { - QVector<int> seg; + return fromString(QLatin1String(string.toLatin1()), suffixIndex); +} +#endif + +/*! + \since 5.10 + \overload + + Constructs a QVersionNumber from a specially formatted \a string of + non-negative decimal numbers delimited by '.'. + + Once the numerical segments have been parsed, the remainder of the string + is considered to be the suffix string. The start index of that string will be + stored in \a suffixIndex if it is not null. + + \snippet qversionnumber/main.cpp 3 + + \sa isNull() +*/ +QVersionNumber QVersionNumber::fromString(QStringView string, int *suffixIndex) +{ + return fromString(QLatin1String(string.toLatin1()), suffixIndex); +} + +/*! + \since 5.10 + \overload - const QByteArray cString(string.toLatin1()); + Constructs a QVersionNumber from a specially formatted \a string of + non-negative decimal numbers delimited by '.'. + + Once the numerical segments have been parsed, the remainder of the string + is considered to be the suffix string. The start index of that string will be + stored in \a suffixIndex if it is not null. + + \snippet qversionnumber/main.cpp 3-latin1-1 + + \sa isNull() +*/ +QVersionNumber QVersionNumber::fromString(QLatin1String string, int *suffixIndex) +{ + QVector<int> seg; - const char *start = cString.constData(); + const char *start = string.begin(); const char *end = start; const char *lastGoodEnd = start; - const char *endOfString = cString.constData() + cString.size(); + const char *endOfString = string.end(); do { bool ok = false; @@ -443,7 +480,7 @@ QVersionNumber QVersionNumber::fromString(const QString &string, int *suffixInde } while (start < endOfString && (end < endOfString && *end == '.')); if (suffixIndex) - *suffixIndex = int(lastGoodEnd - cString.constData()); + *suffixIndex = int(lastGoodEnd - string.begin()); return QVersionNumber(qMove(seg)); } |