]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Merge remote-tracking branch 'origin/master' into frameworks
authorFrank Reininghaus <frank78ac@googlemail.com>
Fri, 24 Oct 2014 16:49:05 +0000 (18:49 +0200)
committerFrank Reininghaus <frank78ac@googlemail.com>
Fri, 24 Oct 2014 16:49:05 +0000 (18:49 +0200)
Conflicts:
dolphin/src/panels/terminal/terminalpanel.cpp
dolphin/src/panels/terminal/terminalpanel.h

1  2 
src/panels/information/phononwidget.cpp
src/panels/terminal/terminalpanel.cpp
src/panels/terminal/terminalpanel.h

index 02489d40e0ec2dfd6d95b4c1e16d46c5b4086407,f827503a2b592520d81f41dc58a9b8f690c8dc51..fb7d89d31d7cf47fe0ee26b0c9e451931724ddc2
@@@ -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"
index 5d012a332d622ded87fe18a26af7ec7ad38c7b44,b65239baf3de021309120d5af63258fb5d55f96c..b3ccefb31c8063953fb9384ea5248df68a67c509
@@@ -22,7 -22,9 +22,9 @@@
  
  #include <panels/panel.h>
  
 -class TerminalInterfaceV2;
+ #include <QQueue>
 +class TerminalInterface;
  class QVBoxLayout;
  class QWidget;