X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/d9f5e191a6bd32a4dc15b3a3eb34795cda7697dd..2a3035088bff8287fb92fd8dbd93aabe8aaa90d2:/src/dolphinview.cpp diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 004b158ed..fabda169e 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -194,6 +194,11 @@ void DolphinView::setMode(Mode mode) m_controller->setUrl(root); } + deleteView(); + + // It is important to read the view properties _after_ deleting the view, + // as e. g. the detail view might adjust the additional information properties + // after getting closed: const KUrl viewPropsUrl = viewPropertiesUrl(); ViewProperties props(viewPropsUrl); props.setViewMode(m_mode); @@ -770,6 +775,7 @@ void DolphinView::updateAdditionalInfo(const KFileItemDelegate::InformationList& { ViewProperties props(viewPropertiesUrl()); props.setAdditionalInfo(info); + props.save(); m_fileItemDelegate->setShowInformation(info); @@ -826,24 +832,12 @@ void DolphinView::clearHoverInformation() void DolphinView::createView() { - // delete current view - QAbstractItemView* view = itemView(); - if (view != 0) { - m_topLayout->removeWidget(view); - view->close(); - view->deleteLater(); - view = 0; - m_iconsView = 0; - m_detailsView = 0; - m_columnView = 0; - m_fileItemDelegate = 0; - } - + deleteView(); Q_ASSERT(m_iconsView == 0); Q_ASSERT(m_detailsView == 0); Q_ASSERT(m_columnView == 0); - // ... and recreate it representing the current mode + QAbstractItemView* view = 0; switch (m_mode) { case IconsView: { m_iconsView = new DolphinIconsView(this, m_controller); @@ -881,6 +875,21 @@ void DolphinView::createView() this, SLOT(emitContentsMoved())); } +void DolphinView::deleteView() +{ + QAbstractItemView* view = itemView(); + if (view != 0) { + m_topLayout->removeWidget(view); + view->close(); + view->deleteLater(); + view = 0; + m_iconsView = 0; + m_detailsView = 0; + m_columnView = 0; + m_fileItemDelegate = 0; + } +} + QAbstractItemView* DolphinView::itemView() const { if (m_detailsView != 0) {