diff options
author | Viktor Engelmann <Viktor.Engelmann@qt.io> | 2017-03-17 11:23:49 +0100 |
---|---|---|
committer | Viktor Engelmann <viktor.engelmann@qt.io> | 2017-04-03 13:53:08 +0000 |
commit | 317270cdda436ca0ef7d28ce53de7b09deb9858f (patch) | |
tree | 0ba60c53fc452bd521d3cc1196be0dc275a525d2 /src/webenginewidgets/api | |
parent | 534c6dd960dc627040aba0cf2039e70ac92fa73a (diff) |
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 <allan.jensen@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Diffstat (limited to 'src/webenginewidgets/api')
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 73 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.h | 16 |
2 files changed, 89 insertions, 0 deletions
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) |