summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorJüri Valdmann <juri.valdmann@qt.io>2017-04-21 17:39:11 +0200
committerJüri Valdmann <juri.valdmann@qt.io>2017-06-13 09:35:44 +0000
commit324ab7bd0cecd462bd19523bc07b6a73b749e014 (patch)
tree9ba40ca90cd0d829c8fd2c4685eb131288f9f0e5 /examples
parentf03585b7583bd2e7328d462a63ee6ee8938b200c (diff)
Add Search in page to Simple Browser
Task-number: QTBUG-59824 Change-Id: Id72428996721bd60596becc5b13b29a132f70e69 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit af422d3fc6061ef057bb6f8b58b97af62304e836)
Diffstat (limited to 'examples')
-rw-r--r--examples/webenginewidgets/simplebrowser/browserwindow.cpp46
-rw-r--r--examples/webenginewidgets/simplebrowser/browserwindow.h3
2 files changed, 48 insertions, 1 deletions
diff --git a/examples/webenginewidgets/simplebrowser/browserwindow.cpp b/examples/webenginewidgets/simplebrowser/browserwindow.cpp
index 762d56c85..0b85e2bb0 100644
--- a/examples/webenginewidgets/simplebrowser/browserwindow.cpp
+++ b/examples/webenginewidgets/simplebrowser/browserwindow.cpp
@@ -47,6 +47,7 @@
#include <QCloseEvent>
#include <QDesktopWidget>
#include <QFileDialog>
+#include <QInputDialog>
#include <QMenuBar>
#include <QMessageBox>
#include <QProgressBar>
@@ -71,6 +72,7 @@ BrowserWindow::BrowserWindow(QWidget *parent, Qt::WindowFlags flags)
QToolBar *toolbar = createToolBar();
addToolBar(toolbar);
menuBar()->addMenu(createFileMenu(m_tabWidget));
+ menuBar()->addMenu(createEditMenu());
menuBar()->addMenu(createViewMenu(toolbar));
menuBar()->addMenu(createWindowMenu(m_tabWidget));
menuBar()->addMenu(createHelpMenu());
@@ -163,6 +165,32 @@ QMenu *BrowserWindow::createFileMenu(TabWidget *tabWidget)
return fileMenu;
}
+QMenu *BrowserWindow::createEditMenu()
+{
+ QMenu *editMenu = new QMenu(tr("&Edit"));
+ QAction *findAction = editMenu->addAction(tr("&Find"));
+ findAction->setShortcuts(QKeySequence::Find);
+ connect(findAction, &QAction::triggered, this, &BrowserWindow::handleFindActionTriggered);
+
+ QAction *findNextAction = editMenu->addAction(tr("Find &Next"));
+ findNextAction->setShortcut(QKeySequence::FindNext);
+ connect(findNextAction, &QAction::triggered, [this]() {
+ if (!currentTab() || m_lastSearch.isEmpty())
+ return;
+ currentTab()->findText(m_lastSearch);
+ });
+
+ QAction *findPreviousAction = editMenu->addAction(tr("Find &Previous"));
+ findPreviousAction->setShortcut(QKeySequence::FindPrevious);
+ connect(findPreviousAction, &QAction::triggered, [this]() {
+ if (!currentTab() || m_lastSearch.isEmpty())
+ return;
+ currentTab()->findText(m_lastSearch, QWebEnginePage::FindBackward);
+ });
+
+ return editMenu;
+}
+
QMenu *BrowserWindow::createViewMenu(QToolBar *toolbar)
{
QMenu *viewMenu = new QMenu(tr("&View"));
@@ -389,6 +417,23 @@ void BrowserWindow::handleFileOpenTriggered()
loadPage(file);
}
+void BrowserWindow::handleFindActionTriggered()
+{
+ if (!currentTab())
+ return;
+ bool ok = false;
+ QString search = QInputDialog::getText(this, tr("Find"),
+ tr("Find:"), QLineEdit::Normal,
+ m_lastSearch, &ok);
+ if (ok && !search.isEmpty()) {
+ m_lastSearch = search;
+ currentTab()->findText(m_lastSearch, 0, [this](bool found) {
+ if (!found)
+ statusBar()->showMessage(tr("\"%1\" not found.").arg(m_lastSearch));
+ });
+ }
+}
+
void BrowserWindow::closeEvent(QCloseEvent *event)
{
if (m_tabWidget->count() > 1) {
@@ -405,7 +450,6 @@ void BrowserWindow::closeEvent(QCloseEvent *event)
deleteLater();
}
-
void BrowserWindow::loadHomePage()
{
loadPage(QStringLiteral("http://www.qt.io"));
diff --git a/examples/webenginewidgets/simplebrowser/browserwindow.h b/examples/webenginewidgets/simplebrowser/browserwindow.h
index c947bed1d..03c8d385b 100644
--- a/examples/webenginewidgets/simplebrowser/browserwindow.h
+++ b/examples/webenginewidgets/simplebrowser/browserwindow.h
@@ -73,6 +73,7 @@ protected:
private slots:
void handleNewWindowTriggered();
void handleFileOpenTriggered();
+ void handleFindActionTriggered();
void handleShowWindowTriggered();
void handleWebViewLoadProgress(int);
void handleWebViewTitleChanged(const QString &title);
@@ -82,6 +83,7 @@ private slots:
private:
QMenu *createFileMenu(TabWidget *tabWidget);
+ QMenu *createEditMenu();
QMenu *createViewMenu(QToolBar *toolBar);
QMenu *createWindowMenu(TabWidget *tabWidget);
QMenu *createHelpMenu();
@@ -96,6 +98,7 @@ private:
QAction *m_reloadAction;
QAction *m_stopReloadAction;
UrlLineEdit *m_urlLineEdit;
+ QString m_lastSearch;
};
#endif // BROWSERWINDOW_H