┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews
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
parentcb1f42a1eb3584742fa33e28759ed8fbab199c5b (diff)
Fix crash when closing Dolphin during generating previews
BUG: 299108 FIXED-IN: 4.9.0
Diffstat (limited to 'src/kitemviews')
-rw-r--r--src/kitemviews/kfileitemlistview.cpp2
-rw-r--r--src/kitemviews/kitemlistcontroller.cpp12
-rw-r--r--src/kitemviews/kitemlistview.cpp10
3 files changed, 12 insertions, 12 deletions
diff --git a/src/kitemviews/kfileitemlistview.cpp b/src/kitemviews/kfileitemlistview.cpp
index 14547fc7b..b5cc343f4 100644
--- a/src/kitemviews/kfileitemlistview.cpp
+++ b/src/kitemviews/kfileitemlistview.cpp
@@ -66,8 +66,6 @@ KFileItemListView::KFileItemListView(QGraphicsWidget* parent) :
KFileItemListView::~KFileItemListView()
{
- delete m_modelRolesUpdater;
- m_modelRolesUpdater = 0;
}
void KFileItemListView::setPreviewsShown(bool show)
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)));
diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp
index 8ecd1e212..48849a3c1 100644
--- a/src/kitemviews/kitemlistview.cpp
+++ b/src/kitemviews/kitemlistview.cpp
@@ -761,13 +761,8 @@ void KItemListView::onControllerChanged(KItemListController* current, KItemListC
void KItemListView::onModelChanged(KItemModelBase* current, KItemModelBase* previous)
{
+ Q_UNUSED(current);
Q_UNUSED(previous);
-
- m_sizeHintResolver->clearCache();
- const int itemCount = current->count();
- if (itemCount > 0) {
- m_sizeHintResolver->itemsInserted(0, itemCount);
- }
}
void KItemListView::onScrollOrientationChanged(Qt::Orientation current, Qt::Orientation previous)
@@ -1446,6 +1441,8 @@ void KItemListView::setModel(KItemModelBase* model)
this, SLOT(slotSortRoleChanged(QByteArray,QByteArray)));
}
+ m_sizeHintResolver->clearCache();
+
m_model = model;
m_layouter->setModel(model);
m_grouped = model->groupedSorting();
@@ -1468,6 +1465,7 @@ void KItemListView::setModel(KItemModelBase* model)
const int itemCount = m_model->count();
if (itemCount > 0) {
+ m_sizeHintResolver->itemsInserted(0, itemCount);
slotItemsInserted(KItemRangeList() << KItemRange(0, itemCount));
}
}