diff options
author | Liang Qi <liang.qi@qt.io> | 2016-08-04 07:29:26 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-08-05 11:35:18 +0200 |
commit | 179463fd2b17343dae291ab6f7617311bcfbdb75 (patch) | |
tree | e32e298ca5d6e2b6e206dab7d42538a6ce68eba1 /examples/webenginewidgets | |
parent | c8851dd1a77e730bc6a3c17b7c75b1a4c6b41f53 (diff) | |
parent | 336e706cbc839dd7b7c1d461b6b015600b5f009e (diff) |
Merge remote-tracking branch 'origin/5.7' into dev
Also blacklist tst_QWebEnginePage::comboBoxPopupPositionAfterChildMove()
and comboBoxPopupPositionAfterMove().
Conflicts:
.qmake.conf
src/3rdparty
src/core/render_widget_host_view_qt.cpp
src/core/resources/resources.gyp
src/webengine/doc/src/qtwebengine-platform-notes.qdoc
src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
src/webenginewidgets/render_widget_host_view_qt_delegate_widget.h
tests/auto/widgets/qwebenginepage/BLACKLIST
tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
tools/qmake/mkspecs/features/functions.prf
Task-number: QTBUG-55158
Change-Id: I1d73ac9b3ca5293ad3c7e3a56f4c395da930e6f4
Diffstat (limited to 'examples/webenginewidgets')
11 files changed, 59 insertions, 9 deletions
diff --git a/examples/webenginewidgets/contentmanipulation/main.cpp b/examples/webenginewidgets/contentmanipulation/main.cpp index 9f2f2f736..5645f9b9a 100644 --- a/examples/webenginewidgets/contentmanipulation/main.cpp +++ b/examples/webenginewidgets/contentmanipulation/main.cpp @@ -54,6 +54,7 @@ int main(int argc, char * argv[]) { + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QApplication app(argc, argv); QUrl url; diff --git a/examples/webenginewidgets/cookiebrowser/main.cpp b/examples/webenginewidgets/cookiebrowser/main.cpp index c122eb7c3..15a87609b 100644 --- a/examples/webenginewidgets/cookiebrowser/main.cpp +++ b/examples/webenginewidgets/cookiebrowser/main.cpp @@ -45,6 +45,7 @@ int main(int argc, char *argv[]) { + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QApplication app(argc, argv); MainWindow window(QUrl("http://qt.io")); window.show(); diff --git a/examples/webenginewidgets/demobrowser/browsermainwindow.cpp b/examples/webenginewidgets/demobrowser/browsermainwindow.cpp index b93c538d8..246ab2c0c 100644 --- a/examples/webenginewidgets/demobrowser/browsermainwindow.cpp +++ b/examples/webenginewidgets/demobrowser/browsermainwindow.cpp @@ -422,13 +422,31 @@ void BrowserMainWindow::setupMenu() m_historyBack = new QAction(tr("Back"), this); m_tabWidget->addWebAction(m_historyBack, QWebEnginePage::Back); - m_historyBack->setShortcuts(QKeySequence::Back); + QList<QKeySequence> backShortcuts = QKeySequence::keyBindings(QKeySequence::Back); + for (auto it = backShortcuts.begin(); it != backShortcuts.end();) { + // Chromium already handles navigate on backspace when appropriate. + if ((*it)[0] == Qt::Key_Backspace) + it = backShortcuts.erase(it); + else + ++it; + } + // For some reason Qt doesn't bind the dedicated Back key to Back. + backShortcuts.append(QKeySequence(Qt::Key_Back)); + m_historyBack->setShortcuts(backShortcuts); m_historyBack->setIconVisibleInMenu(false); historyActions.append(m_historyBack); m_historyForward = new QAction(tr("Forward"), this); m_tabWidget->addWebAction(m_historyForward, QWebEnginePage::Forward); - m_historyForward->setShortcuts(QKeySequence::Forward); + QList<QKeySequence> fwdShortcuts = QKeySequence::keyBindings(QKeySequence::Forward); + for (auto it = fwdShortcuts.begin(); it != fwdShortcuts.end();) { + if (((*it)[0] & Qt::Key_unknown) == Qt::Key_Backspace) + it = fwdShortcuts.erase(it); + else + ++it; + } + fwdShortcuts.append(QKeySequence(Qt::Key_Forward)); + m_historyForward->setShortcuts(fwdShortcuts); m_historyForward->setIconVisibleInMenu(false); historyActions.append(m_historyForward); diff --git a/examples/webenginewidgets/demobrowser/history.cpp b/examples/webenginewidgets/demobrowser/history.cpp index 188490aca..bce65b917 100644 --- a/examples/webenginewidgets/demobrowser/history.cpp +++ b/examples/webenginewidgets/demobrowser/history.cpp @@ -137,7 +137,7 @@ void HistoryManager::setHistory(const QList<HistoryItem> &history, bool loadedAn if (!loadedAndSorted) qSort(m_history.begin(), m_history.end()); - checkForExpired(); + checkForExpired(loadedAndSorted); if (loadedAndSorted) { m_lastSavedUrl = m_history.value(0).url; @@ -163,7 +163,7 @@ HistoryTreeModel *HistoryManager::historyTreeModel() const return m_historyTreeModel; } -void HistoryManager::checkForExpired() +void HistoryManager::checkForExpired(bool removeEntriesDirectly) { if (m_historyLimit < 0 || m_history.isEmpty()) return; @@ -185,7 +185,11 @@ void HistoryManager::checkForExpired() const HistoryItem& item = m_history.last(); // remove from saved file also m_lastSavedUrl = QString(); - emit entryRemoved(item); + + if (removeEntriesDirectly) + m_history.takeLast(); + else + emit entryRemoved(item); } if (nextTimeout > 0) diff --git a/examples/webenginewidgets/demobrowser/history.h b/examples/webenginewidgets/demobrowser/history.h index 6d7da5e6d..2a6dce9e1 100644 --- a/examples/webenginewidgets/demobrowser/history.h +++ b/examples/webenginewidgets/demobrowser/history.h @@ -126,7 +126,7 @@ public slots: private slots: void save(); - void checkForExpired(); + void checkForExpired(bool removeExpiredEntriesDirectly = false); protected: void addHistoryItem(const HistoryItem &item); diff --git a/examples/webenginewidgets/demobrowser/main.cpp b/examples/webenginewidgets/demobrowser/main.cpp index 4427a446d..41cae306a 100644 --- a/examples/webenginewidgets/demobrowser/main.cpp +++ b/examples/webenginewidgets/demobrowser/main.cpp @@ -54,6 +54,7 @@ int main(int argc, char **argv) { + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); Q_INIT_RESOURCE(data); BrowserApplication application(argc, argv); if (!application.isTheOnlyBrowser()) diff --git a/examples/webenginewidgets/markdowneditor/main.cpp b/examples/webenginewidgets/markdowneditor/main.cpp index 5d1e56eed..1051dcfd4 100644 --- a/examples/webenginewidgets/markdowneditor/main.cpp +++ b/examples/webenginewidgets/markdowneditor/main.cpp @@ -56,6 +56,7 @@ int main(int argc, char *argv[]) { + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QApplication a(argc, argv); MainWindow window; diff --git a/examples/webenginewidgets/minimal/doc/src/minimal.qdoc b/examples/webenginewidgets/minimal/doc/src/minimal.qdoc index 22f28e604..dd6a70566 100644 --- a/examples/webenginewidgets/minimal/doc/src/minimal.qdoc +++ b/examples/webenginewidgets/minimal/doc/src/minimal.qdoc @@ -42,7 +42,10 @@ \section1 The Code - In \c main.cpp we instantiate a QApplication and a QWebEngineView. The URL + In the \c main function we first set the Qt::AA_EnableHighDpiScaling. + This lets the web view automatically scale on high-dpi displays. + + Next, we instantiate a QApplication and a QWebEngineView. The URL to load is set by calling \l QWebEngineView::setUrl. The view widget is given a reasonable default size, and shown. Finally, QApplication::exec() launches the main event loop. diff --git a/examples/webenginewidgets/minimal/main.cpp b/examples/webenginewidgets/minimal/main.cpp index d9a137739..729d68fa0 100644 --- a/examples/webenginewidgets/minimal/main.cpp +++ b/examples/webenginewidgets/minimal/main.cpp @@ -43,6 +43,7 @@ int main(int argc, char *argv[]) { + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QApplication app(argc, argv); QWebEngineView view; diff --git a/examples/webenginewidgets/simplebrowser/browserwindow.cpp b/examples/webenginewidgets/simplebrowser/browserwindow.cpp index e7d5fd129..c01f912d3 100644 --- a/examples/webenginewidgets/simplebrowser/browserwindow.cpp +++ b/examples/webenginewidgets/simplebrowser/browserwindow.cpp @@ -280,7 +280,17 @@ QToolBar *BrowserWindow::createToolBar() navigationBar->toggleViewAction()->setEnabled(false); m_historyBackAction = new QAction(this); - m_historyBackAction->setShortcuts(QKeySequence::Back); + QList<QKeySequence> backShortcuts = QKeySequence::keyBindings(QKeySequence::Back); + for (auto it = backShortcuts.begin(); it != backShortcuts.end();) { + // Chromium already handles navigate on backspace when appropriate. + if ((*it)[0] == Qt::Key_Backspace) + it = backShortcuts.erase(it); + else + ++it; + } + // For some reason Qt doesn't bind the dedicated Back key to Back. + backShortcuts.append(QKeySequence(Qt::Key_Back)); + m_historyBackAction->setShortcuts(backShortcuts); m_historyBackAction->setIconVisibleInMenu(false); m_historyBackAction->setIcon(QIcon(QStringLiteral(":go-previous.png"))); connect(m_historyBackAction, &QAction::triggered, [this]() { @@ -289,7 +299,15 @@ QToolBar *BrowserWindow::createToolBar() navigationBar->addAction(m_historyBackAction); m_historyForwardAction = new QAction(this); - m_historyForwardAction->setShortcuts(QKeySequence::Forward); + QList<QKeySequence> fwdShortcuts = QKeySequence::keyBindings(QKeySequence::Forward); + for (auto it = fwdShortcuts.begin(); it != fwdShortcuts.end();) { + if (((*it)[0] & Qt::Key_unknown) == Qt::Key_Backspace) + it = fwdShortcuts.erase(it); + else + ++it; + } + fwdShortcuts.append(QKeySequence(Qt::Key_Forward)); + m_historyForwardAction->setShortcuts(fwdShortcuts); m_historyForwardAction->setIconVisibleInMenu(false); m_historyForwardAction->setIcon(QIcon(QStringLiteral(":go-next.png"))); connect(m_historyForwardAction, &QAction::triggered, [this]() { diff --git a/examples/webenginewidgets/simplebrowser/main.cpp b/examples/webenginewidgets/simplebrowser/main.cpp index 1d2796b8c..fa9f44c34 100644 --- a/examples/webenginewidgets/simplebrowser/main.cpp +++ b/examples/webenginewidgets/simplebrowser/main.cpp @@ -57,6 +57,8 @@ QString getCommandLineUrlArgument() int main(int argc, char **argv) { + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QApplication app(argc, argv); app.setWindowIcon(QIcon(QLatin1String(":simplebrowser.svg"))); |