diff options
Diffstat (limited to 'src/corelib/io/qurl.cpp')
-rw-r--r-- | src/corelib/io/qurl.cpp | 121 |
1 files changed, 63 insertions, 58 deletions
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index 7512bcd83f..d417238053 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -1,32 +1,38 @@ /**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd. -** Copyright (C) 2012 Intel Corporation. -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2016 Intel Corporation. +** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtCore module of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL21$ +** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. ** -** As a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** @@ -813,7 +819,7 @@ static const ushort * const fragmentInUrl = userNameInUrl + 6; static inline void parseDecodedComponent(QString &data) { - data.replace(QLatin1Char('%'), QStringLiteral("%25")); + data.replace(QLatin1Char('%'), QLatin1String("%25")); } static inline QString @@ -1471,7 +1477,7 @@ QString QUrlPrivate::toLocalFile(QUrl::FormattingOptions options) const // magic for shared drive on windows if (!host.isEmpty()) { - tmp = QStringLiteral("//") + host; + tmp = QLatin1String("//") + host; #ifdef Q_OS_WIN // QTBUG-42346, WebDAV is visible as local file on Windows only. if (scheme == webDavScheme()) tmp += webDavSslTag(); @@ -2042,14 +2048,15 @@ void QUrl::setAuthority(const QString &authority, ParsingMode mode) */ QString QUrl::authority(ComponentFormattingOptions options) const { - if (!d) return QString(); + QString result; + if (!d) + return result; if (options == QUrl::FullyDecoded) { qWarning("QUrl::authority(): QUrl::FullyDecoded is not permitted in this function"); - return QString(); + return result; } - QString result; d->appendAuthority(result, options, QUrlPrivate::Authority); return result; } @@ -2115,14 +2122,15 @@ void QUrl::setUserInfo(const QString &userInfo, ParsingMode mode) */ QString QUrl::userInfo(ComponentFormattingOptions options) const { - if (!d) return QString(); + QString result; + if (!d) + return result; if (options == QUrl::FullyDecoded) { qWarning("QUrl::userInfo(): QUrl::FullyDecoded is not permitted in this function"); - return QString(); + return result; } - QString result; d->appendUserInfo(result, options, QUrlPrivate::UserInfo); return result; } @@ -2184,10 +2192,9 @@ void QUrl::setUserName(const QString &userName, ParsingMode mode) */ QString QUrl::userName(ComponentFormattingOptions options) const { - if (!d) return QString(); - QString result; - d->appendUserName(result, options); + if (d) + d->appendUserName(result, options); return result; } @@ -2277,10 +2284,9 @@ void QUrl::setPassword(const QString &password, ParsingMode mode) */ QString QUrl::password(ComponentFormattingOptions options) const { - if (!d) return QString(); - QString result; - d->appendPassword(result, options); + if (d) + d->appendPassword(result, options); return result; } @@ -2385,12 +2391,12 @@ void QUrl::setHost(const QString &host, ParsingMode mode) */ QString QUrl::host(ComponentFormattingOptions options) const { - if (!d) return QString(); - QString result; - d->appendHost(result, options); - if (result.startsWith(QLatin1Char('['))) - return result.mid(1, result.length() - 2); + if (d) { + d->appendHost(result, options); + if (result.startsWith(QLatin1Char('['))) + result = result.mid(1, result.length() - 2); + } return result; } @@ -2530,10 +2536,9 @@ void QUrl::setPath(const QString &path, ParsingMode mode) */ QString QUrl::path(ComponentFormattingOptions options) const { - if (!d) return QString(); - QString result; - d->appendPath(result, options, QUrlPrivate::Path); + if (d) + d->appendPath(result, options, QUrlPrivate::Path); return result; } @@ -2973,12 +2978,12 @@ void QUrl::setQuery(const QUrlQuery &query) */ QString QUrl::query(ComponentFormattingOptions options) const { - if (!d) return QString(); - QString result; - d->appendQuery(result, options, QUrlPrivate::Query); - if (d->hasQuery() && result.isNull()) - result.detach(); + if (d) { + d->appendQuery(result, options, QUrlPrivate::Query); + if (d->hasQuery() && result.isNull()) + result.detach(); + } return result; } @@ -3046,12 +3051,12 @@ void QUrl::setFragment(const QString &fragment, ParsingMode mode) */ QString QUrl::fragment(ComponentFormattingOptions options) const { - if (!d) return QString(); - QString result; - d->appendFragment(result, options, QUrlPrivate::Fragment); - if (d->hasFragment() && result.isNull()) - result.detach(); + if (d) { + d->appendFragment(result, options, QUrlPrivate::Fragment); + if (d->hasFragment() && result.isNull()) + result.detach(); + } return result; } @@ -3268,9 +3273,10 @@ QString QUrl::url(FormattingOptions options) const */ QString QUrl::toString(FormattingOptions options) const { + QString url; if (!isValid()) { // also catches isEmpty() - return QString(); + return url; } if (options == QUrl::FullyDecoded) { qWarning("QUrl: QUrl::FullyDecoded is not permitted when reconstructing the full URL"); @@ -3287,11 +3293,10 @@ QString QUrl::toString(FormattingOptions options) const && (!d->hasQuery() || options.testFlag(QUrl::RemoveQuery)) && (!d->hasFragment() || options.testFlag(QUrl::RemoveFragment)) && isLocalFile()) { - return d->toLocalFile(options); + url = d->toLocalFile(options); + return url; } - QString url; - // for the full URL, we consider that the reserved characters are prettier if encoded if (options & DecodeReserved) options &= ~EncodeReserved; @@ -4032,16 +4037,17 @@ static inline void appendComponentIfPresent(QString &msg, bool present, const ch */ QString QUrl::errorString() const { + QString msg; if (!d) - return QString(); + return msg; QString errorSource; int errorPosition = 0; QUrlPrivate::ErrorCode errorCode = d->validityError(&errorSource, &errorPosition); if (errorCode == QUrlPrivate::NoError) - return QString(); + return msg; - QString msg = errorMessage(errorCode, errorSource, errorPosition); + msg += errorMessage(errorCode, errorSource, errorPosition); msg += QLatin1String("; source was \""); msg += errorSource; msg += QLatin1String("\";"); @@ -4073,7 +4079,7 @@ QStringList QUrl::toStringList(const QList<QUrl> &urls, FormattingOptions option { QStringList lst; lst.reserve(urls.size()); - foreach (const QUrl &url, urls) + for (const QUrl &url : urls) lst.append(url.toString(options)); return lst; @@ -4089,9 +4095,8 @@ QList<QUrl> QUrl::fromStringList(const QStringList &urls, ParsingMode mode) { QList<QUrl> lst; lst.reserve(urls.size()); - foreach (const QString &str, urls) { + for (const QString &str : urls) lst.append(QUrl(str, mode)); - } return lst; } @@ -4268,7 +4273,7 @@ QUrl QUrl::fromUserInput(const QString &userInput) return QUrl::fromLocalFile(trimmedString); QUrl url = QUrl(trimmedString, QUrl::TolerantMode); - QUrl urlPrepended = QUrl(QStringLiteral("http://") + trimmedString, QUrl::TolerantMode); + QUrl urlPrepended = QUrl(QLatin1String("http://") + trimmedString, QUrl::TolerantMode); // Check the most common case of a valid url with a scheme // We check if the port would be valid by adding the scheme to handle the case host:port |