X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/73fbb1a3d1b32562ac9b217f7bf437b0366c49aa..bf768056294fa3ca471eee71aa2d013db5e25b7b:/src/terminalsidebarpage.cpp diff --git a/src/terminalsidebarpage.cpp b/src/terminalsidebarpage.cpp index 61cc5aef8..4749e7714 100644 --- a/src/terminalsidebarpage.cpp +++ b/src/terminalsidebarpage.cpp @@ -50,11 +50,13 @@ QSize TerminalSidebarPage::sizeHint() const void TerminalSidebarPage::setUrl(const KUrl& url) { - if (!SidebarPage::url().equals(url, KUrl::CompareWithoutTrailingSlash)) { - SidebarPage::setUrl(url); - if ((m_terminal != 0) && isVisible()) { - m_terminal->sendInput("cd " + KShell::quoteArg(url.path()) + '\n'); - } + if (!url.isValid() || (url == SidebarPage::url())) { + return; + } + + SidebarPage::setUrl(url); + if ((m_terminal != 0) && isVisible() && url.isLocalFile()) { + m_terminal->sendInput("cd " + KShell::quoteArg(url.path()) + '\n'); } } @@ -62,20 +64,7 @@ void TerminalSidebarPage::terminalExited() { emit hideTerminalSidebarPage(); - KPluginFactory* factory = KPluginLoader("libkonsolepart").factory(); - KParts::ReadOnlyPart* part = factory ? (factory->create(this)) : 0; - if (part != 0) { - connect(part, SIGNAL(destroyed(QObject*)), this, SLOT(terminalExited())); - m_terminalWidget = part->widget(); - m_layout->addWidget(m_terminalWidget); - m_terminal = qobject_cast(part); - m_terminal->showShellInDir(url().path()); - } - if (m_terminal != 0) { - m_terminal->sendInput("cd " + KShell::quoteArg(url().path()) + '\n'); - m_terminal->sendInput("clear\n"); - m_terminalWidget->setFocus(); - } + m_terminal = 0; } void TerminalSidebarPage::showEvent(QShowEvent* event)