summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Diamantini <adjam7@gmail.com>2012-07-03 19:11:45 +0200
committerAndrea Diamantini <adjam7@gmail.com>2012-07-03 19:16:48 +0200
commitba9fa320c47eaf322abe11e1a6b6708620b65fdf (patch)
treea7dc79e8fbe4182ee6aad6c6ed3902e555941bcf
parentSave one (unuseful) call (diff)
downloadrekonq-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.cpp10
-rw-r--r--src/mainview.h3
-rw-r--r--src/webtab.cpp9
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;
}