From: Frank Reininghaus Date: Fri, 24 Oct 2014 16:49:05 +0000 (+0200) Subject: Merge remote-tracking branch 'origin/master' into frameworks X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/fa988586bc923b33497cbc97aaac07fc93a4ca83 Merge remote-tracking branch 'origin/master' into frameworks Conflicts: dolphin/src/panels/terminal/terminalpanel.cpp dolphin/src/panels/terminal/terminalpanel.h --- fa988586bc923b33497cbc97aaac07fc93a4ca83 diff --cc src/panels/terminal/terminalpanel.cpp index 02489d40e,f827503a2..fb7d89d31 --- a/src/panels/terminal/terminalpanel.cpp +++ b/src/panels/terminal/terminalpanel.cpp @@@ -183,14 -188,17 +189,15 @@@ void TerminalPanel::slotMostLocalUrlRes void TerminalPanel::slotKonsolePartCurrentDirectoryChanged(const QString& dir) { - m_konsolePartCurrentDirectory = dir; - - // Only change the view URL if 'dir' is different from the current view URL. - // Note that the current view URL could also be a symbolic link to 'dir' - // -> use QDir::canonicalPath() to check that. - const QUrl oldUrl(url()); - const QUrl newUrl(QUrl::fromLocalFile(dir)); - if (newUrl != oldUrl && dir != QDir(oldUrl.path()).canonicalPath()) { - emit changeUrl(newUrl); + m_konsolePartCurrentDirectory = QDir(dir).canonicalPath(); + + // Only emit a changeUrl signal if the directory change was caused by the user inside the + // terminal, and not by sendCdToTerminal(QString). + while (!m_sendCdToTerminalHistory.empty()) { + if (m_konsolePartCurrentDirectory == m_sendCdToTerminalHistory.dequeue()) { + return; + } } + + emit changeUrl(dir); } - -#include "terminalpanel.moc" diff --cc src/panels/terminal/terminalpanel.h index 5d012a332,b65239baf..b3ccefb31 --- a/src/panels/terminal/terminalpanel.h +++ b/src/panels/terminal/terminalpanel.h @@@ -22,7 -22,9 +22,9 @@@ #include + #include + -class TerminalInterfaceV2; +class TerminalInterface; class QVBoxLayout; class QWidget;