diff options
| author | Andrea Diamantini <adjam7@gmail.com> | 2012-07-03 19:11:45 +0200 | 
|---|---|---|
| committer | Andrea Diamantini <adjam7@gmail.com> | 2012-07-03 19:16:48 +0200 | 
| commit | ba9fa320c47eaf322abe11e1a6b6708620b65fdf (patch) | |
| tree | a7dc79e8fbe4182ee6aad6c6ed3902e555941bcf | |
| parent | Save one (unuseful) call (diff) | |
| download | rekonq-ba9fa320c47eaf322abe11e1a6b6708620b65fdf.tar.xz | |
Get sure UrlBar is deleted well (i.e. later) and in the right place
(i.e. the WebTab dtor).
I cannot no more reproduce the problems described in #296346, #300892
and #268328
What about you?
CCBUG: 296346
CCBUG: 300892
CCBUG: 268328
| -rw-r--r-- | src/mainview.cpp | 10 | ||||
| -rw-r--r-- | src/mainview.h | 3 | ||||
| -rw-r--r-- | src/webtab.cpp | 9 | 
3 files changed, 19 insertions, 3 deletions
diff --git a/src/mainview.cpp b/src/mainview.cpp index d673b7fa..4733ae3b 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -105,6 +105,16 @@ MainView::MainView(QWidget *parent)  } +MainView::~MainView() +{ +    // NOTE +    // we wanna delete m_widgetBar later to get sure +    // all its children (i.e. the urlbars) got deleted in +    // WebTab dtor. +    m_widgetBar->deleteLater(); +} + +  void MainView::addNewTabButton(QAction *newTabAction)  {      m_addTabButton->setDefaultAction(newTabAction); diff --git a/src/mainview.h b/src/mainview.h index da03bae8..b6cbf2f0 100644 --- a/src/mainview.h +++ b/src/mainview.h @@ -63,7 +63,8 @@ class REKONQ_TESTS_EXPORT MainView : public KTabWidget  public:      MainView(QWidget *parent); - +    ~MainView(); +          inline StackedUrlBar *widgetBar() const      {          return m_widgetBar; diff --git a/src/webtab.cpp b/src/webtab.cpp index c049e459..457e9006 100644 --- a/src/webtab.cpp +++ b/src/webtab.cpp @@ -103,9 +103,14 @@ WebTab::~WebTab()      m_walletBar.clear();      m_previewSelectorBar.clear(); +    // NOTE: +    // Urlbar is reparented when inserted in StackedUrlBar, so we need +    // to get sure it will be deleted. Deleting it later to ensure everything +    // will be finished before ;) +    m_urlBar->deleteLater(); + +    // Get sure m_part will be deleted      delete m_part; -    delete m_urlBar; -    delete m_webView;  }  | 
