summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets/api
diff options
context:
space:
mode:
authorViktor Engelmann <Viktor.Engelmann@qt.io>2017-03-17 11:23:49 +0100
committerViktor Engelmann <viktor.engelmann@qt.io>2017-04-03 13:53:08 +0000
commit317270cdda436ca0ef7d28ce53de7b09deb9858f (patch)
tree0ba60c53fc452bd521d3cc1196be0dc275a525d2 /src/webenginewidgets/api
parent534c6dd960dc627040aba0cf2039e70ac92fa73a (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.cpp73
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h16
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)