398#include "qplatformdefs.h"
404#include "private/qipaddress_p.h"
406#include "private/qdir_p.h"
407#include <private/qtools_p.h>
589 userName(
copy.userName),
590 password(
copy.password),
594 fragment(
copy.fragment),
596 sectionIsPresent(
copy.sectionIsPresent),
606 return error ? std::make_unique<Error>(*
error) :
nullptr;
620 error = std::make_unique<Error>();
621 error->code = errorCode;
623 error->position = supplement;
805 data.replace(u
'%',
"%25"_L1);
817 return input.mid(from, to - from);
856 const ushort *userNameActions;
857 const ushort *passwordActions;
862 switch (appendingTo) {
926 while (thePathView.size() > 1 && thePathView.endsWith(u
'/'))
971 needsLowercasing =
i;
977 if (
p[
i] ==
'+' ||
p[
i] ==
'-' ||
p[
i] ==
'.')
991 if (needsLowercasing != -1) {
997 schemeData[
i] =
QChar(
c + 0x20);
1009 flags &= ~IsLocalFile;
1018 if (from ==
end && !auth.isNull())
1022 while (from !=
end) {
1023 qsizetype userInfoIndex = auth.indexOf(u
'@', from);
1024 if (
size_t(userInfoIndex) <
size_t(
end)) {
1028 from = userInfoIndex + 1;
1031 qsizetype colonIndex = auth.lastIndexOf(u
':',
end - 1);
1032 if (colonIndex < from)
1035 if (
size_t(colonIndex) <
size_t(
end)) {
1036 if (auth.at(from).unicode() ==
'[') {
1038 qsizetype closingBracket = auth.indexOf(u
']', from);
1039 if (
size_t(closingBracket) >
size_t(colonIndex))
1044 if (
size_t(colonIndex) <
size_t(
end) - 1) {
1046 unsigned long x = 0;
1089 if (
size_t(delimIndex) >=
size_t(
end)) {
1164 if (
host.
at(0).unicode() ==
'[') {
1185 static const char acceptable[] =
1192 if (
begin[3].unicode() !=
'.')
1200 if (
begin[2].unicode() >=
'a')
1215 else if (
begin->unicode() < 0x80 && strchr(acceptable,
begin->unicode()) !=
nullptr)
1223 return &origBegin[2];
1235 decoded = decodedBuffer;
1243 if ((zoneIdPosition != -1) && (decoded.
lastIndexOf(zoneIdIdentifier) == zoneIdPosition)) {
1244 zoneId = decoded.
mid(zoneIdPosition + zoneIdIdentifier.size());
1248 if (zoneId.isEmpty())
1265 if (!zoneId.isEmpty()) {
1266 host += zoneIdIdentifier;
1287 if (
begin[0].unicode() ==
'[') {
1291 if (
end[-1].unicode() !=
']') {
1296 if (
len > 5 &&
begin[1].unicode() ==
'v') {
1301 }
else if (
begin[1].unicode() ==
'v') {
1390 size_t uc =
data[
i];
1391 if (uc ==
'#' &&
hash == -1) {
1398 if (question == -1) {
1399 if (uc ==
':' && colon == -1)
1409 hierStart = colon + 1;
1419 if (hierEnd - hierStart >= 2 &&
data[hierStart] ==
'/' &&
data[hierStart + 1] ==
'/') {
1422 for (
qsizetype i = hierStart + 2;
i < authorityEnd ; ++
i) {
1423 if (
data[
i] ==
'/') {
1432 pathStart = authorityEnd;
1439 pathStart = hierStart;
1441 if (hierStart < hierEnd)
1447 if (
size_t(question) <
size_t(
hash))
1478 tmp =
"//"_L1 +
host;
1483 if (!ourPath.isEmpty() && !ourPath.startsWith(u
'/'))
1490 if (ourPath.length() > 2 && ourPath.at(0) == u
'/' && ourPath.at(2) == u
':')
1511 return u
'/' + relativePath;
1519 if (!
path.contains(u
'/'))
1520 newPath = relativePath;
1545 if (
path->size() == 1 &&
in[0].unicode() ==
'.')
1547 else if (
path->size() == 2 &&
in[0].unicode() ==
'.' &&
in[1].unicode() ==
'.')
1554 if (
path->size() >= 2 &&
in[0].unicode() ==
'.' &&
in[1].unicode() ==
'/')
1556 else if (
path->size() >= 3 &&
in[0].unicode() ==
'.'
1557 &&
in[1].unicode() ==
'.' &&
in[2].unicode() ==
'/')
1563 if (
in <=
end - 3 &&
in[0].unicode() ==
'/' &&
in[1].unicode() ==
'.'
1564 &&
in[2].unicode() ==
'/') {
1567 }
else if (
in ==
end - 2 &&
in[0].unicode() ==
'/' &&
in[1].unicode() ==
'.') {
1578 if (
in <=
end - 4 &&
in[0].unicode() ==
'/' &&
in[1].unicode() ==
'.'
1579 &&
in[2].unicode() ==
'.' &&
in[3].unicode() ==
'/') {
1580 while (
out >
path->constData() && (--
out)->unicode() !=
'/')
1582 if (
out ==
path->constData() &&
out->unicode() !=
'/')
1586 }
else if (
in ==
end - 3 &&
in[0].unicode() ==
'/' &&
in[1].unicode() ==
'.'
1587 &&
in[2].unicode() ==
'.') {
1588 while (
out >
path->constData() && (--
out)->unicode() !=
'/')
1590 if (
out->unicode() ==
'/')
1603 while (in < end && in->unicode() !=
'/')
1635 if (
path.at(0) == u
'/') {
1690 static const char forbidden[] =
"\"<>\\^`{|}\x7F";
1691 static const char forbiddenUserInfo[] =
":/?#[]@";
1696 for (
size_t i =
size_t(
begin);
i < size_t(
end); ++
i) {
1703 || uc <= 0x20 || strchr(forbidden, uc)) {
1707 if (section ==
UserInfo && strchr(forbiddenUserInfo + 1, uc))
1709 else if (section !=
UserInfo && strchr(forbiddenUserInfo, uc))
1720 for (
size_t j =
size_t(
begin);
j <
i; ++
j)
1721 if (
data[
j] ==
':') {
1736inline void QUrlPrivate::validate()
const
1739 that->encodedOriginal = that->toEncoded();
1742 QURL_SETFLAG(that->stateFlags, Validated);
1753 if (
scheme ==
"mailto"_L1) {
1755 that->isValid =
false;
1757 "port and password"),
1762 that->isValid =
false;
1898 if (!d)
return true;
1937 qWarning(
"QUrl: QUrl::DecodedMode is not permitted when parsing a full URL");
2033 qWarning(
"QUrl::setAuthority(): QUrl::DecodedMode is not permitted in this function");
2062 qWarning(
"QUrl::authority(): QUrl::FullyDecoded is not permitted in this function");
2099 qWarning(
"QUrl::setUserInfo(): QUrl::DecodedMode is not permitted in this function");
2136 qWarning(
"QUrl::userInfo(): QUrl::FullyDecoded is not permitted in this function");
2302 }
else if (!
data.startsWith(u
'[')) {
2310 if (
data.contains(u
':')) {
2345 if (
result.startsWith(u
'['))
2363 if (port < -1 || port > 65535) {
2385 if (!d)
return defaultPort;
2386 return d->
port == -1 ? defaultPort : d->
port;
2500 const qsizetype slash = ourPath.lastIndexOf(u
'/');
2503 return ourPath.mid(slash + 1);
2515 if (!d)
return false;
2586 if (
query.isEmpty())
2702 if (!d)
return false;
2727 if (!d)
return relative;
2728 if (!relative.d)
return *
this;
2744 t.d->host = d->
host;
2745 t.d->port = d->
port;
2749 t.d->path = d->
path;
2751 t.d->query = relative.d->
query;
2762 t.d->query = relative.d->
query;
2782#if defined(QURL_DEBUG)
2783 qDebug(
"QUrl(\"%ls\").resolved(\"%ls\") = \"%ls\"",
2802 if (!d)
return true;
2839 qWarning(
"QUrl: QUrl::FullyDecoded is not permitted when reconstructing the full URL");
2860 options &= ~EncodeReserved;
2953 that.d->setPath(
path, 0,
path.size());
3021 return input.toUtf8().toPercentEncoding(exclude, include);
3081 if (!lhs.d || !rhs.d) {
3082 bool thisIsEmpty = !lhs.d || lhs.d->
isEmpty();
3083 bool thatIsEmpty = !rhs.d || rhs.d->
isEmpty();
3145 if (!lhs.d && !rhs.d)
3243 return path1 == path2;
3319#if defined(Q_OS_WIN)
3321 const QChar nativeSeparator = u
'\\';
3322 auto i =
result.indexOf(nativeSeparator);
3327 if (
data[
i] == nativeSeparator)
3371 if (localFile.isEmpty())
3377 if (deslashified.size() > 1 && deslashified.at(1) == u
':' && deslashified.at(0) != u
'/') {
3378 deslashified.prepend(u
'/');
3379 }
else if (deslashified.startsWith(
"//"_L1)) {
3381 qsizetype indexOfPath = deslashified.indexOf(u
'/', 2);
3385 hostSpec.truncate(hostSpec.size() - 4);
3397 }
else if (indexOfPath > 2) {
3398 deslashified = deslashified.right(deslashified.size() - indexOfPath);
3400 deslashified.
clear();
3457 QString childPath = childUrl.path();
3460 return ((childUrl.scheme().isEmpty())
3461 && (childUrl.authority().isEmpty())
3462 && childPath.size() > 0 && childPath.at(0) == u
'/');
3466 return ((childUrl.scheme().isEmpty() || d->
scheme == childUrl.scheme())
3467 && (childUrl.authority().isEmpty() ||
authority() == childUrl.authority())
3468 && childPath.startsWith(ourPath)
3469 && ((ourPath.endsWith(u
'/') && childPath.size() > ourPath.size())
3470 || (!ourPath.endsWith(u
'/') && childPath.size() > ourPath.size()
3471 && childPath.at(ourPath.size()) == u
'/')));
3475#ifndef QT_NO_DATASTREAM
3508#ifndef QT_NO_DEBUG_STREAM
3519 QChar c = size_t(errorPosition) < size_t(errorSource.size()) ?
3520 errorSource.at(errorPosition) :
QChar(QChar::Null);
3522 switch (errorCode) {
3524 Q_UNREACHABLE_RETURN(
QString());
3527 auto msg =
"Invalid scheme (character '%1' not permitted)"_L1;
3532 return "Invalid user name (character '%1' not permitted)"_L1
3536 return "Invalid password (character '%1' not permitted)"_L1
3540 if (errorPosition >= 0)
3541 return "Invalid hostname (character '%1' not permitted)"_L1
3544 return QStringLiteral(
"Invalid hostname (contains invalid characters)");
3550 return "Invalid IPv6 address (character '%1' not permitted)"_L1.arg(
c);
3552 return "Invalid IPvFuture address (character '%1' not permitted)"_L1.arg(
c);
3557 return QStringLiteral(
"Invalid port or port number out of range");
3562 return "Invalid path (character '%1' not permitted)"_L1
3566 return "Invalid query (character '%1' not permitted)"_L1
3570 return "Invalid fragment (character '%1' not permitted)"_L1
3574 return QStringLiteral(
"Path component is relative and authority is present");
3576 return QStringLiteral(
"Path component starts with '//' and authority is absent");
3578 return QStringLiteral(
"Relative URL's path component contains ':' before any '/'");
3581 Q_UNREACHABLE_RETURN(
QString());
3616 msg +=
errorMessage(errorCode, errorSource, errorPosition);
3617 msg +=
"; source was \""_L1;
3621 " scheme = ", d->
scheme);
3625 " host = ", d->
host);
3629 " path = ", d->
path);
3631 " query = ", d->
query);
3647 lst.reserve(urls.size());
3663 lst.reserve(urls.size());
3705 if (
path.startsWith(
"//"_L1))
3758 UserInputResolutionOptions options)
3762 if (trimmedString.isEmpty())
3767 if (
isIp6(trimmedString)) {
3777 if (!workingDirectory.isEmpty()) {
3778 const QFileInfo fileInfo(
QDir(workingDirectory), userInput);
3798 && urlPrepended.port() == -1)
3802 if (urlPrepended.isValid() && (!urlPrepended.host().isEmpty() || !urlPrepended.path().isEmpty())) {
3803 qsizetype dotIndex = trimmedString.indexOf(u
'.');
T loadRelaxed() const noexcept
qsizetype size() const noexcept
Returns the number of bytes in this byte array.
static QByteArray fromPercentEncoding(const QByteArray &pctEncoded, char percent='%')
\inmodule QtCore\reentrant
static bool isAbsolutePath(const QString &path)
Returns true if path is absolute; returns false if it is relative.
QString absoluteFilePath() const
bool exists() const
Returns true if the file system entry this QFileInfo refers to exists; otherwise returns false.
size_t qHash(const QUrl &url, size_t seed) noexcept
Returns the hash value for the url.
Represents an immutable JsonPath like path in the Qml code model (from a DomItem to another DomItem)
constexpr void truncate(qsizetype n) noexcept
Truncates this string view to length length.
constexpr bool isEmpty() const noexcept
Returns whether this string view is empty - that is, whether {size() == 0}.
const_iterator constEnd() const noexcept
constexpr QStringView left(qsizetype n) const noexcept
constexpr QStringView mid(qsizetype pos, qsizetype n=-1) const noexcept
Returns the substring of length length starting at position start in this object.
const_iterator constBegin() const noexcept
qsizetype lastIndexOf(QChar c, Qt::CaseSensitivity cs=Qt::CaseSensitive) const noexcept
qsizetype indexOf(QChar c, qsizetype from=0, Qt::CaseSensitivity cs=Qt::CaseSensitive) const noexcept
\macro QT_RESTRICTED_CAST_FROM_ASCII
QString left(qsizetype n) const &
iterator begin()
Returns an \l{STL-style iterators}{STL-style iterator} pointing to the first character in the string.
QByteArray toLatin1() const &
qsizetype indexOf(QLatin1StringView s, qsizetype from=0, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
const_iterator constEnd() const
Returns a const \l{STL-style iterators}{STL-style iterator} pointing just after the last character in...
bool startsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string starts with s; otherwise returns false.
void reserve(qsizetype size)
Ensures the string has space for at least size characters.
void chop(qsizetype n)
Removes n characters from the end of the string.
static QString fromLatin1(QByteArrayView ba)
This is an overloaded member function, provided for convenience. It differs from the above function o...
bool isEmpty() const noexcept
Returns true if the string has no characters; otherwise returns false.
void clear()
Clears the contents of the string and makes it null.
bool isNull() const
Returns true if this string is null; otherwise returns false.
qsizetype size() const noexcept
Returns the number of characters in this string.
static QString fromUtf8(QByteArrayView utf8)
This is an overloaded member function, provided for convenience. It differs from the above function o...
iterator end()
Returns an \l{STL-style iterators}{STL-style iterator} pointing just after the last character in the ...
const QChar at(qsizetype i) const
Returns the character at the given index position in the string.
bool endsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string ends with s; otherwise returns false.
int compare(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const noexcept
QChar * data()
Returns a pointer to the data stored in the QString.
static QString number(int, int base=10)
This is an overloaded member function, provided for convenience. It differs from the above function o...
QString trimmed() const &
QString & remove(qsizetype i, qsizetype len)
Removes n characters from the string, starting at the given position index, and returns a reference t...
const_iterator constBegin() const
Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the first character in the st...
void setQuery(const QString &value, qsizetype from, qsizetype end)
void appendPassword(QString &appendTo, QUrl::FormattingOptions options) const
void setUserInfo(const QString &userInfo, qsizetype from, qsizetype end)
void appendHost(QString &appendTo, QUrl::FormattingOptions options) const
void setPath(const QString &value, qsizetype from, qsizetype end)
bool validateComponent(Section section, const QString &input, qsizetype begin, qsizetype end)
std::unique_ptr< Error > cloneError() const
void setAuthority(const QString &auth, qsizetype from, qsizetype end, QUrl::ParsingMode mode)
QString toLocalFile(QUrl::FormattingOptions options) const
std::unique_ptr< Error > error
ErrorCode validityError(QString *source=nullptr, qsizetype *position=nullptr) const
void setFragment(const QString &value, qsizetype from, qsizetype end)
QString mergePaths(const QString &relativePath) const
@ InvalidIPv6AddressError
@ InvalidIPv4AddressError
@ InvalidCharacterInIPv6Error
@ AuthorityPresentAndPathIsRelative
@ AuthorityAbsentAndPathIsDoubleSlash
@ RelativeUrlPathContainsColonBeforeSlash
bool setScheme(const QString &value, qsizetype len, bool doSetError)
void appendAuthority(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
void appendUserName(QString &appendTo, QUrl::FormattingOptions options) const
void appendUserInfo(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
void setPassword(const QString &value, qsizetype from, qsizetype end)
void appendPath(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
bool validateComponent(Section section, const QString &input)
void setError(ErrorCode errorCode, const QString &source, qsizetype supplement=-1)
bool hasAuthority() const
void appendQuery(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
void appendFragment(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
bool setHost(const QString &value, qsizetype from, qsizetype end, QUrl::ParsingMode mode)
void setUserName(const QString &value, qsizetype from, qsizetype end)
void parse(const QString &url, QUrl::ParsingMode parsingMode)
constexpr bool testFlag(E1 f) const
static QUrl fromLocalFile(const QString &localfile)
Returns a QUrl representation of localFile, interpreted as a local file.
QString userInfo(ComponentFormattingOptions options=PrettyDecoded) const
Returns the user info of the URL, or an empty string if the user info is undefined.
static QList< QUrl > fromStringList(const QStringList &uris, ParsingMode mode=TolerantMode)
QString fragment(ComponentFormattingOptions options=PrettyDecoded) const
Returns the fragment of the URL.
QUrl()
Constructs an empty QUrl object.
bool matches(const QUrl &url, FormattingOptions options) const
QString url(FormattingOptions options=FormattingOptions(PrettyDecoded)) const
Returns a string representation of the URL.
QString query(ComponentFormattingOptions=PrettyDecoded) const
Returns the query string of the URL if there's a query string, or an empty result if not.
static QByteArray toAce(const QString &domain, AceProcessingOptions options={})
QString fileName(ComponentFormattingOptions options=FullyDecoded) const
static QStringList toStringList(const QList< QUrl > &uris, FormattingOptions options=FormattingOptions(PrettyDecoded))
QUrl resolved(const QUrl &relative) const
Returns the result of the merge of this URL with relative.
void setPassword(const QString &password, ParsingMode mode=DecodedMode)
Sets the URL's password to password.
void setUserName(const QString &userName, ParsingMode mode=DecodedMode)
Sets the URL's user name to userName.
void setFragment(const QString &fragment, ParsingMode mode=TolerantMode)
Sets the fragment of the URL to fragment.
static QString fromPercentEncoding(const QByteArray &)
Returns a decoded copy of input.
bool isRelative() const
Returns true if the URL is relative; otherwise returns false.
bool isValid() const
Returns true if the URL is non-empty and valid; otherwise returns false.
~QUrl()
Destructor; called immediately before the object is deleted.
QString userName(ComponentFormattingOptions options=FullyDecoded) const
Returns the user name of the URL if it is defined; otherwise an empty string is returned.
QString host(ComponentFormattingOptions=FullyDecoded) const
Returns the host of the URL if it is defined; otherwise an empty string is returned.
void setQuery(const QString &query, ParsingMode mode=TolerantMode)
Sets the query string of the URL to query.
static QUrl fromUserInput(const QString &userInput, const QString &workingDirectory=QString(), UserInputResolutionOptions options=DefaultResolution)
Returns a valid URL from a user supplied userInput string if one can be deduced.
QByteArray toEncoded(FormattingOptions options=FullyEncoded) const
Returns the encoded representation of the URL if it's valid; otherwise an empty QByteArray is returne...
QString password(ComponentFormattingOptions=FullyDecoded) const
Returns the password of the URL if it is defined; otherwise an empty string is returned.
ParsingMode
The parsing mode controls the way QUrl parses strings.
bool isEmpty() const
Returns true if the URL has no data; otherwise returns false.
static QByteArray toPercentEncoding(const QString &, const QByteArray &exclude=QByteArray(), const QByteArray &include=QByteArray())
Returns an encoded copy of input.
void setUrl(const QString &url, ParsingMode mode=TolerantMode)
Parses url and sets this object to that value.
QString authority(ComponentFormattingOptions options=PrettyDecoded) const
Returns the authority of the URL if it is defined; otherwise an empty string is returned.
bool isParentOf(const QUrl &url) const
Returns true if this URL is a parent of childUrl.
QUrl adjusted(FormattingOptions options) const
QString scheme() const
Returns the scheme of the URL.
void setScheme(const QString &scheme)
Sets the scheme of the URL to scheme.
void clear()
Resets the content of the QUrl.
QString errorString() const
static QString fromAce(const QByteArray &domain, AceProcessingOptions options={})
void setHost(const QString &host, ParsingMode mode=DecodedMode)
Sets the host of the URL to host.
int port(int defaultPort=-1) const
void setAuthority(const QString &authority, ParsingMode mode=TolerantMode)
Sets the authority of the URL to authority.
QDataStream & operator>>(QDataStream &in, QUrl &url)
Reads a url into url from the stream in and returns a reference to the stream.
void setUserInfo(const QString &userInfo, ParsingMode mode=TolerantMode)
Sets the user info of the URL to userInfo.
void setPath(const QString &path, ParsingMode mode=DecodedMode)
Sets the path of the URL to path.
QString toDisplayString(FormattingOptions options=FormattingOptions(PrettyDecoded)) const
QUrl & operator=(const QUrl ©) noexcept
Assigns the specified url to this object.
static QUrl fromEncoded(QByteArrayView input, ParsingMode mode=TolerantMode)
Parses input and returns the corresponding QUrl.
QString toString(FormattingOptions options=FormattingOptions(PrettyDecoded)) const
Returns a string representation of the URL.
void setPort(int port)
Sets the port of the URL to port.
QDataStream & operator<<(QDataStream &out, const QUrl &url)
Writes url url to the stream out and returns a reference to the stream.
QString toLocalFile() const
Returns the path of this URL formatted as a local file path.
QString path(ComponentFormattingOptions options=FullyDecoded) const
Returns the path of the URL.
\variable Qt::strong_ordering::less
static const weak_ordering less
static const weak_ordering greater
static const weak_ordering equivalent
QHash< int, QWidget * > hash
[35multi]
void toString(QString &appendTo, IPv4Address address)
bool parseIp4(IPv4Address &address, const QChar *begin, const QChar *end)
const QChar * parseIp6(IPv6Address &address, const QChar *begin, const QChar *end)
Combined button and popup list for selecting options.
constexpr bool isAsciiDigit(char32_t c) noexcept
constexpr bool isAsciiLower(char32_t c) noexcept
constexpr bool isAsciiLetterOrNumber(char32_t c) noexcept
constexpr bool isAsciiUpper(char32_t c) noexcept
constexpr bool isHexDigit(char32_t c) noexcept
constexpr Qt::strong_ordering compareThreeWay(LeftInt lhs, RightInt rhs) noexcept
static jboolean copy(JNIEnv *, jobject)
QT_WARNING_POP void qAtomicAssign(T *&d, T *x)
This is a helper for the assignment operators of implicitly shared classes.
void qAtomicDetach(T *&d)
This is a helper for the detach method of implicitly shared classes.
DBusConnection const char DBusError * error
QString qt_normalizePathSegments(const QString &name, QDirPrivate::PathNormalizations flags, bool *ok)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
size_t qHash(const QFileSystemWatcherPathKey &key, size_t seed=0)
GLint GLint GLint GLint GLint x
[0]
GLenum GLuint GLenum GLsizei length
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLint GLint GLint GLint GLint GLint GLint GLbitfield mask
GLsizei GLsizei GLchar * source
GLuint GLuint64EXT address
GLsizei const GLchar *const * path
GLenum GLenum GLenum input
static qreal component(const QPointF &point, unsigned int i)
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
static Q_CONSTINIT QBasicAtomicInteger< unsigned > seed
QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator begin(const QRegularExpressionMatchIterator &iterator)
#define qUtf16Printable(string)
#define QStringLiteral(str)
#define QT_TRANSLATE_NOOP(scope, x)
static const ushort *const passwordInIsolation
static const ushort *const pathInUrl
static QString recodeFromUser(const QString &input, const ushort *actions, qsizetype from, qsizetype to)
static const ushort userNameInUrl[]
QDebug operator<<(QDebug d, const QUrl &url)
static QString fileScheme()
static const ushort *const pathInIsolation
static const QChar * parseIpFuture(QString &host, const QChar *begin, const QChar *end, QUrl::ParsingMode mode)
static void appendComponentIfPresent(QString &msg, bool present, const char *componentName, const QString &component)
static void removeDotsFromPath(QString *path)
static QString webDavSslTag()
static const ushort *const passwordInUrl
static const ushort userNameInUserInfo[]
static QString errorMessage(QUrlPrivate::ErrorCode errorCode, const QString &errorSource, qsizetype errorPosition)
static void appendToUser(QString &appendTo, QStringView value, QUrl::FormattingOptions options, const ushort *actions)
static const ushort *const queryInIsolation
static bool isHex(char c)
static const ushort userNameInIsolation[]
static const QChar * parseIp6(QString &host, const QChar *begin, const QChar *end, QUrl::ParsingMode mode)
static const ushort userNameInAuthority[]
static const ushort *const fragmentInIsolation
static const ushort *const fragmentInUrl
Qt::weak_ordering compareThreeWay(const QUrl &lhs, const QUrl &rhs)
static QUrl adjustFtpPath(QUrl url)
static const ushort *const passwordInAuthority
static QString ftpScheme()
static bool isIp6(const QString &text)
static const ushort *const queryInUrl
bool comparesEqual(const QUrl &lhs, const QUrl &rhs)
static QString webDavScheme()
static QString fromNativeSeparators(const QString &pathName)
static const ushort *const passwordInUserInfo
static void parseDecodedComponent(QString &data)
QT_BEGIN_NAMESPACE Q_AUTOTEST_EXPORT qsizetype qt_urlRecode(QString &appendTo, QStringView url, QUrl::ComponentFormattingOptions encoding, const ushort *tableModifications=nullptr)
QString Q_CORE_EXPORT qt_ACE_do(const QString &domain, AceOperation op, AceLeadingDot dot, QUrl::AceProcessingOptions options={})
QT_BEGIN_NAMESPACE typedef uchar * output
QTextStream out(stdout)
[7]
QUrl url("example.com")
[constructor-url-reference]