From dc70e81da3f7b639ace9c5cc14e1fd4eb1942e4c Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Mon, 29 May 2017 16:07:40 +0200 Subject: Fix flushing the cookies with demobrowser Fix destruction of browser context, which takes place on qt_call_post_routines. Unfortunately demo browser destructs its windows just before qapplication destructor runs, so there is no more main event loop running. Please note this is just a quick fix, and proper fix would require refactoring the example not to use anit-pattern of deriving from qapplication. Task-number: QTBUG-58675 Change-Id: I419a1655a70397e69fecef2ceb37cbfc7e7f5ca4 Reviewed-by: Allan Sandfeld Jensen --- .../webenginewidgets/demobrowser/browserapplication.cpp | 15 +++++++++------ .../webenginewidgets/demobrowser/browsermainwindow.cpp | 5 ----- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/examples/webenginewidgets/demobrowser/browserapplication.cpp b/examples/webenginewidgets/demobrowser/browserapplication.cpp index 32429a675..04ae7cc03 100644 --- a/examples/webenginewidgets/demobrowser/browserapplication.cpp +++ b/examples/webenginewidgets/demobrowser/browserapplication.cpp @@ -186,12 +186,11 @@ BrowserApplication::BrowserApplication(int &argc, char **argv) BrowserApplication::~BrowserApplication() { delete s_downloadManager; - for (int i = 0; i < m_mainWindows.size(); ++i) { - BrowserMainWindow *window = m_mainWindows.at(i); - delete window; - } + s_downloadManager=nullptr; delete s_networkAccessManager; + s_networkAccessManager=nullptr; delete s_bookmarksManager; + s_bookmarksManager=nullptr; } void BrowserApplication::lastWindowClosed() @@ -227,9 +226,13 @@ void BrowserApplication::quitBrowser() if (ret == QMessageBox::No) return; } - - exit(0); #endif + for (int i = 0; i < m_mainWindows.size(); ++i) { + BrowserMainWindow *window = m_mainWindows.at(i); + delete window; + } + m_mainWindows.clear(); + close(); } /*! diff --git a/examples/webenginewidgets/demobrowser/browsermainwindow.cpp b/examples/webenginewidgets/demobrowser/browsermainwindow.cpp index 327d7a9d3..cf1b18240 100644 --- a/examples/webenginewidgets/demobrowser/browsermainwindow.cpp +++ b/examples/webenginewidgets/demobrowser/browsermainwindow.cpp @@ -323,12 +323,7 @@ void BrowserMainWindow::setupMenu() action->setChecked(BrowserApplication::instance()->privateBrowsing()); connect(BrowserApplication::instance(), SIGNAL(privateBrowsingChanged(bool)), action, SLOT(setChecked(bool))); fileMenu->addSeparator(); - -#if defined(Q_OS_OSX) fileMenu->addAction(tr("&Quit"), BrowserApplication::instance(), SLOT(quitBrowser()), QKeySequence(Qt::CTRL | Qt::Key_Q)); -#else - fileMenu->addAction(tr("&Quit"), this, SLOT(close()), QKeySequence(Qt::CTRL | Qt::Key_Q)); -#endif // Edit QMenu *editMenu = menuBar()->addMenu(tr("&Edit")); -- cgit v1.2.3