┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistcontroller.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2012-04-30 18:54:12 +0200
committerPeter Penz <[email protected]>2012-04-30 18:55:48 +0200
commit6a7cb5ff7d29cc636b432a96e0db9ef9f9030527 (patch)
tree752bd6e2dc726afde42902c8cea820a84604747a /src/kitemviews/kitemlistcontroller.cpp
parentcb1f42a1eb3584742fa33e28759ed8fbab199c5b (diff)
Fix crash when closing Dolphin during generating previews
BUG: 299108 FIXED-IN: 4.9.0
Diffstat (limited to 'src/kitemviews/kitemlistcontroller.cpp')
-rw-r--r--src/kitemviews/kitemlistcontroller.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp
index 1c35072e5..6045f5020 100644
--- a/src/kitemviews/kitemlistcontroller.cpp
+++ b/src/kitemviews/kitemlistcontroller.cpp
@@ -75,12 +75,10 @@ KItemListController::KItemListController(KItemModelBase* model, KItemListView* v
KItemListController::~KItemListController()
{
setView(0);
- delete m_view;
- m_view = 0;
+ Q_ASSERT(!m_view);
setModel(0);
- delete m_model;
- m_model = 0;
+ Q_ASSERT(!m_model);
}
void KItemListController::setModel(KItemModelBase* model)
@@ -90,6 +88,10 @@ void KItemListController::setModel(KItemModelBase* model)
}
KItemModelBase* oldModel = m_model;
+ if (oldModel) {
+ oldModel->deleteLater();
+ }
+
m_model = model;
if (m_model) {
m_model->setParent(this);
@@ -123,11 +125,13 @@ void KItemListController::setView(KItemListView* view)
KItemListView* oldView = m_view;
if (oldView) {
disconnect(oldView, SIGNAL(scrollOffsetChanged(qreal,qreal)), this, SLOT(slotViewScrollOffsetChanged(qreal,qreal)));
+ oldView->deleteLater();
}
m_view = view;
if (m_view) {
+ m_view->setParent(this);
m_view->setController(this);
m_view->setModel(m_model);
connect(m_view, SIGNAL(scrollOffsetChanged(qreal,qreal)), this, SLOT(slotViewScrollOffsetChanged(qreal,qreal)));