]> cloud.milkyroute.net Git - dolphin.git/commitdiff
If the root directory lister is different from the internally used directory lister...
authorPeter Penz <peter.penz19@gmail.com>
Thu, 14 Jan 2010 07:43:14 +0000 (07:43 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Thu, 14 Jan 2010 07:43:14 +0000 (07:43 +0000)
This fixes the issue that the enabled state of the "Create New..." menu in the column view has not been updated.

BUG: 222329

svn path=/trunk/KDE/kdebase/apps/; revision=1074441

src/dolphinview.cpp
src/dolphinview.h

index 606c5202d4e93a8f7f8c2e1c9b47930c28aa4473..688e8aa6256f9efab6675b25218139c430a8ac3f 100644 (file)
@@ -1269,7 +1269,16 @@ void DolphinView::loadDirectory(const KUrl& url, bool reload)
     m_loadingDirectory = true;
     m_expanderActive = false;
 
-    m_viewAccessor.dirLister()->openUrl(url, reload ? KDirLister::Reload : KDirLister::NoFlags);
+    KDirLister* dirLister = m_viewAccessor.dirLister();
+    dirLister->openUrl(url, reload ? KDirLister::Reload : KDirLister::NoFlags);
+
+    KDirLister* rootDirLister = m_viewAccessor.rootDirLister();
+    if (dirLister != rootDirLister) {
+        // In the case of the column view the root directory lister can be different. Assure
+        // that it gets synchronized (clients from DolphinView are not aware that internally
+        // different directory listers are used).
+        rootDirLister->openUrl(url, reload ? KDirLister::Reload : KDirLister::NoFlags);
+    }
 }
 
 void DolphinView::applyViewProperties()
@@ -1532,7 +1541,7 @@ void DolphinView::ViewAccessor::prepareUrlChange(const KUrl& url)
     }
 
     if(!m_detailsViewExpander.isNull()) {
-        // Stop expanding items in the current folder
+        // stop expanding items in the current folder
         m_detailsViewExpander->stop();
     }
 }
@@ -1572,6 +1581,11 @@ KUrl DolphinView::ViewAccessor::rootUrl() const
     return (m_columnsContainer != 0) ? m_columnsContainer->rootUrl() : KUrl();
 }
 
+KDirLister* DolphinView::ViewAccessor::rootDirLister() const
+{
+    return static_cast<DolphinModel*>(m_proxyModel->sourceModel())->dirLister();
+}
+
 bool DolphinView::ViewAccessor::supportsCategorizedSorting() const
 {
     return m_iconsView != 0;
@@ -1585,17 +1599,16 @@ bool DolphinView::ViewAccessor::itemsExpandable() const
 
 QSet<KUrl> DolphinView::ViewAccessor::expandedUrls() const
 {
-    if(m_detailsView != 0) {
+    if (m_detailsView != 0) {
         return m_detailsView->expandedUrls();
     }
-    else {
-        return QSet<KUrl>();
-    }
+
+    return QSet<KUrl>();
 }
 
 const DolphinDetailsViewExpander* DolphinView::ViewAccessor::setExpandedUrls(const QSet<KUrl>& urlsToExpand)
 {
-    if((m_detailsView != 0) && m_detailsView->itemsExpandable() && !urlsToExpand.isEmpty()) {
+    if ((m_detailsView != 0) && m_detailsView->itemsExpandable() && !urlsToExpand.isEmpty()) {
         m_detailsViewExpander = new DolphinDetailsViewExpander(m_detailsView, urlsToExpand);
         return m_detailsViewExpander;
     }
index 95a2ad3b1ced3a30366ea1df4851bb1f44eb5c1f..17f1395acf8bf5acd6a96335ff3943f9dfea8410 100644 (file)
@@ -804,6 +804,7 @@ private:
         QWidget* layoutTarget() const;
 
         KUrl rootUrl() const;
+        KDirLister* rootDirLister() const;
 
         bool supportsCategorizedSorting() const;
         bool itemsExpandable() const;