X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/90baf5a8977caf5cbc1cd9c161c56e97e02a1aef..727fd64e121f97b32d645e2fb26c4e93c413a849:/src/kitemviews/kitemlistcontroller.cpp diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp index 1f93a6357..6045f5020 100644 --- a/src/kitemviews/kitemlistcontroller.cpp +++ b/src/kitemviews/kitemlistcontroller.cpp @@ -60,6 +60,8 @@ KItemListController::KItemListController(KItemModelBase* model, KItemListView* v { connect(m_keyboardManager, SIGNAL(changeCurrentItem(QString,bool)), this, SLOT(slotChangeCurrentItem(QString,bool))); + connect(m_selectionManager, SIGNAL(currentChanged(int,int)), + m_keyboardManager, SLOT(slotCurrentChanged(int,int))); m_autoActivationTimer = new QTimer(this); m_autoActivationTimer->setSingleShot(true); @@ -73,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) @@ -88,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); @@ -121,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)));