From: Peter Penz Date: Tue, 19 Jun 2007 16:35:52 +0000 (+0000) Subject: * fixed issue that some view properties like "show in groups" are ignored when a... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/5926d0fddd94d25a5546eee82a6dd8f072196b83?ds=inline * fixed issue that some view properties like "show in groups" are ignored when a new DolphinViewContainer has been created (happens on startup or when a view is split) * get rid of redundant parameter in constructors of DolphinView and DolphinViewContainer svn path=/trunk/KDE/kdebase/apps/; revision=677654 --- diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 0accdfcaa..386e99944 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -769,9 +769,7 @@ void DolphinMainWindow::toggleSplitView() const DolphinView* view = m_viewContainer[PrimaryView]->view(); m_viewContainer[SecondaryView] = new DolphinViewContainer(this, 0, - view->rootUrl(), - view->mode(), - view->showHiddenFiles()); + view->rootUrl()); connectViewSignals(SecondaryView); m_splitter->addWidget(m_viewContainer[SecondaryView]); m_splitter->setSizes(QList() << newWidth << newWidth); @@ -975,10 +973,8 @@ void DolphinMainWindow::init() setCaption(homeUrl.fileName()); ViewProperties props(homeUrl); m_viewContainer[PrimaryView] = new DolphinViewContainer(this, - m_splitter, - homeUrl, - props.viewMode(), - props.showHiddenFiles()); + m_splitter, + homeUrl); m_activeViewContainer = m_viewContainer[PrimaryView]; connectViewSignals(PrimaryView); diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 5d7ab076f..057916906 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -57,13 +57,12 @@ DolphinView::DolphinView(QWidget* parent, const KUrl& url, KDirLister* dirLister, KDirModel* dirModel, - DolphinSortFilterProxyModel* proxyModel, - Mode mode) : + DolphinSortFilterProxyModel* proxyModel) : QWidget(parent), m_active(true), m_loadingDirectory(false), m_initializeColumnView(false), - m_mode(mode), + m_mode(DolphinView::IconsView), m_topLayout(0), m_controller(0), m_iconsView(0), @@ -107,7 +106,7 @@ DolphinView::DolphinView(QWidget* parent, connect(m_controller, SIGNAL(viewportEntered()), this, SLOT(clearHoverInformation())); - createView(); + applyViewProperties(url); m_topLayout->addWidget(itemView()); } @@ -419,6 +418,20 @@ void DolphinView::refresh() reload(); } +void DolphinView::setUrl(const KUrl& url) +{ + if (m_controller->url() == url) { + return; + } + + m_controller->setUrl(url); + + applyViewProperties(url); + + startDirLister(url); + emit urlChanged(url); +} + void DolphinView::mouseReleaseEvent(QMouseEvent* event) { QWidget::mouseReleaseEvent(event); @@ -582,14 +595,8 @@ void DolphinView::startDirLister(const KUrl& url, bool reload) } } -void DolphinView::setUrl(const KUrl& url) +void DolphinView::applyViewProperties(const KUrl& url) { - if (m_controller->url() == url) { - return; - } - - m_controller->setUrl(url); - const ViewProperties props(url); const Mode mode = props.viewMode(); @@ -615,6 +622,11 @@ void DolphinView::setUrl(const KUrl& url) m_initializeColumnView = true; } } + if (itemView() == 0) { + createView(); + } + Q_ASSERT(itemView() != 0); + Q_ASSERT(m_fileItemDelegate != 0); const bool showHiddenFiles = props.showHiddenFiles(); if (showHiddenFiles != m_dirLister->showingDotFiles()) { @@ -662,9 +674,6 @@ void DolphinView::setUrl(const KUrl& url) m_controller->setShowPreview(showPreview); emit showPreviewChanged(); } - - startDirLister(url); - emit urlChanged(url); } void DolphinView::changeSelection(const KFileItemList& selection) diff --git a/src/dolphinview.h b/src/dolphinview.h index 3d0f9a548..1a240be7a 100644 --- a/src/dolphinview.h +++ b/src/dolphinview.h @@ -115,15 +115,12 @@ public: * @param proxyModel Used proxy model which specifies the sorting. The * model is not owned by the view and won't get * deleted. - * @param mode Used display mode (IconsView, DetailsView or ColumnsView). - * @param showHiddenFiles If true, hidden files will be shown in the view. */ DolphinView(QWidget* parent, const KUrl& url, KDirLister* dirLister, KDirModel* dirModel, - DolphinSortFilterProxyModel* proxyModel, - Mode mode); + DolphinSortFilterProxyModel* proxyModel); virtual ~DolphinView(); @@ -472,6 +469,12 @@ private slots: private: void startDirLister(const KUrl& url, bool reload = false); + /** + * Applies the view properties which are defined by the current URL + * m_url to the DolphinView properties. + */ + void applyViewProperties(const KUrl& url); + /** * Creates a new view representing the given view mode (DolphinView::mode()). * The current view will get deleted. diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 81562d282..6e5b00af2 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -60,9 +60,7 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow, QWidget* parent, - const KUrl& url, - DolphinView::Mode mode, - bool showHiddenFiles) : + const KUrl& url) : QWidget(parent), m_showProgress(false), m_folderCount(0), @@ -100,7 +98,6 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow, m_dirLister = new DolphinDirLister(); m_dirLister->setAutoUpdate(true); m_dirLister->setMainWindow(this); - m_dirLister->setShowingDotFiles(showHiddenFiles); m_dirLister->setDelayedMimeTypes(true); m_dirModel = new KDirModel(); @@ -127,8 +124,7 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow, url, m_dirLister, m_dirModel, - m_proxyModel, - mode); + m_proxyModel); connect(m_view, SIGNAL(urlChanged(const KUrl&)), m_urlNavigator, SLOT(setUrl(const KUrl&))); connect(m_view, SIGNAL(requestContextMenu(KFileItem*, const KUrl&)), diff --git a/src/dolphinviewcontainer.h b/src/dolphinviewcontainer.h index a9676ca96..de77fb03a 100644 --- a/src/dolphinviewcontainer.h +++ b/src/dolphinviewcontainer.h @@ -65,9 +65,7 @@ class DolphinViewContainer : public QWidget public: DolphinViewContainer(DolphinMainWindow* mainwindow, QWidget *parent, - const KUrl& url, - DolphinView::Mode mode = DolphinView::IconsView, - bool showHiddenFiles = false); + const KUrl& url); virtual ~DolphinViewContainer();