X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/ed5b2e54736b04d551eae01d976038fb7d5aac35..f28ee3152a05f09abd117df19bb99d0966947e6b:/src/dolphinviewcontainer.cpp diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 6bc620ee2..84192239b 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -35,8 +35,11 @@ #include #include #include +#include #include +#include #include +#include #include #include @@ -68,9 +71,7 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow, m_filterBar(0), m_statusBar(0), m_dirLister(0), - m_proxyModel(0), - m_previousUrl(), - m_currentUrl() + m_proxyModel(0) { hide(); @@ -171,16 +172,17 @@ DolphinViewContainer::~DolphinViewContainer() void DolphinViewContainer::setUrl(const KUrl& newUrl) { - if (newUrl != m_currentUrl) { - m_previousUrl = m_currentUrl; - m_currentUrl = newUrl; - m_urlNavigator->setUrl(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 { - return m_currentUrl; + return m_urlNavigator->url(); } void DolphinViewContainer::setActive(bool active) @@ -234,8 +236,19 @@ void DolphinViewContainer::slotDirListerCompleted() } updateStatusBar(); - m_view->setCurrentItem(m_previousUrl); 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)