From 53a9373a38e077f644a6a25597200667a805f401 Mon Sep 17 00:00:00 2001 From: Rahman Duran Date: Sun, 29 Mar 2009 11:54:40 +0000 Subject: BUG: 164489 Make Dolphin benefit from new TerminalInterfaceV2 functions. svn path=/trunk/KDE/kdebase/apps/; revision=946382 --- src/panels/terminal/terminalpanel.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/panels/terminal/terminalpanel.cpp') diff --git a/src/panels/terminal/terminalpanel.cpp b/src/panels/terminal/terminalpanel.cpp index 593015147..ae5e45f09 100644 --- a/src/panels/terminal/terminalpanel.cpp +++ b/src/panels/terminal/terminalpanel.cpp @@ -20,13 +20,15 @@ #include "terminalpanel.h" #include -#include +#include #include #include #include #include +#include + TerminalPanel::TerminalPanel(QWidget* parent) : Panel(parent), m_layout(0), @@ -55,9 +57,14 @@ void TerminalPanel::setUrl(const KUrl& url) } Panel::setUrl(url); - if ((m_terminal != 0) && isVisible() && url.isLocalFile()) { + const bool sendInput = (m_terminal != 0) + && (m_terminal->foregroundProcessId() == -1) + && isVisible() + && url.isLocalFile(); + if (sendInput) { m_terminal->sendInput("cd " + KShell::quoteArg(url.toLocalFile()) + '\n'); } + } void TerminalPanel::terminalExited() @@ -80,9 +87,10 @@ void TerminalPanel::showEvent(QShowEvent* event) connect(part, SIGNAL(destroyed(QObject*)), this, SLOT(terminalExited())); m_terminalWidget = part->widget(); m_layout->addWidget(m_terminalWidget); - m_terminal = qobject_cast(part); + m_terminal = qobject_cast(part); m_terminal->showShellInDir(url().path()); - } + + } } if (m_terminal != 0) { m_terminal->sendInput("cd " + KShell::quoteArg(url().path()) + '\n'); -- cgit v1.3