From e664f3e31df5503dd37b7b83b2c0f2b296b8eed3 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Tue, 16 Apr 2019 14:14:29 +0200 Subject: Cleanup clipboard source files Split Qt and Chromium based headers and do a simple reformatting. Change-Id: I5bce34051bd05696d38c26ba09abd8a472f94219 Reviewed-by: Kai Koehne --- src/core/clipboard_change_observer.h | 64 ++++++++++++++++++++++++++ src/core/clipboard_qt.cpp | 88 +++++++++++++++++++++--------------- src/core/clipboard_qt.h | 59 ++++++++---------------- src/core/core_chromium.pri | 1 + 4 files changed, 135 insertions(+), 77 deletions(-) create mode 100644 src/core/clipboard_change_observer.h diff --git a/src/core/clipboard_change_observer.h b/src/core/clipboard_change_observer.h new file mode 100644 index 000000000..f9b33fc93 --- /dev/null +++ b/src/core/clipboard_change_observer.h @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2019 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$ +** +****************************************************************************/ + +#ifndef CLIPBOARD_CHANGE_OBSERVER_H +#define CLIPBOARD_CHANGE_OBSERVER_H + +#include +#include +#include + +namespace QtWebEngineCore { + +class ClipboardChangeObserver : public QObject { + Q_OBJECT +public: + ClipboardChangeObserver(); + quint64 getSequenceNumber(QClipboard::Mode mode) { return sequenceNumber.value(mode); } + +private Q_SLOTS: + void trackChange(QClipboard::Mode mode); + +private: + QMap sequenceNumber; +}; + +} // namespace QtWebEngineCore + +#endif // CLIPBOARD_CHANGE_OBSERVER_H diff --git a/src/core/clipboard_qt.cpp b/src/core/clipboard_qt.cpp index d7fa225cd..f4a14570a 100644 --- a/src/core/clipboard_qt.cpp +++ b/src/core/clipboard_qt.cpp @@ -42,15 +42,15 @@ // found in the LICENSE.Chromium file. #include "clipboard_qt.h" -#include "ui/base/clipboard/clipboard.h" -#include "ui/base/clipboard/clipboard_constants.h" -#include "ui/base/clipboard/clipboard_format_type.h" - +#include "clipboard_change_observer.h" #include "type_conversion.h" #include "base/logging.h" #include "third_party/skia/include/core/SkBitmap.h" #include "ui/base/clipboard/custom_data_helper.h" +#include "ui/base/clipboard/clipboard.h" +#include "ui/base/clipboard/clipboard_constants.h" +#include "ui/base/clipboard/clipboard_format_type.h" #include #include @@ -91,12 +91,13 @@ QMimeData *getUncommittedData() return uncommittedData.data(); } -} // namespace +} // namespace namespace ui { // Factory function -Clipboard* Clipboard::Create() { +Clipboard *Clipboard::Create() +{ return new ClipboardQt; } @@ -104,7 +105,7 @@ Clipboard* Clipboard::Create() { namespace QtWebEngineCore { -void ClipboardQt::WriteObjects(ui::ClipboardType type, const ObjectMap& objects) +void ClipboardQt::WriteObjects(ui::ClipboardType type, const ObjectMap &objects) { DCHECK(CalledOnValidThread()); DCHECK(IsSupportedClipboardType(type)); @@ -114,7 +115,9 @@ void ClipboardQt::WriteObjects(ui::ClipboardType type, const ObjectMap& objects) // Commit the accumulated data. if (uncommittedData) - QGuiApplication::clipboard()->setMimeData(uncommittedData.take(), type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); + QGuiApplication::clipboard()->setMimeData(uncommittedData.take(), + type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard + : QClipboard::Selection); if (type == ui::CLIPBOARD_TYPE_COPY_PASTE && IsSupportedClipboardType(ui::CLIPBOARD_TYPE_SELECTION)) { ObjectMap::const_iterator text_iter = objects.find(CBF_TEXT); @@ -126,17 +129,17 @@ void ClipboardQt::WriteObjects(ui::ClipboardType type, const ObjectMap& objects) } } -void ClipboardQt::WriteText(const char* text_data, size_t text_len) +void ClipboardQt::WriteText(const char *text_data, size_t text_len) { getUncommittedData()->setText(QString::fromUtf8(text_data, text_len)); } -void ClipboardQt::WriteHTML(const char* markup_data, size_t markup_len, const char* url_data, size_t url_len) +void ClipboardQt::WriteHTML(const char *markup_data, size_t markup_len, const char *url_data, size_t url_len) { getUncommittedData()->setHtml(QString::fromUtf8(markup_data, markup_len)); } -void ClipboardQt::WriteRTF(const char* rtf_data, size_t data_len) +void ClipboardQt::WriteRTF(const char *rtf_data, size_t data_len) { getUncommittedData()->setData(QString::fromLatin1(ui::kMimeTypeRTF), QByteArray(rtf_data, data_len)); } @@ -146,12 +149,12 @@ void ClipboardQt::WriteWebSmartPaste() getUncommittedData()->setData(QString::fromLatin1(ui::kMimeTypeWebkitSmartPaste), QByteArray()); } -void ClipboardQt::WriteBitmap(const SkBitmap& bitmap) +void ClipboardQt::WriteBitmap(const SkBitmap &bitmap) { getUncommittedData()->setImageData(toQImage(bitmap).copy()); } -void ClipboardQt::WriteBookmark(const char* title_data, size_t title_len, const char* url_data, size_t url_len) +void ClipboardQt::WriteBookmark(const char *title_data, size_t title_len, const char *url_data, size_t url_len) { // FIXME: Untested, seems to be used only for drag-n-drop. // Write as a mozilla url (UTF16: URL, newline, title). @@ -159,29 +162,32 @@ void ClipboardQt::WriteBookmark(const char* title_data, size_t title_len, const QString title = QString::fromUtf8(title_data, title_len); QByteArray data; - data.append(reinterpret_cast(url.utf16()), url.size() * 2); + data.append(reinterpret_cast(url.utf16()), url.size() * 2); data.append('\n'); - data.append(reinterpret_cast(title.utf16()), title.size() * 2); + data.append(reinterpret_cast(title.utf16()), title.size() * 2); getUncommittedData()->setData(QString::fromLatin1(ui::kMimeTypeMozillaURL), data); } -void ClipboardQt::WriteData(const ui::ClipboardFormatType& format, const char* data_data, size_t data_len) +void ClipboardQt::WriteData(const ui::ClipboardFormatType &format, const char *data_data, size_t data_len) { getUncommittedData()->setData(QString::fromStdString(format.ToString()), QByteArray(data_data, data_len)); } -bool ClipboardQt::IsFormatAvailable(const ui::ClipboardFormatType& format, ui::ClipboardType type) const +bool ClipboardQt::IsFormatAvailable(const ui::ClipboardFormatType &format, ui::ClipboardType type) const { - const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); + const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData( + type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); return mimeData && mimeData->hasFormat(QString::fromStdString(format.ToString())); } void ClipboardQt::Clear(ui::ClipboardType type) { - QGuiApplication::clipboard()->clear(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); + QGuiApplication::clipboard()->clear(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard + : QClipboard::Selection); } -void ClipboardQt::ReadAvailableTypes(ui::ClipboardType type, std::vector* types, bool* contains_filenames) const +void ClipboardQt::ReadAvailableTypes(ui::ClipboardType type, std::vector *types, + bool *contains_filenames) const { if (!types || !contains_filenames) { NOTREACHED(); @@ -189,7 +195,8 @@ void ClipboardQt::ReadAvailableTypes(ui::ClipboardType type, std::vectorclear(); - const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); + const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData( + type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); if (!mimeData) return; if (mimeData->hasImage() && !mimeData->formats().contains(QStringLiteral("image/png"))) @@ -203,22 +210,24 @@ void ClipboardQt::ReadAvailableTypes(ui::ClipboardType type, std::vectormimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); + const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData( + type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); if (mimeData) *result = toString16(mimeData->text()); } -void ClipboardQt::ReadAsciiText(ui::ClipboardType type, std::string* result) const +void ClipboardQt::ReadAsciiText(ui::ClipboardType type, std::string *result) const { - const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); + const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData( + type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); if (mimeData) *result = mimeData->text().toStdString(); } -void ClipboardQt::ReadHTML(ui::ClipboardType type, base::string16* markup, std::string* src_url, uint32_t* fragment_start, uint32_t* fragment_end) const +void ClipboardQt::ReadHTML(ui::ClipboardType type, base::string16 *markup, std::string *src_url, + uint32_t *fragment_start, uint32_t *fragment_end) const { markup->clear(); if (src_url) @@ -226,16 +235,18 @@ void ClipboardQt::ReadHTML(ui::ClipboardType type, base::string16* markup, std:: *fragment_start = 0; *fragment_end = 0; - const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); + const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData( + type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); if (!mimeData) return; *markup = toString16(mimeData->html()); *fragment_end = static_cast(markup->length()); } -void ClipboardQt::ReadRTF(ui::ClipboardType type, std::string* result) const +void ClipboardQt::ReadRTF(ui::ClipboardType type, std::string *result) const { - const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); + const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData( + type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); if (!mimeData) return; const QByteArray byteArray = mimeData->data(QString::fromLatin1(ui::kMimeTypeRTF)); @@ -244,7 +255,8 @@ void ClipboardQt::ReadRTF(ui::ClipboardType type, std::string* result) const SkBitmap ClipboardQt::ReadImage(ui::ClipboardType type) const { - const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); + const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData( + type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); if (!mimeData) return SkBitmap(); QImage image = qvariant_cast(mimeData->imageData()); @@ -267,21 +279,22 @@ SkBitmap ClipboardQt::ReadImage(ui::ClipboardType type) const return bitmap; } -void ClipboardQt::ReadCustomData(ui::ClipboardType clipboard_type, const base::string16& type, base::string16* result) const +void ClipboardQt::ReadCustomData(ui::ClipboardType clipboard_type, const base::string16 &type, base::string16 *result) const { - const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(clipboard_type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); + const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData( + clipboard_type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); if (!mimeData) return; const QByteArray customData = mimeData->data(QString::fromLatin1(ui::kMimeTypeWebCustomData)); ui::ReadCustomDataForType(customData.constData(), customData.size(), type, result); } -void ClipboardQt::ReadBookmark(base::string16* title, std::string* url) const +void ClipboardQt::ReadBookmark(base::string16 *title, std::string *url) const { NOTIMPLEMENTED(); } -void ClipboardQt::ReadData(const ui::ClipboardFormatType& format, std::string* result) const +void ClipboardQt::ReadData(const ui::ClipboardFormatType &format, std::string *result) const { const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(); if (!mimeData) @@ -292,7 +305,8 @@ void ClipboardQt::ReadData(const ui::ClipboardFormatType& format, std::string* r uint64_t ClipboardQt::GetSequenceNumber(ui::ClipboardType type) const { - return clipboardChangeObserver()->getSequenceNumber(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); + return clipboardChangeObserver()->getSequenceNumber(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard + : QClipboard::Selection); } -} // namespace QtWebEngineCore +} // namespace QtWebEngineCore diff --git a/src/core/clipboard_qt.h b/src/core/clipboard_qt.h index d5fa35af6..7884da167 100644 --- a/src/core/clipboard_qt.h +++ b/src/core/clipboard_qt.h @@ -42,57 +42,36 @@ #include "ui/base/clipboard/clipboard.h" -#include -#include -#include - namespace QtWebEngineCore { -class ClipboardChangeObserver : public QObject { - Q_OBJECT -public: - ClipboardChangeObserver(); - quint64 getSequenceNumber(QClipboard::Mode mode) { - return sequenceNumber.value(mode); - } - -private Q_SLOTS: - void trackChange(QClipboard::Mode mode); - -private: - QMap sequenceNumber; -}; - class ClipboardQt : public ui::Clipboard { public: uint64_t GetSequenceNumber(ui::ClipboardType type) const override; - bool IsFormatAvailable(const ui::ClipboardFormatType& format, ui::ClipboardType type) const override; + bool IsFormatAvailable(const ui::ClipboardFormatType &format, ui::ClipboardType type) const override; void Clear(ui::ClipboardType type) override; - void ReadAvailableTypes(ui::ClipboardType type, std::vector* types, bool* contains_filenames) const override; - void ReadText(ui::ClipboardType type, base::string16* result) const override; - void ReadAsciiText(ui::ClipboardType type, std::string* result) const override; - void ReadHTML(ui::ClipboardType type, - base::string16* markup, - std::string* src_url, - uint32_t* fragment_start, - uint32_t* fragment_end) const override; - void ReadRTF(ui::ClipboardType type, std::string* result) const override; + void ReadAvailableTypes(ui::ClipboardType type, std::vector *types, + bool *contains_filenames) const override; + void ReadText(ui::ClipboardType type, base::string16 *result) const override; + void ReadAsciiText(ui::ClipboardType type, std::string *result) const override; + void ReadHTML(ui::ClipboardType type, base::string16 *markup, std::string *src_url, uint32_t *fragment_start, + uint32_t *fragment_end) const override; + void ReadRTF(ui::ClipboardType type, std::string *result) const override; SkBitmap ReadImage(ui::ClipboardType type) const override; - void ReadCustomData(ui::ClipboardType clipboard_type, const base::string16& type, base::string16* result) const override; - void ReadBookmark(base::string16* title, std::string* url) const override; - void ReadData(const ui::ClipboardFormatType& format, std::string* result) const override; + void ReadCustomData(ui::ClipboardType clipboard_type, const base::string16 &type, base::string16 *result) const override; + void ReadBookmark(base::string16 *title, std::string *url) const override; + void ReadData(const ui::ClipboardFormatType &format, std::string *result) const override; - void OnPreShutdown() override { } + void OnPreShutdown() override {} protected: - void WriteObjects(ui::ClipboardType type, const ObjectMap& objects) override; - void WriteText(const char* text_data, size_t text_len) override; - void WriteHTML(const char* markup_data, size_t markup_len, const char* url_data, size_t url_len) override; - void WriteRTF(const char* rtf_data, size_t data_len) override; - void WriteBookmark(const char* title_data, size_t title_len, const char* url_data, size_t url_len) override; + void WriteObjects(ui::ClipboardType type, const ObjectMap &objects) override; + void WriteText(const char *text_data, size_t text_len) override; + void WriteHTML(const char *markup_data, size_t markup_len, const char *url_data, size_t url_len) override; + void WriteRTF(const char *rtf_data, size_t data_len) override; + void WriteBookmark(const char *title_data, size_t title_len, const char *url_data, size_t url_len) override; void WriteWebSmartPaste() override; - void WriteBitmap(const SkBitmap& bitmap) override; - void WriteData(const ui::ClipboardFormatType& format, const char* data_data, size_t data_len) override; + void WriteBitmap(const SkBitmap &bitmap) override; + void WriteData(const ui::ClipboardFormatType &format, const char *data_data, size_t data_len) override; }; } // namespace QtWebEngineCore diff --git a/src/core/core_chromium.pri b/src/core/core_chromium.pri index 3f4266c8c..4d8db0d1e 100644 --- a/src/core/core_chromium.pri +++ b/src/core/core_chromium.pri @@ -154,6 +154,7 @@ HEADERS = \ certificate_error_controller_p.h \ certificate_error_controller.h \ client_cert_select_controller.h \ + clipboard_change_observer.h \ clipboard_qt.h \ command_line_pref_store_qt.h \ color_chooser_qt.h \ -- cgit v1.2.3