diff options
| author | Kristian Monsen <kristianm@google.com> | 2010-05-21 16:53:46 +0100 |
|---|---|---|
| committer | Kristian Monsen <kristianm@google.com> | 2010-05-25 10:24:15 +0100 |
| commit | 6c2af9490927c3c5959b5cb07461b646f8b32f6c (patch) | |
| tree | f7111b9b22befab472616c1d50ec94eb50f1ec8c /WebKit/qt/Api/qwebview.cpp | |
| parent | a149172322a9067c14e8b474a53e63649aa17cad (diff) | |
| download | external_webkit-6c2af9490927c3c5959b5cb07461b646f8b32f6c.zip external_webkit-6c2af9490927c3c5959b5cb07461b646f8b32f6c.tar.gz external_webkit-6c2af9490927c3c5959b5cb07461b646f8b32f6c.tar.bz2 | |
Merge WebKit at r59636: Initial merge by git
Change-Id: I59b289c4e6b18425f06ce41cc9d34c522515de91
Diffstat (limited to 'WebKit/qt/Api/qwebview.cpp')
| -rw-r--r-- | WebKit/qt/Api/qwebview.cpp | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/WebKit/qt/Api/qwebview.cpp b/WebKit/qt/Api/qwebview.cpp index 3ba1678..2defdbb 100644 --- a/WebKit/qt/Api/qwebview.cpp +++ b/WebKit/qt/Api/qwebview.cpp @@ -44,8 +44,10 @@ public: Q_ASSERT(view); } + virtual ~QWebViewPrivate(); + void _q_pageDestroyed(); - void unsetPageIfExists(); + void detachCurrentPage(); QWebView *view; QWebPage *page; @@ -53,6 +55,11 @@ public: QPainter::RenderHints renderHints; }; +QWebViewPrivate::~QWebViewPrivate() +{ + detachCurrentPage(); +} + void QWebViewPrivate::_q_pageDestroyed() { page = 0; @@ -319,18 +326,6 @@ QWebView::QWebView(QWidget *parent) */ QWebView::~QWebView() { - if (d->page) { -#if QT_VERSION >= 0x040600 - d->page->d->view.clear(); -#else - d->page->d->view = 0; -#endif - delete d->page->d->client; - d->page->d->client = 0; - } - - if (d->page && d->page->parent() == this) - delete d->page; delete d; } @@ -348,11 +343,19 @@ QWebPage *QWebView::page() const return d->page; } -void QWebViewPrivate::unsetPageIfExists() +void QWebViewPrivate::detachCurrentPage() { if (!page) return; + if (page) { +#if QT_VERSION >= 0x040600 + page->d->view.clear(); +#else + page->d->view = 0; +#endif + } + // if the page client is the special client constructed for // delegating the responsibilities to a QWidget, we need // to destroy it. @@ -369,6 +372,8 @@ void QWebViewPrivate::unsetPageIfExists() delete page; else page->disconnect(view); + + page = 0; } /*! @@ -385,7 +390,7 @@ void QWebView::setPage(QWebPage* page) if (d->page == page) return; - d->unsetPageIfExists(); + d->detachCurrentPage(); d->page = page; if (d->page) { |
