[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.1/kdebase/apps/dolphin/src
From:       Peter Penz <peter.penz () gmx ! at>
Date:       2008-07-21 18:09:29
Message-ID: 1216663769.152029.31315.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 836095 by ppenz:

Backport of 834845: Disable the menu 'File' -> 'Create New...' if no writing is supported.

CCBUG: 166592

 M  +20 -0     dolphinviewcontainer.cpp  


--- branches/KDE/4.1/kdebase/apps/dolphin/src/dolphinviewcontainer.cpp #836094:836095
@@ -35,8 +35,11 @@
 #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>
 
@@ -170,6 +173,11 @@
 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 +237,18 @@
 
     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)
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic