X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/d89548a828dd7d2e08acd85c329ccc2adf67bced..a49fe38e3eb59e8a5893bfe79f35a51c0acbb4eb:/src/dolphinviewcontainer.cpp diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 99ff253c2..6795aca9b 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -42,11 +42,11 @@ #include #include #include +#include #include "dolphinmodel.h" #include "dolphincolumnview.h" #include "dolphincontroller.h" -#include "dolphindropcontroller.h" #include "dolphinstatusbar.h" #include "dolphinmainwindow.h" #include "dolphindirlister.h" @@ -54,6 +54,7 @@ #include "dolphindetailsview.h" #include "dolphiniconsview.h" #include "dolphincontextmenu.h" +#include "draganddrophelper.h" #include "filterbar.h" #include "kurlnavigator.h" #include "viewproperties.h" @@ -140,6 +141,8 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow, this, SLOT(slotItemTriggered(KFileItem))); connect(m_view, SIGNAL(startedPathLoading(const KUrl&)), this, SLOT(saveRootUrl(const KUrl&))); + connect(m_view, SIGNAL(redirection(KUrl, KUrl)), + this, SLOT(redirect(KUrl, KUrl))); connect(m_urlNavigator, SIGNAL(urlChanged(const KUrl&)), this, SLOT(restoreView(const KUrl&))); @@ -350,7 +353,15 @@ void DolphinViewContainer::activate() void DolphinViewContainer::restoreView(const KUrl& url) { - m_view->updateView(url, m_urlNavigator->savedRootUrl()); + if (KProtocolManager::supportsListing(url)) { + m_view->updateView(url, m_urlNavigator->savedRootUrl()); + } else { + // The URL navigator only checks for validity, not + // if the URL can be listed. + showErrorMessage(i18nc("@info:status", "Protocol not supported by Dolphin, Konqueror has been launched")); + QString command = "konqueror " + url.pathOrUrl(); + KRun::runCommand(command, "konqueror", "konqueror", this); + } } void DolphinViewContainer::saveRootUrl(const KUrl& url) @@ -361,7 +372,16 @@ void DolphinViewContainer::saveRootUrl(const KUrl& url) void DolphinViewContainer::dropUrls(const KUrl& destination, QDropEvent* event) { - DolphinDropController::dropUrls(KFileItem(), destination, event, this); + DragAndDropHelper::instance().dropUrls(KFileItem(), destination, event, this); +} + +void DolphinViewContainer::redirect(const KUrl& oldUrl, const KUrl& newUrl) +{ + Q_UNUSED(oldUrl); + const bool block = m_urlNavigator->signalsBlocked(); + m_urlNavigator->blockSignals(true); + m_urlNavigator->setUrl(newUrl); + m_urlNavigator->blockSignals(block); } void DolphinViewContainer::slotItemTriggered(const KFileItem& item)