From 317270cdda436ca0ef7d28ce53de7b09deb9858f Mon Sep 17 00:00:00 2001 From: Viktor Engelmann Date: Fri, 17 Mar 2017 11:23:49 +0100 Subject: Add several QtWebKit WebActions Add WebActions ToggleBold, ToggleItalic, ToggleUnderline, ToggleStrikethrough, AlignLeft, AlignCenter, AlignRight, AlignJustified, Indent, Outdent, InsertOrderedList and InsertUnorderedList. All use the javascript document.execCommand with parameters according to https://developer.mozilla.org/de/docs/Web/API/Document/execCommand Task-number: QTBUG-59221 Change-Id: Ife18d660fefa2073351c5ad959611ec47b680dc6 Reviewed-by: Allan Sandfeld Jensen Reviewed-by: Leena Miettinen --- src/webenginewidgets/api/qwebenginepage.cpp | 73 +++++++++++++++++++++++++++++ src/webenginewidgets/api/qwebenginepage.h | 16 +++++++ 2 files changed, 89 insertions(+) (limited to 'src/webenginewidgets/api') diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 8908af3c4..691a3f238 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -60,6 +60,7 @@ #include "render_widget_host_view_qt_delegate_widget.h" #include "web_contents_adapter.h" #include "web_engine_settings.h" +#include "qwebenginescript.h" #ifdef QT_UI_DELEGATES #include "ui/messagebubblewidget_p.h" @@ -1132,6 +1133,42 @@ QAction *QWebEnginePage::action(WebAction action) const case ViewSource: text = tr("&View Page Source"); break; + case ToggleBold: + text = tr("&Bold"); + break; + case ToggleItalic: + text = tr("&Italic"); + break; + case ToggleUnderline: + text = tr("&Underline"); + break; + case ToggleStrikethrough: + text = tr("&Strikethrough"); + break; + case AlignLeft: + text = tr("Align &Left"); + break; + case AlignCenter: + text = tr("Align &Center"); + break; + case AlignRight: + text = tr("Align &Right"); + break; + case AlignJustified: + text = tr("Align &Justified"); + break; + case Indent: + text = tr("&Indent"); + break; + case Outdent: + text = tr("&Outdent"); + break; + case InsertOrderedList: + text = tr("Insert &Ordered List"); + break; + case InsertUnorderedList: + text = tr("Insert &Unordered List"); + break; case NoWebAction: case WebActionCount: Q_UNREACHABLE(); @@ -1333,6 +1370,42 @@ void QWebEnginePage::triggerAction(WebAction action, bool) // the viewSource() call after the QMenu's destruction. QTimer::singleShot(0, this, [d](){ d->adapter->viewSource(); }); break; + case ToggleBold: + runJavaScript("document.execCommand('bold');", QWebEngineScript::ApplicationWorld); + break; + case ToggleItalic: + runJavaScript("document.execCommand('italic');", QWebEngineScript::ApplicationWorld); + break; + case ToggleUnderline: + runJavaScript("document.execCommand('underline');", QWebEngineScript::ApplicationWorld); + break; + case ToggleStrikethrough: + runJavaScript("document.execCommand('strikethrough');", QWebEngineScript::ApplicationWorld); + break; + case AlignLeft: + runJavaScript("document.execCommand('justifyLeft');", QWebEngineScript::ApplicationWorld); + break; + case AlignCenter: + runJavaScript("document.execCommand('justifyCenter');", QWebEngineScript::ApplicationWorld); + break; + case AlignRight: + runJavaScript("document.execCommand('justifyRight');", QWebEngineScript::ApplicationWorld); + break; + case AlignJustified: + runJavaScript("document.execCommand('justifyFull');", QWebEngineScript::ApplicationWorld); + break; + case Indent: + runJavaScript("document.execCommand('indent');", QWebEngineScript::ApplicationWorld); + break; + case Outdent: + runJavaScript("document.execCommand('outdent');", QWebEngineScript::ApplicationWorld); + break; + case InsertOrderedList: + runJavaScript("document.execCommand('insertOrderedList');", QWebEngineScript::ApplicationWorld); + break; + case InsertUnorderedList: + runJavaScript("document.execCommand('insertUnorderedList');", QWebEngineScript::ApplicationWorld); + break; case NoWebAction: break; case WebActionCount: diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index c7d5a19e3..37a59e88c 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -132,6 +132,22 @@ public: SavePage, OpenLinkInNewBackgroundTab, ViewSource, + + ToggleBold, + ToggleItalic, + ToggleUnderline, + ToggleStrikethrough, + + AlignLeft, + AlignCenter, + AlignRight, + AlignJustified, + Indent, + Outdent, + + InsertOrderedList, + InsertUnorderedList, + WebActionCount }; Q_ENUM(WebAction) -- cgit v1.2.3