#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>
m_filterBar(0),
m_statusBar(0),
m_dirLister(0),
- m_proxyModel(0),
- m_previousUrl(),
- m_currentUrl()
+ m_proxyModel(0)
{
hide();
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)
}
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)