From 156c585181c05cf5ef4184bc4912e66a91aa963a Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 9 Oct 2008 16:44:11 +0000 Subject: [PATCH] The containerWidget is used by ViewSplit, which calls addWidget, which in turn sets the parent. So don't delete it if it has already been deleted. If we are sure that the containerWidget will be parented, we can avoid the QPointer svn path=/trunk/KDE/kdebase/apps/konsole/; revision=869659 --- src/ViewContainer.cpp | 6 ++++-- src/ViewContainer.h | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/ViewContainer.cpp b/src/ViewContainer.cpp index 27ace0683..bd1088deb 100644 --- a/src/ViewContainer.cpp +++ b/src/ViewContainer.cpp @@ -585,7 +585,8 @@ void TabbedViewContainer::dynamicTabBarVisibility() } TabbedViewContainer::~TabbedViewContainer() { - _containerWidget->deleteLater(); + if (!_containerWidget.isNull()) + _containerWidget->deleteLater(); } void TabbedViewContainer::startTabDrag(int tab) @@ -780,7 +781,8 @@ StackedViewContainer::StackedViewContainer(QObject* parent) } StackedViewContainer::~StackedViewContainer() { - _containerWidget->deleteLater(); + if (!_containerWidget.isNull()) + _containerWidget->deleteLater(); } QWidget* StackedViewContainer::containerWidget() const { diff --git a/src/ViewContainer.h b/src/ViewContainer.h index a044ab493..28d0d0076 100644 --- a/src/ViewContainer.h +++ b/src/ViewContainer.h @@ -24,6 +24,7 @@ // Qt #include +#include #include #include #include @@ -449,7 +450,7 @@ private: ViewContainerTabBar* _tabBar; QStackedWidget* _stackWidget; - QWidget* _containerWidget; + QPointer _containerWidget; QSpacerItem* _tabBarSpacer; TabbedViewContainerLayout* _layout; QHBoxLayout* _tabBarLayout; @@ -475,7 +476,7 @@ protected: virtual void removeViewWidget( QWidget* view ); private: - QWidget *_containerWidget; + QPointer _containerWidget; QStackedWidget* _stackWidget; };