diff options
| author | Peter Penz <[email protected]> | 2012-04-30 18:54:12 +0200 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2012-04-30 18:55:48 +0200 |
| commit | 6a7cb5ff7d29cc636b432a96e0db9ef9f9030527 (patch) | |
| tree | 752bd6e2dc726afde42902c8cea820a84604747a /src/kitemviews/kitemlistcontroller.cpp | |
| parent | cb1f42a1eb3584742fa33e28759ed8fbab199c5b (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.cpp | 12 |
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))); |
