summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2017-05-29 16:07:40 +0200
committerMichal Klocek <michal.klocek@qt.io>2017-06-06 13:54:58 +0000
commitdc70e81da3f7b639ace9c5cc14e1fd4eb1942e4c (patch)
tree5d7b27bed38f1fc6b2fc9d85c45a64fb709d2aff
parent3deaeca6da60b22446d5facc4a0e73ff221a0947 (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.cpp15
-rw-r--r--examples/webenginewidgets/demobrowser/browsermainwindow.cpp5
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"));