┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dolphinpart.cpp20
-rw-r--r--src/dolphinpart.h9
2 files changed, 25 insertions, 4 deletions
diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp
index 05bc2216a..7fd51f76a 100644
--- a/src/dolphinpart.cpp
+++ b/src/dolphinpart.cpp
@@ -18,6 +18,7 @@
*/
#include "dolphinpart.h"
+#include <kdebug.h>
#include "dolphinviewactionhandler.h"
#include "dolphinsortfilterproxymodel.h"
#include "dolphinview.h"
@@ -107,6 +108,8 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL
this, SLOT(slotRequestUrlChange(KUrl)));
connect(m_view, SIGNAL(modeChanged()),
this, SIGNAL(viewModeChanged())); // relay signal
+ connect(m_view, SIGNAL(redirection(KUrl, KUrl)),
+ this, SLOT(slotRedirection(KUrl, KUrl)));
// Watch for changes that should result in updates to the
// status bar text.
@@ -414,11 +417,20 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&)
actionGroups);
}
-void DolphinPart::slotUrlChanged(const KUrl& url)
+// ########### not sure this is still called... seems not.
+void DolphinPart::slotUrlChanged(const KUrl& newUrl)
{
- KParts::ReadOnlyPart::setUrl(url);
- QString prettyUrl = url.pathOrUrl();
- emit m_extension->setLocationBarUrl(prettyUrl);
+ slotRedirection(url(), newUrl);
+}
+
+void DolphinPart::slotRedirection(const KUrl& oldUrl, const KUrl& newUrl)
+{
+ //kDebug() << oldUrl << newUrl << "currentUrl=" << url();
+ if (oldUrl == url()) {
+ KParts::ReadOnlyPart::setUrl(newUrl);
+ const QString prettyUrl = newUrl.pathOrUrl();
+ emit m_extension->setLocationBarUrl(prettyUrl);
+ }
}
void DolphinPart::slotRequestUrlChange(const KUrl& url)
diff --git a/src/dolphinpart.h b/src/dolphinpart.h
index d1c5b3c7f..04e343d95 100644
--- a/src/dolphinpart.h
+++ b/src/dolphinpart.h
@@ -143,10 +143,19 @@ private Q_SLOTS:
/**
* Informs the host that we are opening \a url (e.g. after a redirection).
+ * ########### not sure this is still called... seems not.
*/
void slotUrlChanged(const KUrl& url);
/**
+ * Informs the host that we are opening \a url (e.g. after a redirection
+ * coming from KDirLister).
+ * Testcase 1: fish://localhost
+ * Testcase 2: showing a directory that is being renamed by another window (#180156)
+ */
+ void slotRedirection(const KUrl& oldUrl, const KUrl& newUrl);
+
+ /**
* Updates the state of the 'Edit' menu actions and emits
* the signal selectionChanged().
*/