diff options
author | Michal Klocek <michal.klocek@qt.io> | 2017-05-29 16:07:40 +0200 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2017-06-06 13:54:58 +0000 |
commit | dc70e81da3f7b639ace9c5cc14e1fd4eb1942e4c (patch) | |
tree | 5d7b27bed38f1fc6b2fc9d85c45a64fb709d2aff | |
parent | 3deaeca6da60b22446d5facc4a0e73ff221a0947 (diff) |
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 <allan.jensen@qt.io>
-rw-r--r-- | examples/webenginewidgets/demobrowser/browserapplication.cpp | 15 | ||||
-rw-r--r-- | examples/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")); |