From 6ab84fbd6129422dfa59c095087c7ceb1a9e1e50 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Thu, 10 May 2007 18:27:32 +0000 Subject: [PATCH] don't lose the history of the URL navigator if the settings of the Icons View, Details View or Columns View have been changed svn path=/trunk/KDE/kdebase/apps/; revision=663282 --- src/dolphinmainwindow.cpp | 34 ++++------------------------------ src/dolphinview.cpp | 5 +++++ src/dolphinview.h | 7 +++++++ 3 files changed, 16 insertions(+), 30 deletions(-) diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index d84775d59d..12d864bd78 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -206,38 +206,12 @@ void DolphinMainWindow::rename(const KUrl& oldUrl, const KUrl& newUrl) void DolphinMainWindow::refreshViews() { - const bool split = DolphinSettings::instance().generalSettings()->splitView(); - const bool isPrimaryViewActive = (m_activeView == m_view[PrimaryIdx]); - KUrl url; - for (int i = PrimaryIdx; i <= SecondaryIdx; ++i) { - if (m_view[i] != 0) { - url = m_view[i]->url(); + Q_ASSERT(m_view[PrimaryIdx] != 0); + m_view[PrimaryIdx]->refresh(); - // delete view instance... - m_view[i]->close(); - m_view[i]->deleteLater(); - m_view[i] = 0; - } - - if (split || (i == PrimaryIdx)) { - // ... and recreate it - ViewProperties props(url); - m_view[i] = new DolphinView(this, - m_splitter, - url, - props.viewMode(), - props.showHiddenFiles()); - connectViewSignals(i); - m_view[i]->reload(); - m_view[i]->show(); - } + if (m_view[SecondaryIdx] != 0) { + m_view[SecondaryIdx]->refresh(); } - - m_activeView = isPrimaryViewActive ? m_view[PrimaryIdx] : m_view[SecondaryIdx]; - Q_ASSERT(m_activeView != 0); - - updateViewActions(); - emit activeViewChanged(); } void DolphinMainWindow::changeUrl(const KUrl& url) diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index c51dbb464f..84b765d4d8 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -617,6 +617,11 @@ void DolphinView::reload() startDirLister(url, true); } +void DolphinView::refresh() +{ + createView(); +} + void DolphinView::mouseReleaseEvent(QMouseEvent* event) { QWidget::mouseReleaseEvent(event); diff --git a/src/dolphinview.h b/src/dolphinview.h index 9581f6601c..b3b2060021 100644 --- a/src/dolphinview.h +++ b/src/dolphinview.h @@ -350,6 +350,13 @@ public: /** Reloads the current directory. */ void reload(); + /** + * Refreshs the view to get synchronized with the (updated) Dolphin settings. + * This method only needs to get invoked if the view settings for the Icons View, + * Details View or Columns View have been changed. + */ + void refresh(); + public slots: /** * Popups the filter bar above the status bar if \a show is true.