X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/e5eae108ca4511be9dae5f8bb4a4e1fbb0d89c7a..06fb789c2b7c435dce7cf1ff11bf045f3ebc84bf:/src/dolphinviewcontainer.cpp diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 53b1c7529..b9134d91c 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -28,6 +28,7 @@ #include #include +#include #include #include #include @@ -47,9 +48,10 @@ #include #include +#include "dolphin_generalsettings.h" #include "dolphinmodel.h" #include "dolphincolumnview.h" -#include "dolphincontroller.h" +#include "dolphinviewcontroller.h" #include "dolphinmainwindow.h" #include "dolphindirlister.h" #include "dolphinsortfilterproxymodel.h" @@ -57,10 +59,10 @@ #include "dolphiniconsview.h" #include "draganddrophelper.h" #include "filterbar.h" +#include "settings/dolphinsettings.h" #include "statusbar/dolphinstatusbar.h" +#include "viewmodecontroller.h" #include "viewproperties.h" -#include "settings/dolphinsettings.h" -#include "dolphin_generalsettings.h" DolphinViewContainer::DolphinViewContainer(const KUrl& url, QWidget* parent) : QWidget(parent), @@ -85,8 +87,6 @@ DolphinViewContainer::DolphinViewContainer(const KUrl& url, QWidget* parent) : this, SLOT(dropUrls(const KUrl&, QDropEvent*))); connect(m_urlNavigator, SIGNAL(activated()), this, SLOT(activate())); - //connect(m_urlNavigator, SIGNAL(tabRequested(const KUrl&)), - // this, connect(m_urlNavigator->editor(), SIGNAL(completionModeChanged(KGlobalSettings::Completion)), this, SLOT(saveUrlCompletionMode(KGlobalSettings::Completion))); @@ -309,7 +309,6 @@ void DolphinViewContainer::slotDirListerCompleted() } else { updateStatusBar(); } - QMetaObject::invokeMethod(this, "restoreViewState", Qt::QueuedConnection); // Enable the 'File'->'Create New...' menu only if the directory // supports writing. @@ -371,13 +370,6 @@ void DolphinViewContainer::setNameFilter(const QString& nameFilter) delayedStatusBarUpdate(); } -void DolphinViewContainer::restoreViewState() -{ - QByteArray locationState = m_urlNavigator->locationState(); - QDataStream stream(&locationState, QIODevice::ReadOnly); - m_view->restoreState(stream); -} - void DolphinViewContainer::activate() { setActive(true); @@ -460,12 +452,11 @@ void DolphinViewContainer::saveUrlCompletionMode(KGlobalSettings::Completion com void DolphinViewContainer::slotHistoryChanged() { - const int index = m_urlNavigator->historyIndex(); - if (index > 0) { - // The "Go Forward" action is enabled. Try to mark - // the previous directory as active item: - const KUrl url = m_urlNavigator->locationUrl(index - 1); - m_view->activateItem(url); + QByteArray locationState = m_urlNavigator->locationState(); + + if (!locationState.isEmpty()) { + QDataStream stream(&locationState, QIODevice::ReadOnly); + m_view->restoreState(stream); } } @@ -494,6 +485,16 @@ void DolphinViewContainer::slotItemTriggered(const KFileItem& item) } } + if (item.mimetype() == "application/x-desktop") { + // redirect to the url in Type=Link desktop files + KDesktopFile desktopFile(url.toLocalFile()); + if (desktopFile.hasLinkType()) { + url = desktopFile.readUrl(); + m_view->setUrl(url); + return; + } + } + item.run(); }