summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-02-10 17:58:18 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-13 14:28:04 +0100
commit9cf0007b6ff49305550754babaeb67eb85c8d5ef (patch)
tree9120ed29dc1a5a80411564d1a3c82afb48d0a669 /src/core
parent9df1c50119847d960e07ecb98597435c91ac5e30 (diff)
Implement QWebEnginePage::selectedText
Change-Id: Idebde8da0befbea7ccc5942de1e09fcc61ce16d4 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/core')
-rw-r--r--src/core/render_widget_host_view_qt.cpp6
-rw-r--r--src/core/render_widget_host_view_qt.h3
-rw-r--r--src/core/web_contents_adapter.cpp6
-rw-r--r--src/core/web_contents_adapter.h1
-rw-r--r--src/core/web_contents_adapter_client.h1
5 files changed, 17 insertions, 0 deletions
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index 39c95098e..4233e91bd 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -624,6 +624,12 @@ void RenderWidgetHostViewQt::OnAccessibilityEvents(const std::vector<Accessibili
QT_NOT_USED
}
+void RenderWidgetHostViewQt::SelectionChanged(const string16 &text, size_t offset, const gfx::Range &range)
+{
+ content::RenderWidgetHostViewBase::SelectionChanged(text, offset, range);
+ m_adapterClient->selectionChanged();
+}
+
bool RenderWidgetHostViewQt::DispatchLongPressGestureEvent(ui::GestureEvent *)
{
return false;
diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h
index 5591be190..6d4e1ba80 100644
--- a/src/core/render_widget_host_view_qt.h
+++ b/src/core/render_widget_host_view_qt.h
@@ -161,6 +161,9 @@ public:
virtual void OnAccessibilityEvents(const std::vector<AccessibilityHostMsg_EventParams>&) Q_DECL_OVERRIDE;
virtual void ProcessAckedTouchEvent(const content::TouchEventWithLatencyInfo &touch, content::InputEventAckState ack_result) Q_DECL_OVERRIDE;
+ // Overridden from RenderWidgetHostViewBase.
+ virtual void SelectionChanged(const string16 &text, size_t offset, const gfx::Range &range) OVERRIDE;
+
// Overridden from ui::GestureEventHelper.
virtual bool DispatchLongPressGestureEvent(ui::GestureEvent *event) Q_DECL_OVERRIDE;
virtual bool DispatchCancelTouchEvent(ui::TouchEvent *event) Q_DECL_OVERRIDE;
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index ea360dc99..82d6ed26f 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -319,6 +319,12 @@ QString WebContentsAdapter::pageTitle() const
return entry ? toQt(entry->GetTitle()) : QString();
}
+QString WebContentsAdapter::selectedText() const
+{
+ Q_D(const WebContentsAdapter);
+ return toQt(d->webContents->GetRenderViewHost()->GetView()->GetSelectedText());
+}
+
void WebContentsAdapter::navigateToIndex(int offset)
{
Q_D(WebContentsAdapter);
diff --git a/src/core/web_contents_adapter.h b/src/core/web_contents_adapter.h
index 93027c19c..56e39ba32 100644
--- a/src/core/web_contents_adapter.h
+++ b/src/core/web_contents_adapter.h
@@ -71,6 +71,7 @@ public:
QUrl activeUrl() const;
QUrl requestedUrl() const;
QString pageTitle() const;
+ QString selectedText() const;
void navigateToIndex(int);
void navigateToOffset(int);
diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h
index ba6a45355..778446a12 100644
--- a/src/core/web_contents_adapter_client.h
+++ b/src/core/web_contents_adapter_client.h
@@ -121,6 +121,7 @@ public:
virtual void iconChanged(const QUrl&) = 0;
virtual void loadingStateChanged() = 0;
virtual void loadProgressChanged(int progress) = 0;
+ virtual void selectionChanged() = 0;
virtual QRectF viewportRect() const = 0;
virtual qreal dpiScale() const = 0;
virtual void loadFinished(bool success, int error_code = 0, const QString &error_description = QString()) = 0;