diff options
| author | Peter Penz <[email protected]> | 2008-07-19 16:51:29 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2008-07-19 16:51:29 +0000 |
| commit | 295ecd1ddf3946ba025e8f8a0c06d77f707849e8 (patch) | |
| tree | 93cc51403f21f24434ca22e8e06725295162f1ad /src | |
| parent | ec2ed0f3e7b162ddf2ca264744af17a5d59c31f0 (diff) | |
Disable the menu 'File' -> 'Create New...' if no writing is supported.
BUG: 166592
svn path=/trunk/KDE/kdebase/apps/; revision=834845
Diffstat (limited to 'src')
| -rw-r--r-- | src/dolphinviewcontainer.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 7179c5080..84192239b 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -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 @@ 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 +237,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) |
