From fd61d752e313bf91a09c85020b3fb50067c610c8 Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Tue, 19 Nov 2013 17:55:49 +0100 Subject: Moving sources to src part 1: Move files. This only move files without adjusting any paths. This moves: - lib/quick -> src/webengine/api (API files) lib/quick -> src/webengine (other files) This contains the main QtWebEngine module library since . - lib/widgets -> src/webenginewidgets Also rename this directory to match its module name and rename Api to api. - lib -> src/core - process -> src/process - resources -> src/core/resources - tools/* -> tools/scripts/ The build directory is spread as follow: - build/build.pro -> src/core/gyp_run.pro - build/qmake_extras/* -> src/core/ (for the host and target .pro files) - build/qmake -> tools/qmake - Build related scripts -> tools/buildscripts Change-Id: I0cded1de772c99c0c1da6536c9afea353236b4a1 Reviewed-by: Zeno Albisser Reviewed-by: Pierre Rossi Reviewed-by: Andras Becsi --- .../render_widget_host_view_qt_delegate_quick.h | 239 +++++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 src/webengine/render_widget_host_view_qt_delegate_quick.h (limited to 'src/webengine/render_widget_host_view_qt_delegate_quick.h') diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.h b/src/webengine/render_widget_host_view_qt_delegate_quick.h new file mode 100644 index 000000000..e8e073c24 --- /dev/null +++ b/src/webengine/render_widget_host_view_qt_delegate_quick.h @@ -0,0 +1,239 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/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 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt 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 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef RENDER_WIDGET_HOST_VIEW_QT_DELEGATE_QUICK_H +#define RENDER_WIDGET_HOST_VIEW_QT_DELEGATE_QUICK_H + +#include "render_widget_host_view_qt_delegate.h" + +#include "qquickwebengineview_p.h" +#include "qquickwebengineview_p_p.h" +#include +#include +#include +#include +#include + +template +class RenderWidgetHostViewQtDelegateQuickBase : public ItemBaseT, public RenderWidgetHostViewQtDelegate +{ +public: + RenderWidgetHostViewQtDelegateQuickBase(RenderWidgetHostViewQtDelegateClient *client, QQuickItem *parent = 0) + : ItemBaseT(parent) + , m_client(client) + { + this->setAcceptedMouseButtons(Qt::AllButtons); + this->setAcceptHoverEvents(true); + } + + virtual void initAsChild(WebContentsAdapterClient* container) Q_DECL_OVERRIDE + { + QQuickWebEngineViewPrivate *viewPrivate = static_cast(container); + this->setParentItem(viewPrivate->q_func()); + } + + virtual void initAsPopup(const QRect& rect) Q_DECL_OVERRIDE + { + this->setX(rect.x()); + this->setY(rect.y()); + this->setWidth(rect.width()); + this->setHeight(rect.height()); + this->setVisible(true); + } + + virtual QRectF screenRect() const Q_DECL_OVERRIDE + { + QPointF pos = this->mapToScene(QPointF(0,0)); + return QRectF(pos.x(), pos.y(), this->width(), this->height()); + } + + virtual void setKeyboardFocus() Q_DECL_OVERRIDE + { + this->setFocus(true); + } + + virtual bool hasKeyboardFocus() Q_DECL_OVERRIDE + { + return this->hasFocus(); + } + + virtual void show() Q_DECL_OVERRIDE + { + this->setVisible(true); + } + + virtual void hide() Q_DECL_OVERRIDE + { + this->setVisible(false); + } + + virtual bool isVisible() const Q_DECL_OVERRIDE + { + return ItemBaseT::isVisible(); + } + + virtual QWindow* window() const Q_DECL_OVERRIDE + { + return ItemBaseT::window(); + } + + virtual void updateCursor(const QCursor &cursor) Q_DECL_OVERRIDE + { + this->setCursor(cursor); + } + + virtual void resize(int width, int height) Q_DECL_OVERRIDE + { + this->setSize(QSizeF(width, height)); + } + + void focusInEvent(QFocusEvent *event) + { + m_client->forwardEvent(event); + } + + void focusOutEvent(QFocusEvent *event) + { + m_client->forwardEvent(event); + } + + void mousePressEvent(QMouseEvent *event) + { + this->setFocus(true); + m_client->forwardEvent(event); + } + + void mouseMoveEvent(QMouseEvent *event) + { + m_client->forwardEvent(event); + } + + void mouseReleaseEvent(QMouseEvent *event) + { + m_client->forwardEvent(event); + } + + void mouseDoubleClickEvent(QMouseEvent *event) + { + m_client->forwardEvent(event); + } + + void keyPressEvent(QKeyEvent *event) + { + m_client->forwardEvent(event); + } + + void keyReleaseEvent(QKeyEvent *event) + { + m_client->forwardEvent(event); + } + + void wheelEvent(QWheelEvent *event) + { + m_client->forwardEvent(event); + } + + void touchEvent(QTouchEvent *event) + { + m_client->forwardEvent(event); + } + + void hoverMoveEvent(QHoverEvent *event) + { + m_client->forwardEvent(event); + } + + void inputMethodStateChanged(bool editorVisible) + { + if (qApp->inputMethod()->isVisible() == editorVisible) + return; + + this->setFlag(QQuickItem::ItemAcceptsInputMethod, editorVisible); + qApp->inputMethod()->update(Qt::ImQueryInput | Qt::ImEnabled | Qt::ImHints); + qApp->inputMethod()->setVisible(editorVisible); + } + + QVariant inputMethodQuery(Qt::InputMethodQuery query) const + { + return m_client->inputMethodQuery(query); + } + +protected: + void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) + { + ItemBaseT::geometryChanged(newGeometry, oldGeometry); + m_client->notifyResize(); + } + + RenderWidgetHostViewQtDelegateClient *m_client; +}; + +#if (QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)) +class RenderWidgetHostViewQtDelegateQuick : public RenderWidgetHostViewQtDelegateQuickBase +{ + Q_OBJECT +public: + RenderWidgetHostViewQtDelegateQuick(RenderWidgetHostViewQtDelegateClient *client, QQuickItem *parent = 0); + + virtual WId nativeWindowIdForCompositor() const; + virtual void update(const QRect& rect = QRect()) Q_DECL_OVERRIDE; + + virtual void itemChange(ItemChange change, const ItemChangeData &value) Q_DECL_OVERRIDE; + virtual QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) Q_DECL_OVERRIDE; +}; +#endif // QT_VERSION + +class RenderWidgetHostViewQtDelegateQuickPainted : public RenderWidgetHostViewQtDelegateQuickBase +{ + Q_OBJECT +public: + RenderWidgetHostViewQtDelegateQuickPainted(RenderWidgetHostViewQtDelegateClient *client, QQuickItem *parent = 0); + + virtual WId nativeWindowIdForCompositor() const Q_DECL_OVERRIDE; + virtual void update(const QRect& rect = QRect()) Q_DECL_OVERRIDE; + + void paint(QPainter *painter); + +protected: + void updatePolish(); +}; + +#endif -- cgit v1.2.3