]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinviewcontainer.cpp
Fix for show_filter_bar action of tools-menu, which is not correctly set (when the...
[dolphin.git] / src / dolphinviewcontainer.cpp
index 7179c50804e7825b3710d562f7502c811a59d84b..4ff9ab0e474107adebbf0a6805baee7349c9264d 100644 (file)
 #include <kiconeffect.h>
 #include <kio/netaccess.h>
 #include <kio/previewjob.h>
+#include <kmenu.h>
 #include <kmimetyperesolver.h>
+#include <knewmenu.h>
 #include <konqmimedata.h>
+#include <konq_fileitemcapabilities.h>
 #include <konq_operations.h>
 #include <kurl.h>
 
@@ -84,6 +87,7 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow,
 
     const GeneralSettings* settings = DolphinSettings::instance().generalSettings();
     m_urlNavigator->setUrlEditable(settings->editableUrl());
+    m_urlNavigator->setShowFullPath(settings->showFullPath());
     m_urlNavigator->setHomeUrl(settings->homeUrl());
 
     m_dirLister = new DolphinDirLister();
@@ -170,6 +174,11 @@ DolphinViewContainer::~DolphinViewContainer()
 void DolphinViewContainer::setUrl(const KUrl& newUrl)
 {
     m_urlNavigator->setUrl(newUrl);
+
+    // Temporary disable the 'File'->'Create New...' menu until
+    // the write permissions can be checked in a fast way at
+    // DolphinViewContainer::slotDirListerCompleted().
+    m_mainWindow->newMenu()->menu()->setEnabled(false);
 }
 
 const KUrl& DolphinViewContainer::url() const
@@ -229,6 +238,18 @@ void DolphinViewContainer::slotDirListerCompleted()
 
     updateStatusBar();
     QTimer::singleShot(100, this, SLOT(restoreContentsPos()));
+
+    // Enable the 'File'->'Create New...' menu only if the directory
+    // supports writing.
+    KMenu* createNew = m_mainWindow->newMenu()->menu();
+    KFileItem item = m_dirLister->rootItem();
+    if (item.isNull()) {
+        // it is unclear whether writing is supported
+        createNew->setEnabled(true);
+    } else {
+        KonqFileItemCapabilities capabilities(KFileItemList() << item);
+        createNew->setEnabled(capabilities.supportsWriting());
+    }
 }
 
 void DolphinViewContainer::showItemInfo(const KFileItem& item)