summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-03-08 13:17:40 +0100
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-03-30 21:01:17 +0000
commit80ec51d5273e060551a9aa2d4878fee7c0cc1de2 (patch)
tree6ace5a42a4ff4aada5fbae0fd44511d9af5fd9cc /src
parent6454b6b2d0f2fbb8d140fa2555af7867964748ce (diff)
Make ReplaceMisspelledWord web-actions more generic
Instead of using four numbered web-actions, use a generic method that can be called using the context data. Change-Id: If31c6f572c54d7ecfc7962edea2e27c555e6d79f Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp30
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h8
-rw-r--r--src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc4
3 files changed, 25 insertions, 17 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index cb0359195..184b17095 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -1068,18 +1068,28 @@ void QWebEnginePage::triggerAction(WebAction action, bool)
case ToggleSpellcheck:
d->adapter->toogleSpellCheckEnabled();
break;
- case ReplaceMisspelledWord_1:
- case ReplaceMisspelledWord_2:
- case ReplaceMisspelledWord_3:
- case ReplaceMisspelledWord_4:
- d->adapter->replaceMisspelling(d->actions[action]->text());
- break;
#endif
default:
Q_UNREACHABLE();
}
}
+/*!
+ * \since 5.7
+ * Replace the current misspelled word with \a replacement.
+ *
+ * The current misspelled word can be found in QWebEngineContextMenuData::misspelledWord(),
+ * and suggested replacements in QWebEngineContextMenuData::spellCheckerSuggestions().
+ *
+ * \sa contextMenuData(),
+ */
+
+void QWebEnginePage::replaceMisspelledWord(const QString &replacement)
+{
+ Q_D(QWebEnginePage);
+ d->adapter->replaceMisspelling(replacement);
+}
+
void QWebEnginePage::findText(const QString &subString, FindFlags options, const QWebEngineCallback<bool> &resultCallback)
{
Q_D(QWebEnginePage);
@@ -1263,10 +1273,12 @@ QMenu *QWebEnginePage::createStandardContextMenu()
#if !defined(QT_NO_SPELLCHECK)
if (contextMenuData.isEditable && !contextMenuData.spellCheckerSuggestions.isEmpty()) {
+ QPointer<QWebEnginePage> thisRef(this);
for (int i=0; i < contextMenuData.spellCheckerSuggestions.count() && i < 4; i++) {
- int index = ReplaceMisspelledWord_1 + i;
- QAction *action(QWebEnginePage::action(static_cast<QWebEnginePage::WebAction>(index)));
- action->setText(contextMenuData.spellCheckerSuggestions.at(i));
+ QAction *action = new QAction(menu);
+ QString replacement = contextMenuData.spellCheckerSuggestions.at(i);
+ QObject::connect(action, &QAction::triggered, [thisRef, replacement] { if (thisRef) thisRef->replaceMisspelledWord(replacement); });
+ action->setText(replacement);
menu->addAction(action);
}
menu->addSeparator();
diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h
index 6ca79e946..12e7532cc 100644
--- a/src/webenginewidgets/api/qwebenginepage.h
+++ b/src/webenginewidgets/api/qwebenginepage.h
@@ -123,10 +123,6 @@ public:
SavePage,
#if !defined(QT_NO_SPELLCHECK)
ToggleSpellcheck,
- ReplaceMisspelledWord_1,
- ReplaceMisspelledWord_2,
- ReplaceMisspelledWord_3,
- ReplaceMisspelledWord_4,
#endif
WebActionCount
};
@@ -211,6 +207,10 @@ public:
#endif
virtual void triggerAction(WebAction action, bool checked = false);
+#if !defined(QT_NO_SPELLCHECK)
+ void replaceMisspelledWord(const QString &replacement);
+#endif
+
virtual bool event(QEvent*);
#ifdef Q_QDOC
void findText(const QString &subString, FindFlags options = 0);
diff --git a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
index d6b89cb57..2171d680a 100644
--- a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
+++ b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
@@ -151,10 +151,6 @@
\value SavePage Save the current page to disk. MHTML is the default format that is used to store
the web page on disk. (Added in Qt 5.7)
\value ToggleSpellcheck Enable or disable the spell checker. (Added in Qt 5.7)
- \value ReplaceMisspelledWord_1 Replace a misspelled word. (Added in Qt 5.7)
- \value ReplaceMisspelledWord_2 Replace a misspelled word. (Added in Qt 5.7)
- \value ReplaceMisspelledWord_3 Replace a misspelled word. (Added in Qt 5.7)
- \value ReplaceMisspelledWord_4 Replace a misspelled word. (Added in Qt 5.7)
\omitvalue WebActionCount