┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels/terminal/terminalpanel.cpp
diff options
context:
space:
mode:
authorRahman Duran <[email protected]>2009-03-29 11:54:40 +0000
committerRahman Duran <[email protected]>2009-03-29 11:54:40 +0000
commit53a9373a38e077f644a6a25597200667a805f401 (patch)
tree1b989e9a76c3068fb5b288c559d024703d0388d0 /src/panels/terminal/terminalpanel.cpp
parent87594350e88d630c5de58b2a73128b63ebfcc070 (diff)
BUG: 164489
Make Dolphin benefit from new TerminalInterfaceV2 functions. svn path=/trunk/KDE/kdebase/apps/; revision=946382
Diffstat (limited to 'src/panels/terminal/terminalpanel.cpp')
-rw-r--r--src/panels/terminal/terminalpanel.cpp16
1 files changed, 12 insertions, 4 deletions
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 <klibloader.h>
-#include <kde_terminal_interface.h>
+#include <kde_terminal_interface_v2.h>
#include <kparts/part.h>
#include <kshell.h>
#include <QBoxLayout>
#include <QShowEvent>
+#include <kdebug.h>
+
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<TerminalInterface *>(part);
+ m_terminal = qobject_cast<TerminalInterfaceV2 *>(part);
m_terminal->showShellInDir(url().path());
- }
+
+ }
}
if (m_terminal != 0) {
m_terminal->sendInput("cd " + KShell::quoteArg(url().path()) + '\n');