diff options
Diffstat (limited to 'src/core/type_conversion.h')
-rw-r--r-- | src/core/type_conversion.h | 155 |
1 files changed, 57 insertions, 98 deletions
diff --git a/src/core/type_conversion.h b/src/core/type_conversion.h index 565d8330a..0da8a6931 100644 --- a/src/core/type_conversion.h +++ b/src/core/type_conversion.h @@ -1,41 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWebEngine module of the Qt Toolkit. -** -** $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 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 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. -** -** 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$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef TYPE_CONVERSION_H #define TYPE_CONVERSION_H @@ -49,26 +13,23 @@ #include <QRect> #include <QString> #include <QUrl> -#include <base/strings/nullable_string16.h> #include "base/files/file_path.h" #include "base/time/time.h" -#include "content/public/common/file_chooser_file_info.h" -#include "favicon_manager.h" #include "net/cookies/canonical_cookie.h" #include "third_party/blink/public/mojom/favicon/favicon_url.mojom-forward.h" #include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkColor.h" #include "third_party/skia/include/core/SkPixelRef.h" -#include "third_party/skia/include/core/SkMatrix44.h" #include "ui/base/ime/text_input_type.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/rect_f.h" #include "url/gurl.h" +#include "url/origin.h" -QT_FORWARD_DECLARE_CLASS(QMatrix4x4) QT_FORWARD_DECLARE_CLASS(QSslCertificate) namespace gfx { +class Image; class ImageSkiaRep; } @@ -78,13 +39,28 @@ class X509Certificate; namespace QtWebEngineCore { -inline QString toQt(const base::string16 &string) +#if defined(Q_OS_WIN) +inline QString toQt(const std::wstring &string) { -#if defined(OS_WIN) return QString::fromStdWString(string); -#else - return QString::fromUtf16(reinterpret_cast<const char16_t *>(string.data()), string.size()); +} #endif + +inline QString toQt(const std::u16string &string) +{ + return QString::fromStdU16String(string); +} + +inline QString toQt(const absl::optional<std::u16string> &string) +{ + if (!string.has_value()) + return QString(); + return QString::fromStdU16String(*string); +} + +inline QString toQString(const base::StringPiece &string) +{ + return QString::fromUtf8(string.data(), string.size()); } inline QString toQString(const std::string &string) @@ -92,6 +68,11 @@ inline QString toQString(const std::string &string) return QString::fromStdString(string); } +inline QByteArray toQByteArray(const base::StringPiece &string) +{ + return QByteArray(string.data(), string.size()); +} + inline QByteArray toQByteArray(const std::string &string) { return QByteArray::fromStdString(string); @@ -103,18 +84,16 @@ inline QString toQt(const std::string &string) return toQString(string); } -inline base::string16 toString16(const QString &qString) +inline std::u16string toString16(const QString &qString) { -#if defined(OS_WIN) - return base::string16(qString.toStdWString()); -#else - return base::string16(qString.utf16()); -#endif + return qString.toStdU16String(); } -inline base::NullableString16 toNullableString16(const QString &qString) +inline absl::optional<std::u16string> toOptionalString16(const QString &qString) { - return base::NullableString16(toString16(qString), qString.isNull()); + if (qString.isNull()) + return absl::nullopt; + return absl::make_optional(qString.toStdU16String()); } inline QUrl toQt(const GURL &url) @@ -130,11 +109,26 @@ inline GURL toGurl(const QUrl& url) return GURL(url.toEncoded().toStdString()); } +inline QUrl toQt(const url::Origin &origin) +{ + return QUrl::fromEncoded(toQByteArray(origin.Serialize())); +} + +inline url::Origin toOrigin(const QUrl &url) +{ + return url::Origin::Create(toGurl(url)); +} + inline QPoint toQt(const gfx::Point &point) { return QPoint(point.x(), point.y()); } +inline QPointF toQt(const gfx::PointF &point) +{ + return QPointF(point.x(), point.y()); +} + inline QPointF toQt(const gfx::Vector2dF &point) { return QPointF(point.x(), point.y()); @@ -185,6 +179,11 @@ inline QSizeF toQt(const gfx::SizeF &size) return QSizeF(size.width(), size.height()); } +inline QSize toQt(const SkISize &size) +{ + return QSize(size.width(), size.height()); +} + inline QColor toQt(const SkColor &c) { return QColor(SkColorGetR(c), SkColorGetG(c), SkColorGetB(c), SkColorGetA(c)); @@ -205,10 +204,9 @@ QImage toQImage(const SkBitmap &bitmap); QImage toQImage(const gfx::ImageSkiaRep &imageSkiaRep); SkBitmap toSkBitmap(const QImage &image); +QIcon toQIcon(const gfx::Image &image); QIcon toQIcon(const std::vector<SkBitmap> &bitmaps); -void convertToQt(const SkMatrix44 &m, QMatrix4x4 &c); - inline QDateTime toQt(base::Time time) { return QDateTime::fromMSecsSinceEpoch(time.ToJavaTime()); @@ -232,7 +230,7 @@ inline QNetworkCookie toQt(const net::CanonicalCookie & cookie) inline base::FilePath::StringType toFilePathString(const QString &str) { -#if defined(OS_WIN) +#if defined(Q_OS_WIN) return QDir::toNativeSeparators(str).toStdWString(); #else return str.toStdString(); @@ -244,46 +242,9 @@ inline base::FilePath toFilePath(const QString &str) return base::FilePath(toFilePathString(str)); } -template <typename T> -inline T fileListingHelper(const QString &) -// Clang is still picky about this though it should be supported eventually. -// See http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#941 -#ifndef Q_CC_CLANG -= delete; -#else -{ return T(); } -#endif - -template <> -inline content::FileChooserFileInfo fileListingHelper<content::FileChooserFileInfo>(const QString &file) -{ - content::FileChooserFileInfo choose_file; - base::FilePath fp(toFilePath(file)); - choose_file.file_path = fp; - choose_file.display_name = fp.BaseName().value(); - return choose_file; -} - -template <> -inline base::FilePath fileListingHelper<base::FilePath>(const QString &file) -{ - return base::FilePath(toFilePathString(file)); -} - - -template <typename T> -inline std::vector<T> toVector(const QStringList &fileList) -{ - std::vector<T> selectedFiles; - selectedFiles.reserve(fileList.size()); - for (const QString &file : fileList) - selectedFiles.push_back(fileListingHelper<T>(file)); - return selectedFiles; -} - int flagsFromModifiers(Qt::KeyboardModifiers modifiers); -inline QStringList fromVector(const std::vector<base::string16> &vector) +inline QStringList fromVector(const std::vector<std::u16string> &vector) { QStringList result; for (auto s: vector) { @@ -292,8 +253,6 @@ inline QStringList fromVector(const std::vector<base::string16> &vector) return result; } -FaviconInfo toFaviconInfo(const blink::mojom::FaviconURLPtr &favicon_url); - QList<QSslCertificate> toCertificateChain(net::X509Certificate *certificate); Qt::InputMethodHints toQtInputMethodHints(ui::TextInputType inputType); |